就是给连接库赋值后让链接库去存数据库

解决方案 »

  1.   

    那怎么使用ado呀,不要在dll里包含界面!麻烦说明白一点好吗!!!
    delphi里怎么做异型窗体和空间呀???
      

  2.   

    dll:
    ————————————————————————————————————————————
    function linkdb(Sourcename,Userid,Password:PChar): Boolean;StdCall;export;
    var
      Aconn:TADOConnection;
      Aquery:TADOQuery;
      connstr:String;
      strCommand:String;
      mSourcename:String;
      mUserid:String;
      mPassword:String;
    begin
      connstr:='';
      strCommand:='';
      mSourcename:=String(Sourcename);
      mUserid:=String(Userid);
      mPassword:=String(Password);
      linkdb:=false;
      try
        connstr:='';
        connstr:=connstr+'Provider=SQLOLEDB.1;';
        connstr:=connstr+'Persist Security Info=False;';
        connstr:=connstr+'Password='+mPassword+';';
        connstr:=connstr+'User ID='+mUserid+';';
        connstr:=connstr+'Initial Catalog=pubs;';
        connstr:=connstr+'Data Source='+mSourcename;
        CoInitialize(nil);
        Aconn:=TADOConnection.Create(nil);
        Aconn.Close;
        Aconn.ConnectionString:=connstr;
        Aconn.Open();
        
        //用Aquery操作别的
        
      except
          linkdb:=false;   //链接不上SQL SEVER服务器!
        Aconn.Close;
        Aconn.Free;
        exit;
      end;
    end;exports
      linkdb;
    begin
    end.
    ————————————————————————————————————————————调用:
    ————————————————————————————————————————————
    procedure TForm1.Button1Click(Sender: TObject);
    type
      TLinkdb=function(Sourcename,Userid,Password): Boolean;StdCall;
    var
      mlinkdb:TLinkdb;
      myhandle:Thandle;
    begin
        myhandle:= LoadLibrary('你的dll全路径');
      try
        if myhandle<=0 then
           raise exception.Create('DLL调用失败,错误代码为:'+inttostr(getlasterror))
        else
        begin
          @mlinkdb:=GetProcAddress(myhandle,'linkdb');
          if not assigned(mlinkdb) then
            raise exception.Create('getproceaddress调用失败,错误代码:'+inttostr(getlasterror))
          else
          begin
            if mlinkdb(PChar('192.168.0.12'),PChar('sa'),PChar('aa')) then  showmessage('链接上');
          end;
        end;
      finally
        freelibrary(myhandle);
      end;
    end;
      

  3.   

    少加了一句:
    dll中try最后加:
       linkdb:=true;