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