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

📄 addmpswdu.cpp

📁 给paradox表增加、修改口令。
💻 CPP
字号:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "addmpswdu.h"
#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
DBIResult __fastcall TForm1::Chk(DBIResult ErrorValue)
{
   char        dbi_status[DBIMAXMSGLEN * 5] = {'\0'};
   DBIMSG      dbi_string = {'\0'};
   DBIErrInfo  ErrInfo;

   if (ErrorValue != DBIERR_NONE)
   {
      DbiGetErrorInfo(TRUE, ErrInfo);

      if (ErrInfo.iError == ErrorValue)
      {
         wsprintf(dbi_status, "  ERROR %s", ErrInfo.szErrCode);

         if (strcmp(ErrInfo.szContext[0], ""))
            wsprintf(dbi_status, "%s\r\n    %s", dbi_status, ErrInfo.szContext[0]);

         if (strcmp(ErrInfo.szContext[1], ""))
            wsprintf(dbi_status, "%s\r\n    %s", dbi_status, ErrInfo.szContext[1]);
         if (strcmp(ErrInfo.szContext[2], ""))
            wsprintf(dbi_status, "%s\r\n    %s", dbi_status, ErrInfo.szContext[2]);
         if (strcmp(ErrInfo.szContext[3], ""))
            wsprintf(dbi_status, "%s\r\n    %s", dbi_status, ErrInfo.szContext[3]);
      }
      else
      {
         DbiGetErrorString(ErrorValue, dbi_string);
         wsprintf(dbi_status, "  ERROR %s", dbi_string);

      }
      MessageBox(NULL, dbi_status, "BDE Error", MB_OK | MB_ICONEXCLAMATION);
   }
   return ErrorValue;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::AddMasterPassword(TTable *Table, AnsiString pswd)
{
   DBIResult   rslt;
   CRTblDesc   TblDesc;
   hDBIDb      hDb;

   if(Table->Active) Table->Close();
   Table->Exclusive=true;
   Table->Open();

   memset(&TblDesc, 0, sizeof(TblDesc));

   strcpy(TblDesc.szTblName, Table->TableName.c_str());
   strcpy(TblDesc.szTblType, szPARADOX);
   strcpy(TblDesc.szPassword,pswd.c_str());
   TblDesc.bProtected=WordBool(1);
   hDb=Table->DBHandle;

   Table->Close();

   rslt=Chk(DbiDoRestructure(hDb, 1, &TblDesc, NULL, NULL, NULL, FALSE));
   Session->AddPassword(pswd.c_str());
   Table->Exclusive=false;
   Table->Open();
   if(rslt==DBIERR_NONE) ShowMessage("密码修改成功!");
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)
{
  bool rslt = Session->GetPassword();
  try
  {
    if (rslt)
      Table1->Open();
    else
      ShowMessage("No password given");
  }
  catch (...)
  {
    ShowMessage("Could not open table!");
  }
  if (!Table1->Active)
  Application->Terminate();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
        TPasswordDlg *PasswordDlg=new TPasswordDlg(Application);
        if(PasswordDlg->ShowModal()==mrOk) AddMasterPassword(Table1, PasswordDlg->Password->Text);
        delete PasswordDlg;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button3Click(TObject *Sender)
{
        Table1->Close();
        Session->RemoveAllPasswords();
}
//---------------------------------------------------------------------------


⌨️ 快捷键说明

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