udatabasepublic.~pas
来自「用DELPH写的DAO访问模块.有连接池.应用了各种模块,把数据库操作」· ~PAS 代码 · 共 198 行
~PAS
198 行
{*******************************************************}
{ }
{ 定义数据库系统公共类型 }
{ }
{ 版权所有 (C) 2009 大道网络 }
{ }
{*******************************************************}
unit uDatabasePublic;
interface
uses
Classes, SysUtils, StrUtils, IniFiles, ResourceStrUnit;
type
//==============================================================================
// 数据库类型定义
//==============================================================================
TDBKind = (dbMSSQL, dbORACLE, dbACCESS, dbMYSQL);
//==============================================================================
// 数据库配置参数:
//==============================================================================
PConnDBParam = ^TConnDBParam;
TConnDBParam = record
fConnDBKind : TDBKind;
fConfigDB : String;
fServerName : String;
fDBName : String;
fConnStr : String;
fUser : String;
fPassword : String;
end;
//==============================================================================
// 数据库配置参数类
// 通过该数据库参数类读取数据库配置基本信息
//==============================================================================
TDBConfig = class(TPersistent)
private
fConnDBParam :TConnDBParam;
procedure setDBKind(tmpConnDBKind: TDBKind);
function getDBKind: TDBKind;
procedure setServerName(pServerName :String);
function getServerName: String;
procedure setDBName(pDBName :String);
function getDBName: String;
procedure setConnStr(pConnStr :String);
function getConnStr: String;
procedure setUser(pUser :String);
function getUser: String;
procedure setPwd(pPwd :String);
function getPwd: String;
public
constructor Create;
function setConnectionStr(const pIniFile: string): Boolean;
published
property DBKind: TDBKind read getDBKind write setDBKind;
property ServerName: String read getServerName write setServerName;
property DBName: String read getDBName write setDBName;
property ConnStr: String read getConnStr write setConnStr;
property User: String read getUser write setUser;
property Password: String read getPwd write setPwd;
end;
const
Db_Key = '#@D1&82X%)#@@#@$iiLE~!jkllk$#%'; //数据库加密字符串
implementation
constructor TDBConfig.Create;
begin
inherited Create;
end;
procedure TDBConfig.setDBKind(tmpConnDBKind: TDBKind);
begin
fConnDBParam.fConnDBKind := tmpConnDBKind;
end;
function TDBConfig.getDBKind: TDBKind;
begin
Result := fConnDBParam.fConnDBKind;
end;
procedure TDBConfig.setServerName(pServerName :String);
begin
fConnDBParam.fServerName := pServerName;
end;
function TDBConfig.getServerName: String;
begin
Result := fConnDBParam.fServerName;
end;
procedure TDBConfig.setDBName(pDBName :String);
begin
fConnDBParam.fDBName := pDBName;
end;
function TDBConfig.getDBName: String;
begin
Result := fConnDBParam.fDBName;
end;
procedure TDBConfig.setConnStr(pConnStr :String);
begin
fConnDBParam.fConnStr := pConnStr;
end;
function TDBConfig.getConnStr: String;
begin
Result := fConnDBParam.fConnStr
end;
procedure TDBConfig.setUser(pUser :String);
begin
fConnDBParam.fUser := pUser;
end;
function TDBConfig.getUser: String;
begin
Result := fConnDBParam.fUser;
end;
procedure TDBConfig.setPwd(pPwd :String);
begin
fConnDBParam.fPassword := pPwd;
end;
function TDBConfig.getPwd: String;
begin
Result := fConnDBParam.fPassword;
end;
function TDBConfig.setConnectionStr(const pIniFile: string): Boolean;
var
IniFile: TIniFile;
begin
IniFile := TIniFile.Create(pIniFile);
try
try
//读取数据库配置方式
with fConnDBParam do
begin
fConfigDB := IniFile.ReadString('Define','dbConnDef', '');
fConfigDB := uppercase(fConfigDB);
if UpperCase(fConfigDB)= 'MSSQL' then
begin
fConnDBKind := dbMSSQL;
ServerName := IniFile.ReadString('MSSQL', 'ServerName', '');
DBName := IniFile.ReadString('MSSQL', 'DatabaseName', '');
User := IniFile.ReadString('MSSQL', 'UserName', '');
Password := IniFile.ReadString('MSSQL', 'Password', '');
end
else
if UpperCase(fConfigDB)= 'ORACLE' then
begin
fConnDBKind := dbORACLE;
ServerName := IniFile.ReadString('ORACLE', 'ServerName', '');
DBName := IniFile.ReadString('ORACLE', 'DatabaseName', '');
User := IniFile.ReadString('ORACLE', 'UserName', '');
Password := IniFile.ReadString('ORACLE', 'Password', '');
end
else
if UpperCase(fConfigDB)= 'ACCESS' then
begin
fConnDBKind := dbACCESS;
DBName := IniFile.ReadString('ACCESS', 'DatabasePath', '');
User := IniFile.ReadString('ACCESS', 'UserName', '');
end;
//解密字符串,
//此处要用加密类处理
//pPwd := DecodeStr(pPwd,s_Key);
if fConnDBKind in [dbMSSQL, dbORACLE, dbACCESS, dbMYSQL] then
Result := true
else
Result := false;
end;
except
Result := false;
end;
finally
FreeAndNil(IniFile);
end;
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?