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

📄 databaseconnectunit.cpp

📁 指纹门禁机管理系统
💻 CPP
字号:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "DatabaseConnectUnit.h"
#include "DMDataAccess.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "BaseInputUnit"
#pragma resource "*.dfm"
TDatabaseConnectFrm *DatabaseConnectFrm;
//---------------------------------------------------------------------------
__fastcall TDatabaseConnectFrm::TDatabaseConnectFrm(TComponent* Owner)
        : TBaseDataInputFrm(Owner)
{
}
//---------------------------------------------------------------------------
bool TDatabaseConnectFrm::CheckInputInfo()
{
  if (rbAccessDB->Checked)
  {
     if (edtDBFileName->Text.IsEmpty())
     {
        return false;
     }
  }
  else
  {
      if (edtHostName->Text.IsEmpty())
      {
        edtHostName->SetFocus();
        return false;
      }
      if (edtDatabaseName->Text.IsEmpty())
      {
        edtDatabaseName->SetFocus();
        return false;
      }
      if (edtUserName->Text.IsEmpty())
      {
        edtUserName->SetFocus();
        return false;
      }
  }
  return true;
}
//---------------------------------------------------------------------------
void TDatabaseConnectFrm::SetFaceValue()
{
  SystemConfig_T aConfigInfo;
  memset(&aConfigInfo,0,sizeof(DBConfigInfo_T));
  pDbConfig->GetConfigInfo(aConfigInfo);

  if (aConfigInfo.DBConfig.DBType == FileDB_T)
    rbAccessDB->Checked = true;

  edtDBFileName->Text = aConfigInfo.DBConfig.dbAccessFile;
  edtHostName->Text = aConfigInfo.DBConfig.dbHostName;
  edtDatabaseName->Text = aConfigInfo.DBConfig.dbDatabaseName;
  edtUserName->Text = aConfigInfo.DBConfig.dbUserName;
  edtPassword->Text = aConfigInfo.DBConfig.dbPassword;
}
//---------------------------------------------------------------------------

void __fastcall TDatabaseConnectFrm::bbtnOKClick(TObject *Sender)
{
  if (!CheckInputInfo())
    return;
  SystemConfig_T aConfigInfo;
  memset(&aConfigInfo,0,sizeof(DBConfigInfo_T));

  if (rbAccessDB->Checked)
  {
     aConfigInfo.DBConfig.DBType = FileDB_T;
     memcpy(aConfigInfo.DBConfig.dbAccessFile,edtDBFileName->Text.c_str(),edtDBFileName->Text.Length());
     strcpy(aConfigInfo.DBConfig.dbProvider,"Microsoft.Jet.OLEDB.4.0");
  }
  else if (rbSQLDB->Checked)
  {
     aConfigInfo.DBConfig.DBType = RelationDB_T;
     strcpy(aConfigInfo.DBConfig.dbProvider,"SQLOLEDB.1");
  }
  else if (rbOracleDB->Checked)
  {
     aConfigInfo.DBConfig.DBType = RelationDB_T;
     strcpy(aConfigInfo.DBConfig.dbProvider,"MSDAORA.1");
  }
  AnsiString lTransValue;
  lTransValue = edtHostName->Text.Trim();
  memcpy(aConfigInfo.DBConfig.dbHostName,lTransValue.c_str(),lTransValue.Length());

  lTransValue = edtDatabaseName->Text.Trim();
  memcpy(aConfigInfo.DBConfig.dbDatabaseName,lTransValue.c_str(),lTransValue.Length());

  lTransValue = edtUserName->Text.Trim();
  memcpy(aConfigInfo.DBConfig.dbUserName,lTransValue.c_str(),lTransValue.Length());

  lTransValue = edtPassword->Text.Trim();
  memcpy(aConfigInfo.DBConfig.dbPassword,lTransValue.c_str(),lTransValue.Length());
  pDbConfig->SetConfigInfo(aConfigInfo);
  if (pDbConfig->SaveConfigInfo())
  {
    Application->MessageBoxA("数据库配置信息保存完毕!","提示信息",MB_OK + MB_ICONINFORMATION);
    Close();
  }
  else
  {
    Application->MessageBoxA("数据库配置信息保存失败!","提示信息",MB_OK + MB_ICONINFORMATION);
  }
}
//---------------------------------------------------------------------------
void __fastcall TDatabaseConnectFrm::TryConnectDB()
{
  bool IsConnected;
  try
  {
    IsConnected = dmDatabase->ConnectDatabase();
  }
  catch(...)
  {
    IsConnected = false;
  }
  if (IsConnected)
  {
    Application->MessageBoxA("数据库链接成功!","链接测试信息",MB_OK + MB_ICONINFORMATION);
  }
  else
  {
    Application->MessageBoxA("数据库链接失败!","链接测试信息",MB_OK + MB_ICONINFORMATION);
  }
}
//---------------------------------------------------------------------------

void __fastcall TDatabaseConnectFrm::FormCreate(TObject *Sender)
{
  AnsiString lConfigFile = ExtractFileDir(Application->ExeName)+"\\ConfigFile\\SysConfig.xml";
  pDbConfig = new TConfigInfoXML(lConfigFile);
  SetFaceValue();
        
}
//---------------------------------------------------------------------------
void __fastcall TDatabaseConnectFrm::FormDestroy(TObject *Sender)
{
   delete pDbConfig;
}
//---------------------------------------------------------------------------
void __fastcall TDatabaseConnectFrm::FormShow(TObject *Sender)
{
   tsDBFile->TabVisible = true;
   tsData->TabVisible = false;

}
//---------------------------------------------------------------------------
void __fastcall TDatabaseConnectFrm::rbAccessDBClick(TObject *Sender)
{
   if (rbAccessDB->Checked)
   {
     tsDBFile->TabVisible = true;
     tsData->TabVisible = false;
   }
}
//---------------------------------------------------------------------------

void __fastcall TDatabaseConnectFrm::rbSQLDBClick(TObject *Sender)
{
   if (rbSQLDB->Checked)
   {
     tsDBFile->TabVisible = false;
     tsData->TabVisible = true;
   }
}
//---------------------------------------------------------------------------

void __fastcall TDatabaseConnectFrm::rbOracleDBClick(TObject *Sender)
{
   if (rbOracleDB->Checked)
   {
     tsDBFile->TabVisible = false;
     tsData->TabVisible = true;
   }
}
//---------------------------------------------------------------------------

void __fastcall TDatabaseConnectFrm::spbnFileNameClick(TObject *Sender)
{
   odOpenFile->Title = "打开Access数据库文件...";
   if (odOpenFile->Execute())
   {
      edtDBFileName->Text = odOpenFile->FileName;
   }
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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