⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dmdataaccess.cpp

📁 指纹门禁机管理系统
💻 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 + -