Dmain.cdsC.First;
while not Dmain.cdsC.Eof do
begin
if (条件) then
begin
//其他操作
Dmain.cdsC.Delete;//删除在数据库中已经存在的记录
end
else
if (条件) then
begin
//其他操作
Dmain.cdsC.Next;
end;
end;
Dmain.cdsC.RecordCount;//记录数正确,为删除后的数据集的记录数,例如原来Dmain.cdsC有100条,删除20条,现在为80条 Dmain.cdsC.First;
while not Dmain.cdsC.Eof do //查看cdsC中确实已无主键重复的记录
begin
sID := Dmain.cdsC.FieldByName(ID).AsString;
Dmain.cdsC.Next;
end; Dmain.cdsC.ApplyUpdates(0);//报错,提示不唯一,主键冲突 { //以下语句可以执行,但实际插入到数据库中的记录为160条,为重复的80条,像是执行了两次ApplyUpdates
Dmain.Qrya.Close;
Dmain.Qrya.SQL.Clear;
Dmain.Qrya.SQL.text:='ALTER TABLE BZK_ZK_CARDINFO DISABLE CONSTRAINT CARD_INFO_KEY_YUANID';
Dmain.Qrya.ExecSQL(TRUE);
Dmain.Qrya.ApplyUpdates(0);
}
困惑中...,不知何解
while not Dmain.cdsC.Eof do
begin
if (条件) then
begin
//其他操作
Dmain.cdsC.Delete;//删除在数据库中已经存在的记录
end
else
if (条件) then
begin
//其他操作
Dmain.cdsC.Next;
end;
end;
Dmain.cdsC.RecordCount;//记录数正确,为删除后的数据集的记录数,例如原来Dmain.cdsC有100条,删除20条,现在为80条 Dmain.cdsC.First;
while not Dmain.cdsC.Eof do //查看cdsC中确实已无主键重复的记录
begin
sID := Dmain.cdsC.FieldByName(ID).AsString;
Dmain.cdsC.Next;
end; Dmain.cdsC.ApplyUpdates(0);//报错,提示不唯一,主键冲突 { //以下语句可以执行,但实际插入到数据库中的记录为160条,为重复的80条,像是执行了两次ApplyUpdates
Dmain.Qrya.Close;
Dmain.Qrya.SQL.Clear;
Dmain.Qrya.SQL.text:='ALTER TABLE BZK_ZK_CARDINFO DISABLE CONSTRAINT CARD_INFO_KEY_YUANID';
Dmain.Qrya.ExecSQL(TRUE);
Dmain.Qrya.ApplyUpdates(0);
}
困惑中...,不知何解
解决方案 »
- 请教:这一段 SQL 语句 我要用Delphi怎么实现
- 请教如何将tbitmap中的bmp图片赋值给timage呢?我用image.picture.graphic.assigned(bmp)不能成功,还有其它办法吗?
- 帮忙解决access voilation的问题
- 还是关于树形数据的问题?
- 我做的一个编程文档下载站,邀请大家去看看
- 如何显示页码?
- 用frreport1.showreport 显示报表,为什么没有显示报表
- 向大家推荐一本好书:
- 简单,两个edit的问题
- 如何获得终端用户????
- 打包一个软件,并去广告 200块是否有人可以拿下?
- 程序报‘out of memory’,如何释放内存
http://topic.csdn.net/u/20101029/10/5e73dbcf-ad4a-472c-b29a-5eb2fbe2326a.html
这句报异常后,没有主键冲突的的记录竟然保存到了数据库中,有主键冲突的没有保存成功。
我的本意是异常后要提交的数据能够全部回滚,不提交,不用事物的话,设置在TDataSetProvider或TClientDataSet的属性能够实现吗?