这是我用dephi7的simpledataset写的用于保存数据的语句,但是感觉好像套路不对。因为即使在主键重复的情况下运行程序也会提示数据保存成功。在编辑环境下运行,会提示错误信息,但也会提示数据保存成功的信息。
你们一般用什么方法写的?procedure TInforDetailInputForm.bbtnSaveClick(Sender: TObject);
var
i:integer;
begin
if OperType='insert' then
Begin
simpleDataSet1.FieldByName('XH').AsString := XH;
end;
if simpleDataSet1.State in[dsInsert,dsEdit] then
begin
try
simpleDataSet1.Post;
except
raise exception.Create('数据保存出错!');
end;
end;
if (simpleDataSet1.ChangeCount > 0) then
begin
simpleDataSet1.ApplyUpdates(-1);
Application.MessageBox('数据保存成功!','提示');
end;
close; //关闭窗体end;
你们一般用什么方法写的?procedure TInforDetailInputForm.bbtnSaveClick(Sender: TObject);
var
i:integer;
begin
if OperType='insert' then
Begin
simpleDataSet1.FieldByName('XH').AsString := XH;
end;
if simpleDataSet1.State in[dsInsert,dsEdit] then
begin
try
simpleDataSet1.Post;
except
raise exception.Create('数据保存出错!');
end;
end;
if (simpleDataSet1.ChangeCount > 0) then
begin
simpleDataSet1.ApplyUpdates(-1);
Application.MessageBox('数据保存成功!','提示');
end;
close; //关闭窗体end;
s.TransactionID := 1
s.TrancactLevel := xilREADCOMMITTED;
SQLConnection.StartTransaction(s);
try
if SimpleDataSet1.ChangeCount>0 then
SimpleDataSet1.ApplyUpdates(0);
SQLConnection.Commit(s);
except
ShowMessage('数据保存出错!');
SQLConnection.Rollback(s);
end;