如何自动注册(login)一个有口令保护的Paradox表?首先,这个table的属性必须为false(否则在一开始就会提示输入口令),然后把这两条指令放入form的onCreate中去:Session.AddPassword('My secret password');
Table1.Active := True;关闭这个table时,可以用下面命令清除口令
RemovePassword('My secret password');或用这条命令清除所有口令 RemoveAllPasswords;
(注:以上均只对Paradox适用)

解决方案 »

  1.   

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

    在设计时的问题我已解决了。谢谢wandelphi,zzy73   动态创立表时如何进行加密,在运行时如何
    用代码屏蔽掉。希望能给出具体步骤和源代码。
    zzy73的方法估计行。认我试一试。