说说我总结的几个准则
1. 涉及到要使用dataset*datasource*data_aware control ,包括输入,修改,删除一体化的
界面。
1.1 全面了解dataset*datasource*data_aware control的borland数据管理体系,能在事件内
处理的尽可能在事件内处理,而不是在体系之外控制体系之内.
2. 全部dataset*datasource都放在一个datamodule内
3. 不使用data_aware control的界面,如treeview,listview,edit,listbox等,尽量
使用query,包括insert,update,delete
4. 简单的不涉及到界面同步只使用的操作,使用query
5. 作为3,4的query,只使用一个TQuery
6. 在使用TQuery时要注意,当一个函数在使用这个query的数据集时,不要调用其他可能
影响这个数据集的状态,位置的函数,这就是pie所说的
>>>但是必须注意,保证使用该Query 时, 不会被其他 干扰!!!!!!!<<<
>>>可以动态创建TTable或TQuery,创建之后,给属性付值即可。这样编码会多一些,<<<
--代码一起归自己控制是每个程序员的理想,但是
对于大量使用dataset*datasource*data_aware control实际上是不现实的,工作量太大
这只适合单一的数据操作.我曾经在一个少量的,小界面的程序内这样作,效果很好,但是在
二个MIS内应用这一套,被碰的头破血流,最后还是回到borland的DB -VCL中
--borland在这个数据体系内封装了大量代码,我们没有理由不使用,也不能认为我们会比他
做的更好.
--<<delphi4核心技术>>是专门介绍它,可以看一看,可以少作很多工作,磨刀不误砍柴工吗?
我写的一个函数,在我的程序内大量使用,配合3,4,5,6很简单,也很方便
function helpExecuteSql (sSql:String;haveResultSet : boolean = true) : TDataSet ;
begin
with dm.ADOQuery do
begin
Close ; sql.Clear ;
sql.add(sSql);
if haveResultSet then
Open else ExecSql ;
end;
if haveResultSet then
Result := dm.ADOQuery else
Result := nil ;
end;