一个程序有多个form想复用一个datamoudle中的dataset,这个问题如何解决?(100分)

  • 主题发起人 主题发起人 ylbee
  • 开始时间 开始时间
Y

ylbee

Unregistered / Unconfirmed
GUEST, unregistred user!
我以前都将dataset datasource放在form中,听说有很多的问题,于是我做了一个datamoudle来放所有的dataset datasource,改了以后我发现一个问题:以前我几乎为每个datase都add all fields,改了以后我如何能让多个form中的dataset复用呢?也就是对于一个dataset改动database name和table name后,有没有办法改动其已经添加的fields names,如:
Table1Field1,Table1Field2....变成Table1myField1,Table1myField2....
要不然我的这些操作就会有问题,如:
Table1Field1.AsString:=Table3Field4.AsString;

望高手执教!!
 
怎么,没人理我?
up
 
永久性字段是没办法在运行时更改的.
可以用DataSet.FieldByName来做.
 
不要使用如table?field?的方式!
如LeeChange所说,使用fieldbyname的属性来做。
将数据操作控件放在data module里面,一方面是为了安全性,另一方面也是节省资源的
考虑,既然要节省资源,在程序上就必须要保持灵活性。
databasename和table name都在程序中赋值,则相应地需要使用fieldbyname来对字段
进行操作。
 
DataSet.FieldByName或者DataSet.Fields[n]和直接用永久性字段是没有区别的,不同意
LeeChange的说法,另外,可能理解能力的问题,没明白ylbee的问题到底是怎么回事
 
说起我的这个问题,还真麻烦,由于我对系统的规模预计不够,我开始想把系统写成一个exe文件,
后来发现不行,又匆忙改成了一个exe+几个dll文件的方式。可现在发现当在运行中关闭一个
窗口时(这个窗口是一个dll文件的主窗口)系统会报错 list bound(1) out of .....
点几次确定后能退出来,(这几个dll文件编写和调用方式都类似,可有2个出错,3个不出错)
我开始想可能是数组越界或程序退出事件有问题,可查了很久也没结果。一次无意中发现:
开始一个dll文件没问题,加了几个abc的控件后也出现同样的问题了,于是我估计是dll中
控件太多的缘故吧,于是我想将dll中各个form中的dataset和datasource复用,看能否解决
该问题。虽然该问题,没导致别的问题,但用户看起来不舒服。
我是在win98+delphi6+很多控件(都是大公司的)+oracle8i中作的。
希望大虾们能给个提醒,谢谢先!!
 
File / Use Units... 选择你的DATAMODULE就可以了,即在你的FORM模块中添加对DATAMODULE
的引用.
 
Datasource放在Form上不好吗?我觉得挺好的,如果说要用DataModule,
那是数据连接,连接只用一个,这样编程什么的都方便。
至于你显示几个字段,你可以在DBGrid里面控制就行了。
 
后退
顶部