在dbgrid中修改记录时能否判断出是哪一个字段被修改
大家好:
在dbgrid中修改记录时能否判断出是哪一个字段被修改,我是个菜鸟,请详细指点。
问题点数:80、回复次数:10Top
1 楼zsjzwj(北极熊)回复于 2005-08-24 17:31:48 得分 20
if ADOExceSql.Fields[0].OldValue = ADOExceSql.Fields[0].NewValue then
//没有修改Top
2 楼zsjzwj(北极熊)回复于 2005-08-24 17:32:25 得分 0
循环整条记录就知道哪几个字段修改过了Top
3 楼hqhhh(枫叶)回复于 2005-08-24 17:34:42 得分 20
应该没有直接的方法、属性判断吧!
不过你可以试试用OldValue 、NewValue应该可以判断
if ADOQuery1.FieldByName('aa').OldValue =
ADOQuery1.FieldByName('aa').NewValue then
//则此字段没有修改!
这样也太麻烦!请楼主试试!Top
4 楼hqhhh(枫叶)回复于 2005-08-24 17:46:06 得分 0
原来zsjzwj(北极熊) 兄弟来的这么快,
早知道就不进来了!进来时没看到你在!Top
5 楼zsjzwj(北极熊)回复于 2005-08-24 17:50:22 得分 0
我好不容易有点空来赚点分,都被你抢得差不多了Top
6 楼hqhhh(枫叶)回复于 2005-08-24 17:58:15 得分 0
to: zsjzwj(北极熊)
呵呵!不好意思!
如果上面的代码楼主调试通过,请楼主把分全部给 zsjzwj(北极熊) 兄弟,
在此感谢!
Top
7 楼cyjjwzy(笨笨)回复于 2005-08-24 18:09:17 得分 0
北极熊先生:
怎样循环整条记录知道哪几个字段被修改过?如果一条记录字段太多,用循环的办法是不是也不太好?Top
8 楼GenieWin(精灵太保)回复于 2005-08-24 21:25:07 得分 20
Var
I:Integer;
Begin
for I:= 0 to ADOQuery2.FieldCount - 1 do
begin
if ADOQuery2.Fields[I].NewValue <> ADOQuery2.Fields[I].OldValue then
ShowMessage('字段:'+ADOQuery2.Fields[I].FieldName+' 发生了改变。');
end;
Top
9 楼luofuyanglfy()回复于 2005-08-24 21:31:32 得分 0
大家好,我也有个难做的问题,我看高手在此众多,能否帮个忙,不胜感激!!!
http://community.csdn.net/Expert/topic/4229/4229487.xml?temp=.5441248Top
10 楼gssystems(海宏Systems)回复于 2005-08-24 22:56:16 得分 20
这个办法很好,不过好像有漏洞,如果记录异动了呢?
我觉得用临时表可以,在打开之前,先将数据内容放入临时表。
或者就用脱离数据库的组件,比如CxGrid,比较数据库内容与界面上内容的差异。
Top
相关问题
- 如何判断dbgrid中的一个字段的值是否修改了?
- 使用DBGRID、ADOTABLE,怎样判断DBGRID在EDIT模式下某字段的内容进行了修改,怎样获得修改前和修改后的值?
- 如何判断用户修改了哪个字段数据?
- dbgrid中的lookup字段值能修改吗?
- 在DBgrid中单击时能否判断这个字段为数据库中的关键字段?
- 怎样在dbgrid的ontitleclick事件里判断我正在按哪个字段名?
- 用dbgrid的navigator插入,保存时怎样判断所插字段不为空
- 请问怎么判断DBGrid中字段为Memo中内容是否为空?
- 我想实现修改dbgrid中的内容,其中有几个字段的值不能修改,如何实现?
- 如何修改字段名




