请问:往数据库中插入数据的问题?(100分)

  • 主题发起人 主题发起人 慕荣冰靖
  • 开始时间 开始时间

慕荣冰靖

Unregistered / Unconfirmed
GUEST, unregistred user!
往数据库中插入数据,要检查是否已经有这个信息了,如果有了,就不插入,
如果没有,则插入,请问代码怎么写?
我用代码:
slestr:='select pattern_c from category' ;
if slestr <> edit1.Text then
begin
adoquery2.FieldByName('pattern_c').AsString :=edit1.Text ;
adoquery2.Post ;
end
else
if slestr =edit1.Text then
begin
adoquery2.Cancel
end;
结果不行,无论已有或还有没都插入。
 
selstr := format'select pattern_c from category where pattern_c="%s"',[Trim(edit1.Text)]);
adoquery1.sql.clear;
adoquery1.sql.add(selstr);
adoquery1.open;
if adoquery1.Eof then

begin
adoquery2.FieldByName('pattern_c').AsString :=edit1.Text ;
adoquery2.Post ;
end
else
if slestr =edit1.Text then
begin
adoquery2.Cancel
end;
 
ADOQuery2.Insert;
adoquery2.FieldByName('pattern_c').AsString :=edit1.Text ;
ADOQuery2.Post (select 语句)

adoquery2.execsql ;
(insert 语句)
 
你的edit1.Text 等于'select pattern_c from category' 吗?
应该是这样吧
adoquery2.sql.clear;
adoquery2.sql.add('select pattern_c from category where pattern_c ='+''''+ edit1.Text +'''');
adoquery2.open;
if(adoquery2.recordcount=0)then
begin
adoquery2.FieldByName('pattern_c').AsString :=edit1.Text ;
adoquery2.Post ;
end
else

begin
adoquery2.Cancel
end;

 
后退
顶部