首页  编辑  

实现在Paradox表中加密码和编程登录的方法!

Tags: /超级猛料/Database.数据库相关/Paradox & dBase/   Date Created:

实现在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;

说了一大堆,帮助理解,认识更多啊^0^,下面这两句才时解决你问题的根本,  

//*************************************************  

 Table1.DBSession.AddPassWord('Your PassWord');

 Table1.Open;    

//*************************************************