1.定义主键 try ...insert...2.insert前判断相同主键是否存在 "select ..." if ***.recordcount=0 then insert... else ...
insert前判断相同主键是否存在:
在BeforPost事件中写 : if qryData.State = dsInsert then begin with query do begin Close; SQL.Clear; SQL.Add('select * from Table (nolock)'); SQL.Add('where id = '''+query1.FieldByName('ID').AsString+''''); Open; end; if not query.isEmpty then begin Showmessage('主键重复,请重新输入!'); Abort; end; end;
try
...insert...2.insert前判断相同主键是否存在
"select ..."
if ***.recordcount=0 then insert...
else ...
if qryData.State = dsInsert then
begin
with query do
begin
Close;
SQL.Clear;
SQL.Add('select * from Table (nolock)');
SQL.Add('where id = '''+query1.FieldByName('ID').AsString+'''');
Open;
end;
if not query.isEmpty then
begin
Showmessage('主键重复,请重新输入!');
Abort;
end;
end;
我在保存按钮控件里直接写了如
dbgrid1.Fields[0].Text:=edit1.Text ;
dbgrid1.Fields[1].Text:=combobox1.Text ;
dbgrid1.Fields[2].Text:=combobox2.Text ;
dbgrid1.Fields[3].Text:=edit3.Text ;
等代码,每次都先执行此代码了,然后就出错了,怎么办啊?
怎么会通过DBGrid来保存数据呢!
DBGrid是连接显示数据的,用Query来保存数据才对啊!