如何设置paradox的密码(100分)

  • 主题发起人 主题发起人 zzbyy
  • 开始时间 开始时间
Z

zzbyy

Unregistered / Unconfirmed
GUEST, unregistred user!
如何使用代码直接在程序中设置已建立的paradox表的密码,而不是在database desktop中
手动的设置.应为密码是由用户决定的,这个问题应该不是很难吧.




 
抄的! 其实你可以用搜索功能
1。王寒松的办法:

动态的添加PARADOX表的方法

下面给出的函数 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;

添加副口令的办法与此类似

2。menxin的办法
procedure AddMasterPassword(Table: TTable; pswd: string;protect:boolean);
const
RESTRUCTURE_TRUE = WordBool(1);
var
TblDesc: CRTblDesc;
hDb: hDBIDb;
begin
{ Make sure that the table is opened and is exclusive }
if not Table.Active or not Table.Exclusive then
raise EDatabaseError.Create('Table must be opened in exclusive ' +
'mode to add passwords');
{ Initialize the table descriptor }
FillChar(TblDesc, SizeOf(CRTblDesc), #0);
with TblDesc do begin

{ Place the table name in descriptor }
StrPCopy(szTblName, Table.TableName);
{ Place the table type in descriptor }
StrCopy(szTblType, szPARADOX);
{ Master Password, Password }
StrPCopy(szPassword, pswd);
{ Set bProtected to True }
bProtected := protect;
end;
{ Get the database handle from the cursor handle }
Check(DbiGetObjFromObj(hDBIObj(Table.Handle), objDATABASE, hDBIObj(hDb)));
{ Close the table }
Table.Close;

{ Add the master password to the Paradox table }
Check(DbiDoRestructure(hDb, 1, @TblDesc, nil,
nil, nil, False));
{ Add the new password to the session }
Session.AddPassword(pswd);
{ Re-Open the table }
Table.Open;
end;

用法:

if protect then
ADDPASSWORD
else
RECMOVEPASSWORD;



 
其实paradox有通用密码, 通用密码是:
jIGGAe

注意大小写
 
接受答案了.
 
后退
顶部