我在一个数据模块中加入ADOConnection,然后程序启动是动态写入连接字符串,新建窗体引用单元,在窗体上加入ADOQuery,可以正常浏览数据,但如果手动创建ADOQuery,如var
  q :TADOQuery;
begin
  inherited;
   Q := TADOQuery.Create(nil);
   q.Connection := SysDM.ADOCon;
   q.SQL.Text := 'select * from provider';
   q.Open;
   edt1.Text := q.FieldByName('ProviderName').AsString;
end;就显示没有指定驱动程序,百思不解。

解决方案 »

  1.   

    q.SQL.Text := 'select * from [provider]'; 
      

  2.   

    你用的是什么数据库?或者在数据模块上面放一个adoquery1控件,然后手动创建的时候:
    var 
      q :TADOQuery; 
    begin 
      inherited; 
      Q := TADOQuery.Create(adoquery1); 
      q.Connection := SysDM.ADOCon; //在数据模块中指定连接,此句可以省略。
      q.SQL.Text := 'select * from provider'; 
      q.Open; 
      edt1.Text := q.FieldByName('ProviderName').AsString; 
    end; 
      

  3.   

    试一下这样如何?var 
      q :TADOQuery; 
    begin 
      inherited; 
      Q := TADOQuery.Create(nil); 
      q.ConnectionString:= SysDM.ADOCon.ConnectionString; 
      q.close;
      q.sql.clear;

      q.SQL.Text := 'select * from provider'; 
      q.Open; 
      edt1.Text := q.FieldByName('ProviderName').AsString; 
    end; 
      

  4.   

    纠正一下:
    Q := TADOQuery.Create(SysDM.adoquery1); 
      

  5.   

    是由于我在登录模块中,由于先于数据模块创建,手动创建了个数据模块没有Free,所以,,,,,谢谢大家了
      

  6.   

    看下: SysDM.ADOCon 是不是为 nil?