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