源代码如下:  function TBase.Error:Boolean;
  begin
  try
  with DataModule.qry2 do
  begin
    SQL.Clear;
    SQL.Add('SELECT ID, Type, [User], [Key] INTO Table1 FROM table2 WHERE id in '
           +'(select id from VI where U_Ans <> [Key]) order by id');
    ExecSQL;
  end;
  if DataModule.qry2.RecordCount > 0 then
  begin
  with DataModule.qry1 do
  begin
    SQL.Clear;
    SQL.Add('select * from table2 where id in (select id from Table1)');
    Open;
  end;
  Result := True;
  end
  else Result := False;
  except
    Result := False;
  end;
  end;这个是在自定义类中的,在程序中执行这个过程时提示::……raised   exception   class   EOleException   with   message '验证失败',其它过程都没问题呀,哪位大哥指点一下,兄弟刚学的。

解决方案 »

  1.   

    可是在其它过程中都没问题啊!还是这两个ADOQUERY 咋能这样呢 这不是欺负人吗
      

  2.   

    自定义类中的datamodule有没有释放过,可能需要重新创建。
      

  3.   

    嘿嘿 我搞不清了 看看源代码吧(能解释一下吗,新手需要老大哥们的谆谆教导,可惜自己分不多了,不然就来100分)。
    自定义类的ADO:
    constructor TBase.create;
      begin
        DataModule.ADOConnection.Close;
        DataModule.ADOConnection.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;'
            +'User ID=admin;Data Source=.\DATA\Question.mdb;Mode=Share Deny'
            +' None;Jet OLEDB:Database Password="mangogate1.66"';
        DataModule.ADOConnection.Open;
      end;程序调用:
    能正常执行的
    procedure TForm1.ButtonClick(Sender: TObject);
    begin
      Base :=TBase.create;
      try
      Randomize;
      Base.create;
      Base.Del('VI');
      Base.CreTab('VI');
      Base.Insert(1,1,25);
      Base.TMNumber('VI');
      base.List('VI','TMNo');
      Form2.ShowModal;
      except
        ShowMessage('创建失败');
      end;
      Base.Destroy;
    end;要出错的(直接点这个也不行,先点Button1后再点这个也不行):
    procedure TForm1.Button2Click(Sender: TObject);
    begin
    //Base :=TBase.create;   这条不注释掉也出错
    if Base.ErrorLX then FrmLX.ShowModal
    else ShowMessage('创建失败!');
    //Base.Destroy;
    end;叩拜了....................
      

  4.   

    兄弟们 帮我解答一下ADO方面的流程啊