Prueba esta función:
Código:
procedure AlterMasterPassword(
Database: TDatabase; TableName: String; Password: String; Add: Boolean);
var
TableDesc: CRTblDesc;
begin
Session.AddPassword(Password);
FillChar(TableDesc, SizeOf(CRTblDesc), #0);
with TableDesc do
begin
StrPCopy(szTblName, TableName);
StrCopy(szTblType, szPARADOX);
StrPCopy(szPassword, Password);
bProtected := WordBool(Add);
end;
Check(DbiDoRestructure(Database.Handle, 1, @TableDesc, nil, nil, nil, false));
end;
Database será una componente TDatabase ya inicializada (AliasName, DatabaseName) y abierta.
TableName el nombre de la tabla que a la que deseas agregra o quitar el password.
Password es la contraseña maestra.
Add indica si deseas agregar (true) o eliminar (false) el password.
Ejemplo de uso:
Código:
var
Database: TDatabase;
begin
Database := TDatabase.Create(nil);
Database.AliasName := alias de tu base
Database.DatabaseName := 'dbtemp';
Database.Open;
try
// Quita el password de la tabla 'tabla1'
AlterMasterPassword(Database, 'tabla1', Password, false);
// Agrega password a la tabla 'tabla2'
AlterMasterPassword(Database, 'tabla2', Password, true);
...
finally
Database.Free;
end;
end;
Happy?
// Saludos