我的程序如下:CQDSet:=TAdoDataSet.Create(nil);
CQDSet.Connection := DataS.CQConnect;
CQDSet.CommandText := 'select * from Table1 where TransFlag<>'+#39+'1'+#39;
ChargeDSet :=TAdoDataSet.Create(nil);
ChargeDSet.Connection := DataS.ChargeConnect;
ChargeDSet.CommandText:= 'select * from Table1';
ChargeDSet.Open;
CQDSet.Open;
CQDSet.First;
try
while not CQDSet.Eof do
begin
ChargeDSet.Append;
for i:=0 to CQDSet.FieldCount -1 do
begin
ChargeDSet.Fields[i].Value := CQDSet.Fields[i].Value;
end; ChargeDSet.Post; ///这里有问题!!
CQDSet.Edit;
CQDSet.FieldByName('TransFlag').Value :='1';
CQDSet.Post;
CQDSet.Next;
end;
CQDSet.UpdateBatch();
ChargeDSet.UpdateBatch();
Showmessage('OK');
finally
CQDSet.Free;
ChargeDSet.Free;
end;
如果ChargeDSet.Post一旦失败,就会完全退出,但我想让它即使有一条数据主键冲突等原因失败,也想继续其它行数据的操作,怎么实现??
CQDSet.Connection := DataS.CQConnect;
CQDSet.CommandText := 'select * from Table1 where TransFlag<>'+#39+'1'+#39;
ChargeDSet :=TAdoDataSet.Create(nil);
ChargeDSet.Connection := DataS.ChargeConnect;
ChargeDSet.CommandText:= 'select * from Table1';
ChargeDSet.Open;
CQDSet.Open;
CQDSet.First;
try
while not CQDSet.Eof do
begin
ChargeDSet.Append;
for i:=0 to CQDSet.FieldCount -1 do
begin
ChargeDSet.Fields[i].Value := CQDSet.Fields[i].Value;
end; ChargeDSet.Post; ///这里有问题!!
CQDSet.Edit;
CQDSet.FieldByName('TransFlag').Value :='1';
CQDSet.Post;
CQDSet.Next;
end;
CQDSet.UpdateBatch();
ChargeDSet.UpdateBatch();
Showmessage('OK');
finally
CQDSet.Free;
ChargeDSet.Free;
end;
如果ChargeDSet.Post一旦失败,就会完全退出,但我想让它即使有一条数据主键冲突等原因失败,也想继续其它行数据的操作,怎么实现??
解决方案 »
- 请教个算法问题?
- 想了解一下delphi的三层架构如何实现?
- 请教高手,ADOQuery中的参数值为什么不能为空!
- 如何在Grid里根据不同条件动态生成一个序号列?
- 请问如何再tdbgrid控件里实现内嵌combobox
- 我要用Delphi开发一套计算机自动组卷系统,各位手头有什么资料、建议???
- 高分征集自动链加exe程序的思路和源程序!分不够可再加200!!!
- 急急急:谁能解决TIdHTTP.Get超时无响应的问题???我愿意出RMB解决。
- idpop3+idmessage无法收取邮件内容!
- 我写了一个小共享软件,8000多行,大家能不能进来帮我分析一下看有没有市场
- 简单问题,随便看看就能答起!!!
- 在线等,,关于valueListEditor删除记录
ChargeDSet.LockType:=ltBatchOptimistic;
while not CQDSet.Eof do
begin
ChargeDSet.Append;
for i:=0 to CQDSet.FieldCount -1 do
begin
ChargeDSet.Fields[i].Value := CQDSet.Fields[i].Value;
end; CQDSet.Edit;
CQDSet.FieldByName('TransFlag').Value :='1';
CQDSet.Next;
end;
CQDSet.UpdateBatch();
try
ChargeDSet.UpdateBatch();
except
end;
Showmessage('OK');
CQDSet.Free;
ChargeDSet.Free;
end;
放在循环里面
ChargeDSet.Post; ///这里有问题!!
to
try
ChargeDSet.Post; ///这里有问题!!
except
ChargeDSet.cancel;
end;ChargeDSet.edit;