如何在程序里修改Pardox数据表的密码!(30分)

  • 主题发起人 主题发起人 fsm
  • 开始时间 开始时间
F

fsm

Unregistered / Unconfirmed
GUEST, unregistred user!
如何在程序里修改Pardox数据表的密码!
 
希望出版的一本书上有交待,好像是Delphi核心编程.可惜书我没带来.
自己查查!
 
用removePassword后在用AddPassword试试
 
perhaps session.addpassword
 
清除口令:
Table1.Session.RemovePassword('pwd');

Table1.Session.RemoveAllPasswords;
加口令用
Table1.DBSession.AddPassWord('pwd');

转帖一个函数,但我没用过:
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;
 
在Session构件的OnPassword事件中写入
Session1.AddPassword('********');
Continue:=TRUE;
注:*********表示打开库的密码.
 
to killgates
你帖的那个函数有很多变量和函数都
“[Error] Unit1.pas(62): Undeclared identifier: 'objDATABASE'”
请问要uses哪些 Unit.

AddPassWord('***');是用于动态提供密码并不是加入密码!!!
RemovePassword('***')和RemoveAllPasswords;是用于删除
AddPassWord('***');所提供的密码,并不是去掉数据库的密码!!!

pxlei提到的那本书我看过了,没有提到我提的问题!!!




 
uses ....,DbTables,db,Bde;
 
uses Bde后出现下列错误是什么回事?
[Hint] dbtables.pas(972): Overriding virtual method 'TStoredProc.DefineProperties' has
lower visibility (private) than base class 'TDBDataSet' (public)
[Hint] dbtables.pas(1029): Overriding virtual method 'TQuery.DefineProperties' has
lower visibility (private) than base class 'TDBDataSet' (public)
 
难道没有人能回答吗?????
 
我也晕, 在正常的系统下没有这问题呀!!
但killGates的办法没错!
 
后退
顶部