📄 main.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Main.h"
#include "uDatabase.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "ABSMain"
#pragma resource "*.dfm"
TfrmMain *frmMain;
const AnsiString DataBaseFileName = "..\\..\\Data\\Demos.abs";
//---------------------------------------------------------------------------
__fastcall TfrmMain::TfrmMain(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::FormCreate(TObject *Sender)
{
dbDemos->Close();
dbDemos->DatabaseFileName = ExtractFilePath(Application->ExeName) + DataBaseFileName;
dbDemos->Open();
sdDatabase->InitialDir = ExtractFilePath(Application->ExeName);
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::btnCreateDefaultDatabaseClick(TObject *Sender)
{
if (sdDatabase->Execute()) {
db->Close();
db->DatabaseFileName = sdDatabase->FileName;
db->CreateDatabase();
CopyTables();
db->GetTablesList(lvTables->Items);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::btnCreateCustomDatabaseClick(TObject *Sender)
{
if (frmDatabase->ShowModal() == mrOk) {
db->PageSize = StrToInt(frmDatabase->cbPageSize->Text);
db->PageCountInExtent = StrToInt(frmDatabase->cbPageCountInExtent->Text);
db->MaxConnections = StrToInt(frmDatabase->eMaxConnections->Text);
if (frmDatabase->cbEncrypted->Checked) {
db->Password = frmDatabase->ePassword1->Text;
db->CryptoAlgorithm = TABSCryptoAlgorithm(frmDatabase->cbCryptoAgorithm->ItemIndex);
} else {
db->Password = "";
}
btnCreateDefaultDatabaseClick(Sender);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::btnDropDatabaseClick(TObject *Sender)
{
AnsiString s;
s = "Delete (Drop) Database '" + db->DatabaseFileName + "'.\r\nAre you sure?";
if (MessageDlg(s, mtConfirmation, TMsgDlgButtons()<<mbYes<<mbNo<<mbCancel,0) == mrYes) {
db->Close();
db->DeleteDatabase();
lvTables->Clear();
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::CopyTables()
{
TStringList *TableList;
Integer i;
TableList = new TStringList;
try {
dbDemos->GetTablesList(TableList);
for (i=0; i<TableList->Count; i++) {
Table->TableName = TableList->Strings[i];
try {
Table->CopyTable(Table->TableName, db->DatabaseFileName, db->Password);
} catch (Exception &exception) {
MessageDlg(exception.Message, mtError, TMsgDlgButtons()<<mbOK, 0);
}
}
} __finally {
delete TableList;
}
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -