可用以下代码试试:
procedure AddPassWordToTable(Table: TTable;PassWord:String);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 } if PassWord='' then bProtected:=False
else bProtected := RESTRUCTURE_TRUE; StrPCopy(szPassword, PassWord);
{ Set bProtected to True } 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(PassWord);
{ Re-Open the table } Table.Open;end;
然后再做一个生成Password的子程序进行枚举。