conndb_sqlserver.~pas

来自「用DELPH写的DAO访问模块.有连接池.应用了各种模块,把数据库操作」· ~PAS 代码 · 共 138 行

~PAS
138
字号
{*******************************************************}
{                                                       }
{       数据库连接对象SQLSERVER类                       }
{                                                       }
{       版权所有 (C) 2009 大道网络                      }
{                                                       }
{*******************************************************}


/////////////////////////////////////////////////////////////////////////
//
//1.数据库连接对象(产品基类 SQLServer数据库)
//2.通过实现 IConnDataBase,配置数据库连接和命名用数据库Connect对象。
//3.可采用BDE和ADO方式连接后台数据库。
//4.ConnfigDBConnection方法是实际的数据库连接配置
//5.连接配置采用统一方式用TConnDBConfig类实现(委托方式),彻底摆脱数据库
//  配置的受缚.
/////////////////////////////////////////////////////////////////////////

unit ConnDB_SQLServer;

interface

uses
  Classes, ADODB, DB, DBTables, uConnDatabase, uIConnDatabase;

type
  TConnADODB_SQLServer = class(TConnDatabase, IConnDatabase)
  public
    constructor Create;
    destructor Destroy; override;
  protected
    function getDBConnection: TCustomConnection; override;
    function ConnfigDBConnection: Boolean; override;
  published
    property pDBConnection: TCustomConnection read getDBConnection;
  end;

  TConnBDEDB_SQLServer = class(TConnDatabase, IConnDatabase)
  private
    s_DriverName: String;
    procedure setBDEDriverName(sBDEDriverName :String);
    function  getBDEDriverName: String;
  public
    constructor Create;
    destructor Destroy; override;
  protected
    function  getDBConnection: TCustomConnection; override;
    function  ConnfigDBConnection: Boolean; override;
  published
    property pBDEDriverName: String read getBDEDriverName write setBDEDriverName;
    property pDBConnection: TCustomConnection read getDBConnection;
  end;
  

implementation

{TConnADODB_SQLServer}

constructor TConnADODB_SQLServer.Create;
begin
  inherited Create;
  pDBConn := TADOConnection.Create(nil);
end;

destructor TConnADODB_SQLServer.Destroy;
begin
  pDBConn.Free;
  inherited Destroy;
end;

function TConnADODB_SQLServer.getDBConnection: TCustomConnection;
begin
  Result := pDBConn;
end;

function TConnADODB_SQLServer.ConnfigDBConnection: Boolean;
begin
  With pConnDBConfig do
  begin
    pConnStr := 'Provider=SQLOLEDB.1;Persist Security Info=True;';
    pConnStr := pConnStr + 'Data Source=' + pServerName+'; Initial Catalog=' + pDBName;
    pConnStr := pConnStr + ';User ID='+ pUser +'; Password=' + pPwd;
  end;

  (pDBConn as TADOConnection).ConnectionString := pConnDBConfig.pConnStr;
  try
    pDBConn.LoginPrompt := false;
    pDBConn.Connected := true;
    Result := true;
  except
    Result := false;
  end;
end;

{ TConnDB_SQLServer }

constructor TConnBDEDB_SQLServer.Create;
begin
  inherited Create;
  pDBConn := TDatabase.Create(nil);
  pBDEDriverName := 'MSSQL';
end;

destructor TConnBDEDB_SQLServer.Destroy;
begin
  pDBConn.Free;
  inherited Destroy;
end;

procedure TConnBDEDB_SQLServer.setBDEDriverName(sBDEDriverName :String);
begin
  if (pDBConn is TDataBase) then
  begin
    (pDBConn as TDataBase).DriverName := sBDEDriverName;
    s_DriverName := sBDEDriverName;
  end
  else
    (pDBConn as TDataBase).DriverName := '';
end;

function TConnBDEDB_SQLServer.getBDEDriverName: String;
begin
  Result := pBDEDriverName;
end;

function TConnBDEDB_SQLServer.getDBConnection: TCustomConnection;
begin
  Result := pDBConn;
end;

function TConnBDEDB_SQLServer.ConnfigDBConnection: Boolean;
begin
  Result := false;
end;

end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?