学习与分享

.net与Delphi

导航

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.

posted on 2006-05-09 15:05  Gerry  阅读(1897)  评论(0)    收藏  举报