UpdateSQL 更新有相同的字段的记录时总是"Update faild",可每条记录并不相同啊,谁来帮我,谢大家了!!(50分)

  • 主题发起人 主题发起人 Dchou
  • 开始时间 开始时间
D

Dchou

Unregistered / Unconfirmed
GUEST, unregistred user!
表aa.dbf定义为 id 字段1 字段2
1 abc xx1
2 cc1 yy1
3  aa  b1
  4  aa  b2
Form1上预先定义描述:
Query1.Sql.String=('select * from aa.dbf')
Query1.Active:=true
Query1.RequestLive:=false
Query1.CachedUpdate:=true
Query1.UpdateObject:=Updatesql1
Updatesql1.ModifySQL.Strings=('update aa.dbf set 字段2="newcc"
where id=:old_id and 字段1="aa" ')
执行语句
query1.edit;
query1.Applyupdates;
query1.CommitUpdates ;
query1.close;
query1.open;
还有dbgrid怎样刷新查看更改的结果?


 
如果你有留意TUpdateSQL的VCL代码的话,你应该知道 ,TUpdateSQL是这样的,
在UPDATE完之后会判断一下被影响的记录数如果记录数是0 或者 大于 1那么就会报
Update faild了
procedure TUpdateSQL.ExecSQL(UpdateKind: TUpdateKind);
begin
with Query[UpdateKind] do
begin
Prepare;
ExecSQL;
if RowsAffected <> 1 then DatabaseError(SUpdateFailed);
end;
end;
其实你没错,这是社会的错,可怜的孩子
 
我怎样处理或避免它才好。我对DELPHI知之甚少
100%可怜

 
选取select

更新update

是分开的。
用一个query就行了。
 
接受答案!
 
后退
顶部