📄 databaseconnectunit.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 + -