如题 下面是我的程序
constr:= 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + APATH + ';Extended Properties=dBase 5.0;Persist Security Info=False';
adoquery1.ConnectionString:=constr;adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from test');
adoquery1.Active:=true;
adoquery1.Open;//出错地方 此问题已困扰我多时 望高手解之
DBGrid1.DataSource:=ADOQuery1.DataSource;

解决方案 »

  1.   

    以下代码在我的机器中已通过:
    procedure TForm1.Button1Click(Sender: TObject);
    var
      ConStr, S : string;
    begin
      try
        if OpenDialog1.Execute then
        begin
          constr:= 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source="'
               + ExtractFilePath(OpenDialog1.FileName)
               + '";Extended Properties=dBase 5.0;Persist Security Info=False';
          S := ExtractFileName(OpenDialog1.FileName);
          S := Copy(S, 1, Pos('.dbf', Lowercase(S)) -1);
          ADOQuery1.ConnectionString := constr;
          ADOQuery1.SQL.Clear;
          ADOQuery1.SQL.Add('select * from ' + S);
          ADOQuery1.Open;//出错地方 此问题已困扰我多时 望高手解之
        end;
      except
      end;
    end;
      

  2.   

    多谢VeryOldMan(老者)  还有一个问题 ADOQuery1.Open之后我想把数据显示到DBGRID中
    可是用DBGrid1.DataSource:=ADOQuery1.DataSource;没有任何反应 望赐教 谢谢
      

  3.   

    应该再添加一个DataSource控件,然后DataSource1.RecordSet:=ADOQuery1
    DBGrid1.DataSource:=DataSource1  实际上如果这些控件间的关系是固定的,那你可以在设计阶段就可以完成了.设置DataSource1的RecordSet属性和DBGrid1.DataSource属性.
      

  4.   

    DBGrid1.DataSource.DataSet:=ADOQuery1;