100分!一个模块分成小模块给几个人做,那datamodule要不要分,如要分怎么分?
一个模块分成小模块给几个人做,那datamodule要不要分,如要分怎么分?如datamodule不分,那只能从控件名上下手了?
如datamodule分成几个,那最后,几个datamodule是不是要用一个datamodule上的ADOConnection?
请网友提供高见!
[解决办法]
这个我认为是delphi的一个弊端,在多人协作开发下不能及时有效的将代码整合,vs2003与vss的结合,vs2005的TFS,delphi可以使用teamsource,不过我没有用过。
[解决办法]
ADOConnection还是不要用多个,就我个人的经验,DELPHIE在WINDOWS平台上,多个ADOConnection是很容易出BUG的。
你的东东有多大?DATAMODULE还要分?那还不如写一个DATA访问的公共类,让大家调用,根据自己的需要传SQL语句。
[解决办法]
用Modal Maker好像可以实现多人合作,一人锁定一段代码段来写。
不过个人没试过。
[解决办法]
如果本身项目不大
datamodule不分
ADOConnection只要一个
每个人约定好不准开关ADOConnection
各人控制各自的数据集使用事务处理
[解决办法]
ADOConnection用一个就可以了,写一个公共的数据处理类,插入、更新、删除等操作可以封装起来,只要传入一些必要的参数就可以了,数据集控件可以放在窗体上
[解决办法]
呵呵,楼上的更笨
坐一基类datamodule
在这个class 里面,对连接进行管理,事物进行管理,并处理一些公共的操作。
其它小模块的datamodule成为这个类的子类,写相应的逻辑,
坚绝对反对在datamodule中放n多的tadodataset,tadoquery,之类的东西,
[解决办法]
一个程序里共享一个ADOConnection最合适,这样以来datamodule就别分了.
每个人的环境里都有一样的datamodule:ADOConnection也一样.程序设计成运行时连接.
但是数据库要一样(复制数据库起个别的名字).这样以来大家相互之间不影响但是却相当于操作一个数据库(结构之类的都一样嘛),等全做完时,整到一个模块里面,统一一下ADOConnection的连接,连到一个数据库里,把那些临时用的复制的数据库删除了.
哈哈,这样行吗?楼主自己试吧,我只是随便想想.
[解决办法]
"坚绝对反对在datamodule中放n多的tadodataset,tadoquery,之类的东西 "能告诉俺为什么吗?因为俺一直这么做的啊,感觉不出来什么不大愉快的.
----------------------------------------------
偶就亲眼看过一个data module里面放了100多个数据集控件的,估计你亲眼看过之后就知道什么叫“不愉快”了 -。-
不过话说回来,要共用数据集控件的话,也不是那么容易,尤其是有数据敏感控件的时候。偶较支持Data Module按需要划分,或者动态创建数据集控件。至于Connection就无疑是要共用的了。
学习ing....
[解决办法]
看你的窗体是怎么设计的拉,如果允许多窗口同时操作的话,那数据控件就不能相同了,如果每次只能对一个窗体操作,数据控件就可以复用,记得窗体关闭时即时释放就可以了
[解决办法]
连接就用一个
数据模型,可以按业务分开
[解决办法]
我们做的时候是分的呀,但模块命名应该是一样的,ADOCONNECTION的命名也一样,然后合并的时候不要合并数据模块,只把上面的控件(不包括ADOCONNECTION)复制到总的那个数据模块上,这样合并以后就是一个ADOCONNECTION,而且代码也不用改.
[解决办法]
将DataModule放到VSS中即可,这样就统一了DataModule,合并时也就简单了!
[解决办法]
不提倡多个ado连接
[解决办法]
坚绝对反对在datamodule中放n多的tadodataset,tadoquery,之类的东西,
----------------
十分赞同观点
偶就亲眼看过一个data module里面放了100多个数据集控件的,估计你亲眼看过之后就知道什么叫“不愉快”了 -。-
---------------
我现在就在重构这样的系统,
至于我的做法是:提供一个共同的Connection
其它的模块要的就要根据这个Connection 动态生成 一个数据集控件
[解决办法]
一个够了,delphi也可以跟vss一起用,一点问题的都没有
[解决办法]
不过采用多ADOConnection好像没必要。
即使是多DataModule,也可以使用一个ADOConnection
------解决方案--------------------
不论任何情况,DATAMODULE都不应该分的,
一般说来,DATAMODULE里都放有数据库的连接控件,而一个数据库的连接是会占用系统资源的.一但分开,如果客户同时打开N个模块,将产生N个连接,其后果可想而知
[解决办法]
建议多个 datamodule, 有个主的, 放ADOConnection,放一个还是多个, 根据实际情况
另外,其它的datamodule 可按业务或模块来分, 放table, query这类的连接控件
[解决办法]
为什么要用datamodule?
程序里除了一个ADOConnection是静态的以外,所有的东西都用adoquery来做,所有的query都动态生成。
不过要把Adoquery包装一下,在constructor中设置connection。
这样用的时候几乎所有的函数都是这样的模式
function xxx(条件)返回值;
var
q: TMyQry;//继承自adoquery,并重写constructor
begin
q := TMyQry.Create();
try
//这里你爱怎么写就怎么写
finally
q.Free;
end;
end;