如题

解决方案 »

  1.   

    在posterror事件中写:procedure TFinishInputStockForm.BodyQueryPostError(DataSet: TDataSet;
      E: EDatabaseError; var Action: TDataAction);
    var
      adoErrors : Errors;
      adoError : Error;
      iCount : Integer;
      ErrorList : TStringList;
      TipStr : String;
    begin
      ErrorList := TStringList.Create;
      {开始处理ADO的 ERROR 对象}
      adoErrors := DataModule1.ADOConnection1.Errors;  for iCount := 0 to adoErrors.Count -1 do
      begin
        adoError := adoErrors.Item[iCount];
        ErrorList.Add('错误号:' + InttoStr(adoError.Number));
        ErrorList.Add('错误源:' + adoError.Source);
        ErrorList.Add('错误描述:' + adoError.Description);
      end;
      TipStr := ErrorList.Text;
      ErrorList.Free;
      Raise Exception.Create(TipStr);
    end;
      

  2.   

    try
              
            except
              on E:Exception do
              Showmessage(E.Message+你的信息);
            end;
      

  3.   


    try
    adoquery1.append;
    adoquery1.fieldbyname('field').asstring:=trim(edit1.text);
    adoquery1.post;
    except
     showmessage('出错');
    end;至于错误代号,你可以这样捕获。
    try
    adoconnection1.beginstran;  //adoconnection1,是一个组件,用于连接数据源,把adoquery1的connection指向adoconnection1.
    adoquery1.append;
    adoquery1.fieldbyname('field').asstring:=trim(edit1.text);
    adoquery1.post;
    adoconnection1.CommitTrans;
    except
    adoconnection1.RollbackTrans;
    if adoconnection1.error.item[0]=2601 Then  //2601主键重复.有多个错误就用个循环一个一个解决.
     showmessage('主键出错');
    end;
      

  4.   

    那怎么去掉所有的出错信息呢?就是不跳出出错提示好像在激发出错事件(如PostError)之前,就跳出了出错提示,这怎么去掉?