Y
yzb
Unregistered / Unconfirmed
GUEST, unregistred user!
for i:=0 to ADODataSet1.FieldCount -1 do
begin
if ADODataSet1.Fields.FieldKind =fkData then
if ADODataSet1.Fields.DataType in [ftString, ftSmallint, ftInteger] then
begin
// if ( Not varisnull(ADODataSet1.FIelds.OldValue )) and (Not VarisEmpty(ADODataSet1.Fields.OldValue)) then
// if (Not ((varisnull(uDataSet.Fields.OldValue )) or (varisnull(uDataSet.Fields.NewValue)))) or ( Not (uDataSet.FIelds.OldValue =unassigned )) then
if ADODataSet1.Fields.OldValue <>ADODataSet1.Fields.NewValue then
begin
//下面这里执行不到 我跟踪了发现ADODataSet1.Fields.NewValue 此值还是更新以前的值
ChangeField:=GetOneFieldCaption(ADODataSet1,ADODataSet1.fields.FieldName);
//下面这个过程就执行一个SQL语句没有问题
InsertChangeField(ChangeField,ADODataSet1.Fields.OldValue,ADODataSet1.Fields.newvalue,DestTable,KeyValue);
end;
end;
end;
我想取出那些被用户更改过的字段 ,可是程序运行却不正确 ,最开始可以,可是后来不行了,为什么?中途我有将UDataSet 加了Var ,现
在去掉了.是不是这个影响,还是别的问题?
begin
if ADODataSet1.Fields.FieldKind =fkData then
if ADODataSet1.Fields.DataType in [ftString, ftSmallint, ftInteger] then
begin
// if ( Not varisnull(ADODataSet1.FIelds.OldValue )) and (Not VarisEmpty(ADODataSet1.Fields.OldValue)) then
// if (Not ((varisnull(uDataSet.Fields.OldValue )) or (varisnull(uDataSet.Fields.NewValue)))) or ( Not (uDataSet.FIelds.OldValue =unassigned )) then
if ADODataSet1.Fields.OldValue <>ADODataSet1.Fields.NewValue then
begin
//下面这里执行不到 我跟踪了发现ADODataSet1.Fields.NewValue 此值还是更新以前的值
ChangeField:=GetOneFieldCaption(ADODataSet1,ADODataSet1.fields.FieldName);
//下面这个过程就执行一个SQL语句没有问题
InsertChangeField(ChangeField,ADODataSet1.Fields.OldValue,ADODataSet1.Fields.newvalue,DestTable,KeyValue);
end;
end;
end;
我想取出那些被用户更改过的字段 ,可是程序运行却不正确 ,最开始可以,可是后来不行了,为什么?中途我有将UDataSet 加了Var ,现
在去掉了.是不是这个影响,还是别的问题?