检查记录是否已存在的事务

时间:2016-02-26 15:31:25

标签: delphi

代码在这里。工作正常,但我只是不知道如何写 一个更适合作业的事务(提交,回滚......)。

procedure TForm1.cxButton1Click(Sender: TObject);
begin
  with acrquery2 do
  begin
    ACRQuery1.DisableControls;
    SQL.Clear;
    SQL.Add('INSERT INTO dnevnik (datum,izmena_id,opravilo,narejeno,sprememba) SELECT :a1,izmena_id,opravilo,narejeno,sprememba FROM opravila where izmena_id = :a2');
    Params.ParamByName('a1').asdate := cxdateedit1.Date;
    Params.ParamByName('a2').AsInteger := acrtable1.FieldByName('izmena_id').AsInteger;
    ACRQuery2.ExecSQL;
    SQL.Clear;
    SQL.Add('UPDATE OPRAVILA SET NAREJENO=False,sprememba=null');
    ACRQuery2.ExecSQL;
    ACRQuery1.EnableControls;
    ACRQuery1.Refresh;
  end;

我想将上面的代码包装在一个事务中,但是在插入之前先进行检查,如果" datum"和" izmena_id"已经存在于" dnevnik"表(不允许重复)。如果是,则通过消息中止操作。我不知道SQL这样的检查。可能'如果存在' ...

在SQLite中,设置约束很容易,但不了解Accuracer。有人可以帮我写这段代码吗?谢谢!

0 个答案:

没有答案