Ver Mensaje Individual
  #4  
Antiguo 25-11-2003
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
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
Responder Con Cita