udbfactory.~pas

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

~PAS
66
字号
{*******************************************************}
{                                                       }
{       数据库工厂对象基类                              }
{       通过该抽象工厂创建数据库实例                    }
{                                                       }
{       版权所有 (C) 2009 大道网络                      }
{                                                       }
{*******************************************************}
unit uDBFactory;

interface

uses
  Classes, uDBContext, uDatabasePublic;

type
  //数据库工厂对象基类
  TDBFactory = class(TPersistent)
  private
    fDbKind : TDBKind;
  protected
    function getDbKind : TDBKind;
    procedure setDBKind(pDbKind: TDBKind);
  public
    class function getDBFactory(pDbKind: TDBKind) : TDBFactory;
    function CreatDBContext :TDBContext;  virtual; abstract;
  published
    property DBKind : TDBKind read getDbKind write setDBKind;
  end;

implementation

uses
  uAccessFactory, uMssqlFactory, uOralceFactory;

{ TDBFactory }

//根据配置文件创建相应的数据库工厂
class function TDBFactory.getDBFactory(pDbKind: TDBKind) : TDBFactory;
begin
  case pDbKind of
    dbMSSQL:
      result := TMssqlFactory.Create;

    dbORACLE:
      result := TOralceFactory.Create;

    dbACCESS:
      result := TAccessFactory.Create;
    else
      result := nil;
  end;
end;

function TDBFactory.getDbKind: TDBKind;
begin
  result := fDbKind;
end;

procedure TDBFactory.setDBKind(pDbKind: TDBKind);
begin
  fDbKind := pDbKind;
end;

end.

⌨️ 快捷键说明

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