应该和adoquery无关,可能和没有初始化com环境有关试试在dll中加入uses activex;
initialization
  OleInitialize(nil);
finalization
  OleUninitialize;
请大家去 http://www.new7wonders.com/c/voting.php 投长城一票

解决方案 »

  1.   

    还是不行,怎么办?library moduleab;uses
      SysUtils,dialogs,adodb,activeX,
      Classes;procedure mainfunc(cnstring:string);stdcall;
    var myado:tadoquery;
        s:string;
        i:integer;
    begin
            myado:=tadoquery.Create(nil);          myado.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\myaccess\myaccess.mdb;Persist Security Info=False';
            with myado do
            begin
             close;
             sql.Clear;
             sql.Add('select * from order_info');
             open;
             first;
             while not eof do
             begin
              for i:=0 to fieldcount-1 do
               s:=s+Fields[i].AsString;
              next; 
             end;
            end;
            showmessage(s);
    end;exports 
    mainfunc;{$R *.res}begin
    end.initialization
      OleInitialize(nil);
    finalization
      OleUninitialize;
      

  2.   

    这样也不行,哪位高手帮我看看?分可以加的
    library moduleab;uses
      SysUtils,dialogs,adodb,
      Classes;procedure mainfunc(cnstring:string);stdcall;
    var myado:tadoquery;
        s:string;
        i:integer;
    begin
            myado:=tadoquery.Create(nil);          myado.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\myaccess\myaccess.mdb;Persist Security Info=False';
            with myado do
            begin
             close;
             sql.Clear;
             sql.Add('select * from order_info');
             open;
             first;
             while not eof do
             begin
              for i:=0 to fieldcount-1 do
               s:=s+Fields[i].AsString;
              next; 
             end;
            end;
            showmessage(s);
    end;exports 
    mainfunc;{$R *.res}begin
    end.