我是去年5月份,一个偶然的机会发现了cnpark,用了之后大大的提高了开发效率,
排版比以前方便多了。而且可以通过Shift+F9实现脱离环境运行。而且可以自动的物理文件找出来。自定义过程的注释。。。
一直用到现在,不过我目前还时使用delphi7.
这几年来,有个关于AdoQuery的问题,一直困扰着我,
我知道在这里发这个问题,不太合适,这里高手如云。我非常想专家们帮我看看这个问题:
==========================================
付费请求解决AdoQuery在C/S下的多表现实,单表更新的问题[300~500元]:
如果把
AdoQuery.LockType 设置成 ltBatchOptimistic;
那么可以通过AdoQuery.UpdateBatch 更新数据;
比如:我们可以在DbGrid上任意做添加修改删除动作,一口气处理很多条记录,
最后,用一句AdoQuery.UpdateBatch提交给数据库;
非常非常方便;
我们不用自己判断哪些记录作了修改,那些纪录是刚添加的,删除了那些纪录,
也不要手工写任何更新的Sql语句;
但是AdoQuery.UpdateBatch 只能处理单表;
在多个表关联时,如果我们只想更新其中的一个表,其他表的字段不跟着更新,
那该怎么办?
有人提供这样的方法:
AdoQuery.Recordset.Properties.Item['Unique Table'].Value := '主表';
但是这个只对删除有用。
也有朋友提供:
把不需要更新的字段,修改其属性是ProviderFlags,把不需要提交的列pfInUpdate置为false就可以了;
我尝试了,这个好像只对三层架构有用,在B/S架构下不行;
我一直在网上寻求这个问题的处理方法,可是没有找到答案;
我也尝试着改写AdoQuey,让它和BDE的Query一样,也有UpdateObject属性,
可以通过设置UpdateSql的方法来灵活的控制更新;
但是没有办法实现类似Query.ApplyUpdates 这样的功能;
目前我研究的Ehlib4.0下面有AdoDataDriverEh控件,它能够实现类似BDE下的Query那种方式;
但是它要通过MemTableEh,而且数据量大的时候,数据集打开非常慢;我不想采用。
其实我最简单的想法就是:
1、 能够通过一个属性,把不需要更新的字段不参与更新就可以了;
2、 上面这个方法如果不行,如果能实现BDE下的Query那种方式也行;
如果哪位朋友,帮我解决这个问题,我愿付费请求解决方法;
解决方法,可以改写或继承AdoQuery,或者写一个新的Ado控件等等;
费用我考虑在300~500元之间,如果不够,可以再商量,我现在急切的想解决该问题。
联系方法:
msn:
sy_dzc@hotmail.com
如果觉得我这个问题描述不够详细,
可以参阅
http://www.delphibbs.com/delphibbs/dispq.asp?lid=3277229