一次修改多条记录的数据处理(100分..给高手知识小费...急急....) ( 积分: 100 )

  • 主题发起人 主题发起人 天涯一客
  • 开始时间 开始时间

天涯一客

Unregistered / Unconfirmed
GUEST, unregistred user!
问题如下:我在用ADOQUERY或ADOTABLE与DBGRID控件处理数据时,分两种情况:1.单独处理一条记录(修改);2.单全表处理;<br>例如:表中有1..N个数据字段,现假设对&nbsp;&nbsp;2,3,5字段,是否修改及CHECKBOX选项而定,若checkbox&nbsp;.enabled&nbsp;=false;为单独处理一条记录;TRUE时为对所修改字段做相同处理;假设在TRUE下,我对2,3,5中的任一字段进行改修&nbsp;,那么就必对全表相同字段作同样处理;<br>我自个想了一下,用过程或TRIGGER处理,但不知那种方法更好,请高手给个提示或一段代码给说明,言者有分
 
用TRIGGER比较方便
 
procedure&nbsp;DBUpdate;<br>begin<br>&nbsp;&nbsp;if&nbsp;checked&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;全表处理<br>&nbsp;&nbsp;else<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;处理一条记录<br>end;<br>需要更新表时,调用下DBUpdate,挺方便的;<br>如果是触发器,我有2点不大明白:<br>1&nbsp;触发器如何与checkbox通信,它怎么知道当前checkbox的值<br>2&nbsp;顺序问题;好像是先更新,再触发器;而不是先触发器,再读取checkbox的值,然后更新表。<br>呵呵,小弟愚,表见怪。
 
我是用过程,不过好慢的.我那同时处理上万笔记录.
 
用过程不应当是慢的原因。<br>对于全表的更新可采取批处理,batchUpdate,不会慢的。<br>更者,采取分批次批处理:即一次提交1000条,最后一次提交余下的。
 
TRIGGER是在程序之外,无法与checkbox联系<br>QQ群:45139318,以讨论编程技术为主题,有兴趣请加入!暂时以讨论Delphi技术我主,谢谢合作
 
for&nbsp;i:=0&nbsp;to&nbsp;dbgrideh1.SelectedRows.Count-1&nbsp;do<br>&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dbgrideh1.DataSource.DataSet.Bookmark:=dbgrideh1.SelectedRows.Items;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s24:=dbgrideh1.DataSource.DataSet.Fields[0].asstring;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;adoquery2.Close;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;adoquery2.SQL.Clear;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;adoquery2.SQL.Add('update&nbsp;jh_thing_ticket&nbsp;set&nbsp;type=1&nbsp;where&nbsp;dno='+quotedstr(s24));<br>大至就这个意思。在delphi6中通过。你试试看。
 
to&nbsp;那年黄梅花开:<br>感谢以上各位大侠,的发言,不知上面那位说用过程的,可否把你的过程公开一下,让大家观赏一下,我不会让你们白费时间的
 
to&nbsp;sikogman,<br>你好,我问一下dbgrideh1.SelectedRows.Count的值为什么怎是为0,请问还要在那里设置[?]
 
还可以用checkbox和edit数组组合实现,不但适用于c/S,也适用于b/S
 
楼上的朋友,我知道checkbox和edit可以实现我的功能,但我想那样的法,好像不象很灵活<br>我不想那么做,但想做到更灵活一些,同时又有通用性
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
916
SUNSTONE的Delphi笔记
S
I
回复
0
查看
551
import
I
后退
顶部