是不是用事务? 可小弟不懂的用,有好心人举个例子么
sID :=ADOQuerylook.fieldbyname('学号').AsString;
  sSql4 := 'delete from Stu_BasicInfo where XH = ' + #39 + sID + #39;
  sSql3 := 'delete from Stu_FamInfo where XH = ' + #39 + sID + #39;
  sSql2 := 'delete from Stu_EventInfo where XH = ' + #39 + sID + #39;
  sSql1 := 'delete from Stu_GradeInfo where XH = ' + #39 + sID + #39;
  adoq := TAdoQuery.Create(nil);
  adoq.Connection := self.ADOConnection1;
  adoq.SQL.clear;
  adoq.SQL.Add(sSql4);
  adoq.SQL.Add(sSql3);
  adoq.SQL.Add(sSql2);
  adoq.SQL.Add(sSql1);
  try
    adoq.ExecSQL;
    self.ADOQueryLook.Close;
    self.ADOQueryFamInfo.Close;
    self.ADOQueryEvent.Close;
    self.ADOQueryGradeInfo.Close;
    self.ADOQueryLook.Open;
    self.ADOQueryFamInfo.Open;
    self.ADOQueryEvent.Open;
    self.ADOQueryGradeInfo.Open;
    showmessage('delete OK....!');
  except
    showmessage('delete error');
  end;
我这么写肯定是错误的!!!!!

解决方案 »

  1.   

    一个一次ADOQuerylook只能执行一条SQL语句,如果想要这样写的话 就用4次ADOQuerylook,还是用存储过程
      

  2.   

    我用的是ACCESS 数据库 看来只能用事务写了 
    多谢楼上的2位
      

  3.   

    sID :=ADOQuerylook.fieldbyname('学号').AsString;
      sSql4 := 'delete from Stu_BasicInfo where XH = ' + #39 + sID + #39;
      sSql3 := 'delete from Stu_FamInfo where XH = ' + #39 + sID + #39;
      sSql2 := 'delete from Stu_EventInfo where XH = ' + #39 + sID + #39;
      sSql1 := 'delete from Stu_GradeInfo where XH = ' + #39 + sID + #39;
      adoq := TAdoQuery.Create(nil);
      adoq.Connection := self.ADOConnection1;
      adoq.SQL.clear;
      adoq.SQL.Add(sSql4);
      adoq.SQL.Add(sSql3);
      adoq.SQL.Add(sSql2);
      adoq.SQL.Add(sSql1);
      adoq.SQL.Add('GO');//这里加个GO试试~~不行就用存储过程了
      try
        adoq.ExecSQL;
        self.ADOQueryLook.Close;
        self.ADOQueryFamInfo.Close;
        self.ADOQueryEvent.Close;
        self.ADOQueryGradeInfo.Close;
        self.ADOQueryLook.Open;
        self.ADOQueryFamInfo.Open;
        self.ADOQueryEvent.Open;
        self.ADOQueryGradeInfo.Open;
        showmessage('delete OK....!');
      except
        showmessage('delete error');
      end;
    我这么写肯定是错误的!!!!!
      

  4.   

    用TADOConnection的事务哟,access肯定是没有的,但D提供了呀,郁闷死了...
      

  5.   

    try
     ADOConnection1.BeginTrans;
      //...
      //...
      // 你的操作
     ADOConnection1.CommitTrans;
    except
     ADOConnection1.RollbackTrans;
    end;