Parabox数据库 intotoday.db 别名 wu
intotoday.db在创建时已经加密了,初始密码为1234
现要在程序运行过程中动态改变密码,怎样实现?
也就是:从何处并如何读出原来的密码,再把它改为新密码,再把新密码保存起来,保存在何处
intotoday.db在创建时已经加密了,初始密码为1234
现要在程序运行过程中动态改变密码,怎样实现?
也就是:从何处并如何读出原来的密码,再把它改为新密码,再把新密码保存起来,保存在何处
解决方案 »
- delphi exe文件名
- 让listview控件显示checkbox后,我想中进行单一选择,即只能选择一个checkbox像radiobutton一样,怎样实现?
- 怎么实现ADOQuery,ADODatasSet将查询出来的内容用报表打印,动态打印
- 谁能帮我把这段c+builder的代码改为delphi的(日志钩子的)
- 如何判断光驱中是否有光盘,若有,得到光盘卷标
- dot net 和 delphi 相结合相结合
- 如何取得tdxtreelist所有结点的数目,并遍历一遍?
- 编个SETUP文件问题!
- 请教一个delphi 安装问题
- 最近发现一个挺好的自学视频网站,介绍给大家!
- .gdb 是什么文件,用什么软件打开啊??在线~
- delphi有没有象vc的boundcheck这样的能够检查内存泄漏的工具?
下面给出的函数 AddMasterPassword 完成添加PARADOX表
主口令的工作
AddMasterPassword(Table1, 'MyNewPassword') procedure AddMasterPassword(Table: TTable; pswd: string);
const
RESTRUCTURE_TRUE = WordBool(1); var
TblDesc: CRTblDesc;
hDb: hDBIDb; begin
{表打开?表是独占吗?}
if (Table.Active = False) or (Table.Exclusive = False) then
raise EDatabaseError.Create('数据表必须在独占方式才可以添加口令'); {初始化表描述区 }
FillChar(TblDesc, SizeOf(CRTblDesc), 0); with TblDesc do
begin
{ 把表名放到描述区 }
StrPCopy(szTblName, Table.TableName);
{ 把表类型放到描述区 }
StrCopy(szTblType, szPARADOX); StrPCopy(szPassword, pswd); { 设置BPROTECTED为TRUE }
bProtected := RESTRUCTURE_TRUE;
end; { 从当前的HANDLE里得到DATABASE的HANDLE }
Check(DbiGetObjFromObj(hDBIObj(Table.Handle), objDATABASE, hDBIObj(hDb)));
{ 关闭表 }
Table.Close;
{ 添加主口令到PARADOX表里}
Check(DbiDoRestructure(hDb, 1, @TblDesc, nil, nil, nil, FALSE));
{添加一个新口令到SESSION}
Session.AddPassword(pswd);
{重新打开表 }
Table.Open;
end; 说了一大堆,帮助理解,认识更多啊^0^,下面这两句才时解决你问题的根本,
//*************************************************
Table1.DBSession.AddPassWord('Your PassWord');
Table1.Open;
//************************************************* @@@@@@摘自Delphi猛料包·········
[Error] Unit1.pas(30): Undeclared identifier: 'CRTblDesc'
[Error] Unit1.pas(31): Undeclared identifier: 'hDBIDb'
[Error] Unit1.pas(45): Undeclared identifier: 'szTblName'
[Error] Unit1.pas(47): Undeclared identifier: 'szTblType'
[Error] Unit1.pas(47): Undeclared identifier: 'szPARADOX'
[Error] Unit1.pas(49): Undeclared identifier: 'szPassword'
[Error] Unit1.pas(52): Undeclared identifier: 'bProtected'
[Error] Unit1.pas(56): Undeclared identifier: 'DbiGetObjFromObj'
[Error] Unit1.pas(56): Undeclared identifier: 'hDBIObj'
[Error] Unit1.pas(56): Undeclared identifier: 'objDATABASE'
[Error] Unit1.pas(60): Undeclared identifier: 'DbiDoRestructure'
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'
所有的BDE的函数、类型和常量都在BDE单元中定义。上面那个函数直接调用了BDE的API,要引用BDE单元
在表单上放两个edit。
确定代码如下。
if (Edit1->Text==Edit2->Text&&Edit1->Text!="")
{
Session->AddPassword("xxxx");//xxxx就是你的数据库的密码
Table1->Active=true;
Table1->Edit();
Table1C1->AsString=Edit1->Text;
Table1->Post();
Close();
}else ShowMessage("您两次输入的新密码不一致,请从新输入。");
}