ADOQuery的Connection属性设为ADOConnection悾件。在SQL中填入查询语句。程序运行正常。
中间调用了一次ADOQuery.LoadFromFile('abc.dtg'),将dtg文件的数据读入,也运行正常。
然后重新填入SQL查询语句,出错!跟踪到ADODB中的出错地点,有一个参数CommandType=inaccessible value. 到底是LoadFromFile改了什么了?

解决方案 »

  1.   

    呵呵,我没试过你这样的用法,不过在重新更新数据前,一定要先CLOSE,再OPEN,或导入数据,呵呵
      

  2.   

    是否忘了:adoquery.sql.clear;  //???
      

  3.   

    adoquery.close;
    adoquery.Refresh
    adoquery.sql.clear;  
      

  4.   

    是否忘了adoquery.close;
    然后再  adoquery.sql.text ;=....
    再      adoquery.open
      

  5.   

    应该不会改变什么的
    你在哪有用到COMMANDTYPE这个参数呢
    可不可以查看一下你的源程序
      

  6.   

    跟踪到ADODB中的出错地点,有一个参数CommandType=inaccessible value.
      

  7.   

    應該是query沒有關閉,query.sql.clear;
      

  8.   

    Source Code is as follows:procedure TNMBReport.QueryClick(Sender: TObject);
    var
        s: string;
    begin
      try
        s:='select Station,Time,Message,LocalTime from Message';
        s:=s+' order by Station,Time';    ADOQuery1.Close;
        ADOQuery1.SQL.Clear;
        ADOQuery1.SQL.Add(s);
        ADOQuery1.Open;
      except
        on E: exception do
          ShowMessage(E.Message);
      end;
    end;procedure TNMBReport.LoadDataClick(Sender: TObject);
    var
        s:string;
    begin
        OpenDialog1.InitialDir:=GetCurrentDir;
        OpenDialog1.Filter:='dtg';
        OpenDialog1.FileName:='*.dtg';
        if not OpenDialog1.Execute then
            exit;
        s:=OpenDialog1.FileName;
        ADOQuery1.LoadFromFile(s);
    end;
      

  9.   

    分肯定是我的你看清楚了
    不要用ADOQuery(我从来不用它) , ADODataSet;procedure TForm1.Button4Click(Sender: TObject);
    begin
      with ADODataSet1 do
      begin
        Close;
        CommandType := cmdText;
        CommandText := 'select * from customers';
        Open;
      end;
    end;
      

  10.   

    adoquery.close;
    adoquery.sql.clear;
      

  11.   

    呵呵,应该都如同楼上的各位所说具体的因为没有你的代码,我也 清楚,所以你自己多调试
    close;后在sql.clear;
    等;
    楼上的各位都已经说的很清楚了 …………
      

  12.   

    原代码已经贴上了,里面有Close/Clear/Open啊。