现在举例说明吧!aID a1 a2 a3
2001 22 33 sd
2001 23 21 a12
2001 24 44 2dd当插入记录
aID a1 a2 a3
2002 22 33 sd
2002 23 21 a12
2002 24 44 2dd
时,就禁止插入aID=2002对应的记录比aID=2001对应的记录多一条或少一条的话,可以不禁止插入就是当插入数据
aID a1 a2 a3
2002 22 33 sd
2002 23 21 a12
或
aID a1 a2 a3
2002 22 33 sd
2002 23 21 a12
2002 24 44 2dd
2002 54 44 ss2
可以插入谢谢!!!!!
2001 22 33 sd
2001 23 21 a12
2001 24 44 2dd当插入记录
aID a1 a2 a3
2002 22 33 sd
2002 23 21 a12
2002 24 44 2dd
时,就禁止插入aID=2002对应的记录比aID=2001对应的记录多一条或少一条的话,可以不禁止插入就是当插入数据
aID a1 a2 a3
2002 22 33 sd
2002 23 21 a12
或
aID a1 a2 a3
2002 22 33 sd
2002 23 21 a12
2002 24 44 2dd
2002 54 44 ss2
可以插入谢谢!!!!!
解决方案 »
- DELPHI 的PopupMenu用法?
- 高分求一个简单的画布输出打印例子(100分)
- 莱鸟提问:delphi如何生成exe 安装文件
- 关于数据库的!初学者提问
- 想把字符串 "数据软件" 变成 "#25968#25454#37319#36719",这样的函数有么?
- 关于D2009 的字符串数据类型 Char,AnsiChar.string,AnsiString
- 请问怎样保存TRichEdit中的格式文本?
- 大虾,Delphi下怎么使用API函数EnumWindows呢?
- 如何得到当前执行的语句在源代码中的行数?
- 如何获取字符串指定位置后面的几个字符串
- 如何截取一个BMP图象形文件上的一块?
- IdFTP断点上传时,文件一直累加该如何解决?
用CLIENTDATA控件暂存B的数据,POST后看RECODECOUNT是否符合要求,是的话就ApplyUpdates,否的话就提示。
你可以直接判断当前准备插入的数据组合,是否在表中存在了
var
rec,rectemp:integer;
begin
form1.ADOConnection1.BeginTrans;
with form1.ADOQuery1 do
begin
close;
sql.Clear;
sql.Add('select aid from table_name where aid=:aidvale');
parameters.ParamByName('aidvale'):=你要插入的记录aid;
open;
end;
rec:=form1.ADOQuery1.RecordCount;
while 要插入的aid=aidvale的记录没有插入完 do
begin
with adoquery1 do
begin
close;
sql.Clear;
sql.Add('insert into table_name values(:aidvale,:a1,:a2:a3)');
ExecSQL;
end;
inc(rectemp);
end;
if rec=rectemp then
form1.ADOConnection1.RollbackTrans;
else
form1.ADOConnection1.CommitTrans;
end;