请各位高手指点:
小弟想要在一个DLL中连接SQL数据库,但一直不能成功,请各位老大指点一下!function CallIn(ch:Integer): Integer; stdcall;
var
   Query1:TADOQuery;
begin
  Result:=0;
  try
     Query1:=TADOQuery.Create(nil);
     Query1.ConnectionString:='';
     Query1.Active:=true;
     Query1.Close;
     Query1.SQL.Clear;
     Query1.SQL.Add('select top 1 * from ivr_cdr');
     Query1.ExecSQL;     Result:=Query1.fieldbyname('caller').Value  finally
  end;
end;exports
CallIn;

解决方案 »

  1.   

    function CallIn(ch:Integer): Integer; stdcall;
    var
       Query1:TADOQuery;
    begin
      Result:=0;//删除,多余
      try
         Query1:=TADOQuery.Create(nil);
         Query1.ConnectionString:='';//error,没有指定的连接
         Query1.Active:=true;        //error ,此时Query1.sql.text='',不能激活
         Query1.Close;               //删除,多余
         Query1.SQL.Clear;           //删除,多余
         Query1.SQL.Add('select top 1 * from ivr_cdr');
         Query1.ExecSQL;            //不返回结果集,错误,Query1.Open;     Result:=Query1.fieldbyname('caller').Value  finally
      end;
    end;exports
    CallIn;
    初学问题太多,先在Exe中调试通过,再改写成dll
      

  2.   

    function CallIn(ch:Integer): Integer; stdcall;
    var
       Query1:TADOQuery;
    begin
      Query1:=TADOQuery.Create(nil);
      try
    //     Query1.Connection:=?
         Query1.ConnectionString:=?;
         Query1.SQL.Add('select top 1 * from ivr_cdr');
         Query1.Open;          
         Result:=Query1.fieldbyname('caller').Value  finally
        Adoquery1.free;
      end;
    end;exports
    CallIn;
    初学问题太多,先在Exe中调试通过,再改写成dll
      

  3.   

    这个还有内存问题,
    finally
      Query1.Free;
    end;
      

  4.   

    Result:=0;
      try
         Query1:=TADOQuery.Create(nil);
         Query1.ConnectionString:='';
         Query1.Active:=true;
         Query1.Close;
         Query1.SQL.Clear;
         Query1.SQL.Add('select top 1 * from ivr_cdr');
         Query1.Open ;     Result:=Query1.fieldbyname('caller').Value  finally
         Query1.free;
      end;用OPEN试试,还有你这样做会增加SQL的连接数,如果你的SQL达到你的限制数也会查询不成功!
      

  5.   

    To:prosectinfo(有问题)
      在我调试的时候Query1.ConnectionString:='';这里是指向我本地数据库的,测试链接是成功的。
    但在测试DLL的程序中,Query1:=TADOQuery.Create(nil);这里已经报错了。