插入数据时怎么使用异常处理?我知道我的result=1还没起作用,因为我不知道插入成功该怎样表达。该写在哪里呢? Tdmmain.ADOConn1.BeginTrans;
  with Tdmmain.tblcarinfo do
     begin
     append;
     fieldbyname('cardnum').AsString:=edit1.Text;
     fieldbyname('cartype').AsString:=edit1.Text;
     fieldbyname('carbrand').AsString:=edit1.Text;
     fieldbyname('color').AsString:=edit1.Text;
     fieldbyname('carnum').AsString:=edit1.Text;
     fieldbyname('drivername').AsString:=edit1.Text;
     fieldbyname('dradress').AsString:=edit1.Text;
     fieldbyname('cardate').AsDateTime:=strtodate(temdate);
     fieldbyname('moneynum').AsInteger:=strtoint(edit1.Text);
     fieldbyname('zhuitao').AsString:=edit1.Text;
     post;
     tdmmain.ADOConn1.CommitTrans;
    end;
    if result=1 then
      begin
      showmessage('插入车辆记录成功!');
      end
    else if result=0 then
    begin
    showmessage('数据插入失败,请与开发商联系!');
    tdmmain.ADOConn1.RollbackTrans;
    end;

解决方案 »

  1.   

    你的代码改为
    ...
    ...
    try
      post;
      tdmmain.ADOConn1.CommitTrans;
      showmessage('插入车辆记录成功!');
    except
      showmessage('数据插入失败,请与开发商联系!');
      tdmmain.ADOConn1.RollbackTrans;
      exit;//如果后面还有操作,这句加上
    end;
      

  2.   

    插入成功是提示了,可数据库
    showmessage('数据插入失败,请与开发商联系!');
    之前又有数据库操作错误的系统提示,因为关键字是cardnum,我重复操作来着,怎么解决?
      

  3.   

    try
      post;
      tdmmain.ADOConn1.CommitTrans;
    except
      showmessage('数据插入失败,请与开发商联系!');
      tdmmain.ADOConn1.RollbackTrans;
      exit;//如果后面还有操作,这句加上
    end;  showmessage('插入车辆记录成功!');
    是不是这样??还有个建议,……
    showmessage('数据插入失败,请与开发商联系!');
    tdmmain.ADOConn1.RollbackTrans;
    ……交换位置比较好。
      

  4.   

    那是因为你的编译环境下,用Exe运行就不会报错了