if ADOQuery2.Active then ADOQuery2.Close;
ADOQuery2.SQL.text := 'select * from 表 where 字段1=''' +
str1 + ''' and 字段2=''' + str2 + '''');
ADOQuery2.open;
if ADOQuery2.RecordCount = 0 then
begin
ADOQuery2.Insert;
ADOQuery2.fieldbyname('字段1').AsString := str1;
ADOQuery2.fieldbyname('字段2').AsString := str2;
ADOQuery2.fieldbyname('字段3').AsString := str3;
ADOQuery2.Post;
end;
end;
ADOQuery2.SQL.text := 'select * from 表 where 字段1=''' +
str1 + ''' and 字段2=''' + str2 + '''');
ADOQuery2.open;
if ADOQuery2.RecordCount = 0 then
begin
ADOQuery2.Insert;
ADOQuery2.fieldbyname('字段1').AsString := str1;
ADOQuery2.fieldbyname('字段2').AsString := str2;
ADOQuery2.fieldbyname('字段3').AsString := str3;
ADOQuery2.Post;
end;
end;
中的str1和str2相同吗?如果记录中确实有相同的你并没有判断recordcound的数量呀,
if adoquery12.recordcound=0 then insert;
else empty adoquery2(这样是不行的,你得自己再改动一下)
begin
//一条记录存数据库
if ADOQuery2.Active then ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('select * from 表 where 字段1="' + trim(str1) + '" and 字段2="' + trim(str2) + '"');
ADOQuery2.open;
if ADOQuery2.Eof and ADOQuery2.bof then
begin
ADOQuery2.Insert;
ADOQuery2.fieldbyname('字段1').AsString := str1;
ADOQuery2.fieldbyname('字段2').AsString := str2;
ADOQuery2.fieldbyname('字段3').AsString := str3;
ADOQuery2.Post;
end;
end;
end;
我用过trim了
还是有重复