关于datamodule(50分)

  • 主题发起人 主题发起人 melissa
  • 开始时间 开始时间
M

melissa

Unregistered / Unconfirmed
GUEST, unregistred user!
因为我的程序打算分模块打包
我在datamodule中只放置了一个database连接数据库
是否就没有必要用数据模板了
直接把database放在主屏幕上就可以了
使用数据模板有什么好处吗
谢谢
 
你应该把所有的Database、table、query之类的都放到DataModule中,
否则要DataModule何用。
 
我不同意 hunterteam 的观点
如是将table ,query 放到DataModule中
有此时候很不方便.
 
ado中,adoconnection放到datamodule中,再放置几个固定的table,或query
然后在窗体设计时放置table,query就可以了
 
我把所有table、query、datasource、database等凡是
与数据相关的组件全放在datamodule中,form上只有
数据感知组件,这样作开发出的程序会小好多,而且form
上没有乱七八糟的东东,心情都会好很多!
 
同意Cooler168,程序会小,另外还有一些根据需要意想不到的好处[^],我可碰到过哟。
 
我在dm1和dm2中有一大堆ClientDataSet(active = false)、DataSource,如果我打开一个窗口时要实时
create和访问这dm1、dm2,这样与只把和窗口相关的ClientDataSet和DataSource放到窗口上速度差别
会有多大?
 
有时候还是放到窗体上方便。
尤其是跟DBGRID关联的(MDI方式),全部放DataModule上的做法肯定是不可取的。
 
最好是DataModule上放ADOConnection,
然后窗体上的ADOConnection直接跟数据模块上的ADOConncection连接。
这样就只需在DataModule上设置数据关联,其他地方就不用管了。
 
各有各的优点:
如果你作的系统不是很大。 可以将QUERY TABLE 之类放到DATAMODUAL 里
如果很大,比如 我的医院系统。 在一个程序里需要用到上百个 查询和各种存储过程
控件。 如果都放到DATAMODUAL 里, 找都找不过来。眼睛都花了。

所以具体怎么办要看你的实际情况。
 
都放在DM里面,然后在程序里面进行设置,修改就好了。。。
 
我看到的是很多DELPHI程序员都是在它上面放数据控件,而在另外的窗体上
直接操作这个DataModule上的Table,Query什么的,这样做用不用DataModule都没有区别,
而且不符合面向对象的编程方法。
我的观点是:
DataModule的作用是提供服务函数,在其它窗体中只要调用公用函数就行了。
比如,一个登录界面
前面的写法是:在输入远username和pass后,在确定按钮中调用DataModule的Query,看看能否查到相符记录。
后面的写法是:在DataModule中提供一个验证函数(包含username和pass两个参数),
在确定按钮中只要判断函数返回值就行了,里面干什么和怎么干你不用管。
----当然了,DataModule里这个函数的实现也是查询相符的记录罗。

至于两者的好处和坏处,从封装性来说,前者不好但实现简便,后者好象麻烦些,但--
以后验证方法改变了的话,对于调用者来说,是无关紧要的。
 
to szf:
是这样的,datamodule无论其封装性还是方便性,肯定是为数据控件而设计的,否则要它做甚?
你说的公共函数,完全可以新建一个unit,把公共函数放在那里边不就行了,为什么还要放在
datamodule里呢?
 
后退
顶部