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

📄 main.cpp

📁 AbsDataBase5.16 最新版
💻 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 + -