动态连接SQL数据库
我们在使用Delphi编写以Micorsoft SQL Server为后台数据库的时候,经常为程序的发布担忧:我们怎样才能让用户自由设置数据库参数,程序自动连接? 笔者经过多次试验,使用Delphi自带的
DataBase数据库连接控件可以很好的实现SQL数据库的自动连接。实现方法如下:
procedure ConnectDatabase(ServerName,DatabaseName,UserName,PassWord:String);
var
Database1:TDataBase;
begin
Database1.DatabaseName := ’Test’;
Database1.DriverName := ’MSSQL’;
LoginPrompt := False;
with Database1.Params do
begin
Add(’DATABASE NAME=’ + DatabaseName);
Add(’SERVER NAME=’ + ServerName); //ServerName也可以是SQL服务器的IP地址
Add(’USER NAME=’ + UserName); //设置MSSQL数据的用户名称 如:sa
Add(’OPEN MODE=READ/WRITE’);
ADd(’SCHEMA CACHE SIZE=8’);
Add(’BLOB EDIT LOGGING=’);
Add(’LANGDRIVER=’);
Add(’SQLQRYMODE=’);
Add(’SQLPASSTHRU MODE=SHARED AUTOCOMMIT’);
Add(’DATE MODE=0’);
Add(’SCHEMA CACHE TIME=-1’);
Add(’MAX QUERY TIME=300’);
Add(’MAX ROWS=-1’);
Add(’BATCH COUNT=200’);
Add(’ENABLE SCHEMA CACHE=FALSE’);
Add(’SCHEMA CACHE DIR=’);
Add(’HOST NAME=’);
Add(’APPLICATION NAME=’);
Add(’NATIONAL LANG NAME=’);
Add(’ENABLE BCD=FALSE’);
Add(’TDS PACKET SIZE=4096’);
Add(’BLOBS TO CACHE=64’);
Add(’BLOB SIZE=32’);
Add(’PASSWORD=’ + PassWord); //设置MSSQL用户口令;
end;
try
Database1.Connected := true;
Query1.DatabaseName := ’Test’;
... //数据库查询
Except
Application.MessageBox(’数据库连接错误!’,’错误’,MB_OK+MB_ICONERROR);
end;
end;