Delphi-动态链接SQL
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, DBTables, Grids, DBGrids, StdCtrls, DBXpress, FMTBcd,
SqlExpr, DBGridEh;
type
TForm1 = class(TForm)
Query1: TQuery;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
Database1: TDatabase;
Button1: TButton;
SQLConnection1: TSQLConnection;
SQLQuery1: TSQLQuery;
DataSource2: TDataSource;
Button2: TButton;
Button3: TButton;
DBGridEh1: TDBGridEh;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
function ConnectDBExpress(SQLConnection: TSQLConnection;ServerName,DatabaseName,UserName,PassWord:String):boolean;
function ConnectDatabase(Database1:TDataBase;Query1: TQuery;ServerName,DatabaseName,UserName,PassWord:String):boolean;
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
function TForm1.ConnectDatabase(Database1:TDataBase;Query1: TQuery;ServerName,DatabaseName,UserName,PassWord:String):boolean;
begin
Database1.DatabaseName :='Test1';
Database1.DriverName :='MSSQL';
database1.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;
if Database1.Connected then
result:=true
else
result:=false;
Except
result:=false;
Application.MessageBox('数据库连接错误!','错误',MB_OK+MB_ICONERROR);
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
connectDatabase(database1,query1,'127.0.0.1','sms','sms999','999');
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Query1.DatabaseName:='Test1';
//数据库查询
query1.SQL.Clear ;
query1.SQL.Add('select * from sms');
query1.Active :=true;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
//数据库查询
SQLQuery1.SQL.Clear ;
SQLQuery1.SQL.Add('select * from sms order by smsid');
SQLQuery1.Active :=true;
end;
function TForm1.ConnectDBExpress(SQLConnection: TSQLConnection;ServerName,DatabaseName,UserName,PassWord:String):boolean;
begin
with SQLConnection.Params do
begin
Clear ;
Add('DriverName=MSSQL');
Add('HostName='+ServerName);
Add('DataBase='+DatabaseName);
Add('User_Name='+UserName);
Add('Password='+PassWord);
Add('BlobSize=-1');
Add('ErrorResourceFile=');
Add('LocaleCode=0000');
Add('MSSQL TransIsolation=ReadCommited');
Add('OS Authentication=False');
end;
try
showmessage(SQLConnection.Params.Text );
SQLConnection.Connected := true;
except
result:=false;
exit;
Application.MessageBox('数据库连接错误!','错误',MB_OK+MB_ICONERROR);
end;
if SQLConnection.Connected then
begin
result:=true;
end
else
begin
result:=false;
Application.MessageBox('数据库连接错误dfsdf!','错误',MB_OK+MB_ICONERROR);
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
if not ConnectDBExpress(SQLConnection1,'127.0.0.1','sms','sms999','999') then
showmessage('数据库连接失败。');
end;
end.
浙公网安备 33010602011771号