📄 dmdataaccess.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "DMDataAccess.h"
#include "DatabaseConnectUnit.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TdmDatabase *dmDatabase;
//---------------------------------------------------------------------------
__fastcall TdmDatabase::TdmDatabase(TComponent* Owner)
: TDataModule(Owner)
{
DatabaseConfigFile = ExtractFileDir(Application->ExeName)+"\\ConfigFile\\SysConfig.xml";
}
//---------------------------------------------------------------------------
bool __fastcall TdmDatabase::ConnectDatabase()
{
AnsiString lConfigFile = DatabaseConfigFile;
if (!FileExists(lConfigFile))
{
Application->MessageBoxA("未找到系统配置文件!","提示信息",MB_OK + MB_ICONERROR);
}
//ShowMessage(lConfigFile);
TConfigInfoXML* pDbConfig = new TConfigInfoXML(lConfigFile);
SystemConfig_T aConfigInfo;
memset(&aConfigInfo,0,sizeof(DBConfigInfo_T));
adoConnect->Connected = false;
bool lOK;
if (pDbConfig->GetConfigInfo(aConfigInfo))
{
AnsiString lConnectString;
if (aConfigInfo.DBConfig.DBType == FileDB_T)
{
lConnectString = "Provider="+AnsiString(aConfigInfo.DBConfig.dbProvider)+";Data Source=" + AnsiString(aConfigInfo.DBConfig.dbAccessFile) +";Persist Security Info=False";
}
else
{
if (AnsiString(aConfigInfo.DBConfig.dbHostName).IsEmpty()||AnsiString(aConfigInfo.DBConfig.dbDatabaseName).IsEmpty()||AnsiString(aConfigInfo.DBConfig.dbUserName).IsEmpty())
lOK = false;
lConnectString = "Provider=" + AnsiString(aConfigInfo.DBConfig.dbProvider)+";Persist Security Info=True;User ID=" + AnsiString(aConfigInfo.DBConfig.dbUserName) +\
";Initial Catalog=" + AnsiString(aConfigInfo.DBConfig.dbDatabaseName) +\
";Password=" + AnsiString(aConfigInfo.DBConfig.dbPassword) +\
";Data Source=" + AnsiString(aConfigInfo.DBConfig.dbHostName) +\
";Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Use Encryption for Data=False;Tag with column collation when possible=False";
}
adoConnect->ConnectionString = lConnectString;
try
{ adoConnect->Connected = true;
lOK = true;
}
catch(...)
{
lOK = false;
}
}
delete pDbConfig;
return lOK;
}
//---------------------------------------------------------------------------
void __fastcall TdmDatabase::DataModuleCreate(TObject *Sender)
{
bool lOK = ConnectDatabase();
if (!lOK)
{
//Application->MessageBoxA("本地数据库链接失败,请检查数据库或数据库配置信息!","提示信息",MB_OK + MB_ICONERROR);
TDatabaseConnectFrm* pDatabaseConnectFrm = new TDatabaseConnectFrm(this);
pDatabaseConnectFrm->ShowModal();
delete pDatabaseConnectFrm;
ConnectDatabase();
}
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -