首先我是新手,以前一直都是用string或者ansiString来连接数据库的
我现在想建立一个动态连接库形成一个模块,并且不用以上我用过的方法
我想请各位大虾们帮帮忙,我希望在教的过程当中能尽理的祥细一点,更希望留下QQ可以交流一下!
谢谢!

解决方案 »

  1.   

    procedure TDMFrm.DataModuleCreate(Sender: TObject);
    var YKDB:GetDBInfo;
    begin
      ADOConnection1.Connected:=False;
      YKDB:=GetDBInfo.Create;
      if (YKDB.WhichDataBase) then
        ADOConnection1.ConnectionString:='Provider=SQLOLEDB.1;Password='+YKDB.GetPass+';Persist Security Info=True;User ID='+YKDB.GetLogin+';Initial Catalog='+YKDB.GetDataBaseName+';Data Source='+YKDB.GetServer  //SQL Server数据库
      else
        ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+MainForm.Root+YKDB.GetAccess+';Persist Security Info=False';  //Access数据库
      try
        ADOConnection1.Connected:=true;
      except
        ShowMessage('数据库连接出错,请检查服务器是否启动。');
      end;
    end;
      

  2.   

    用来连接Oracle的一个简单的例子:
    Dll中:library Project1;uses
        Windows,
        SysUtils,
        Classes,
        DB,
        ADODB;{$R *.res}
    //--------------------------------------------------------------------------
    function MyConnectDatabase(ac: TADOConnection): Boolean; stdcall;
    var
        strPwd, strUsr, strDb: string; // 这三个字符串也可以由参数传进来
    begin
        strPwd := 'a1b2';
        strUsr := 'oradmin';
        strDb := 'dbName';
        //
        with ac do
        begin
            Connected := false;
            try
                ConnectionString := 'Provider=OraOLEDB.Oracle.1'
                        + ';Password=' + strPwd
                        + ';Persist Security Info=True'
                        + ';User ID=' + strUsr
                        + ';Data Source=' + strDb;
                Connected := true;
                Result := true;
            except
                result := false;
                MessageBox(0, '连接数据库失败!',
                        '程序名称', MB_OK or MB_ICONWARNING);
                exit;
            end;
        end;
    end;
    //--------------------------------------------------------------------------
    exports
        MyConnectDatabase;beginend.App中:
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, DB, ADODB, StdCtrls;type
      TForm1 = class(TForm)
        Button1: TButton;
        ADOConnection1: TADOConnection;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}function MyConnectDatabase(ac: TADOConnection): Boolean; stdcall; External 'Project1.dll';procedure TForm1.Button1Click(Sender: TObject);
    begin
        if MyConnectDatabase(ADOConnection1) then
            ShowMessage('连接成功');
        // ...
    end;end.