[FireBird] Lire dans la table RDB$USERS?
Bonsoir,
J'éssaye de lire une valeur dans la table système RDB$USERS... Je ne sais pas si c'est possible mais j'ai éssayé quelque chose qui ne fonctionne pas... voici le code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
|
var
IBDataBase: TIBDatabase;
IBQuery: TIBQuery;
IBTransaction: TIBTransaction;
Qry: TIBSQL;
resultat:integer;
begin
IBDataBase := TIBDatabase.Create(nil);
IBQuery := TIBQuery.Create(nil);
IBTransaction := TIBTransaction.Create(nil);
Qry := TIBSQL.Create(nil);
try
//Créer base temporaire :
IBDataBase.DatabaseName := ExtractFilePath(Application.ExeName)+'Bdd\Temp.GDB';
IBDataBase.SQLDialect := 3;
IBDataBase.Params.Clear;
IBDataBase.Params.Add('USER "SYSDBA"');
IBDataBase.Params.Add('PASSWORD "masterkey"');
IBDataBase.Params.Add('PAGE_SIZE 4096');
IBDataBase.CreateDatabase;
IBDatabase.Connected := true;
IBTransaction.DefaultDatabase := IBDataBase;
IBQuery.Database := IBDatabase;
IBQuery.Transaction := IBTransaction;
Qry.database:=IBDatabase;
Qry.Transaction:=IBTransaction;
try
IBTransaction.active:=true;
Qry.SQL.Text:='SELECT count(RDB$USER_NAME) FROM RDB$USERS WHERE RDB$USER_NAME=''SYSDBA'';';
Qry.ExecQuery;
if Qry.Fields[0].Value = 0 then begin
showmessage ('utilisateur non existant');
end
else begin
showmessage ('Utilisateur existant');
end;
except
IBTransaction.Rollback;
end;
IBDataBase.Connected := false;
finally
FreeAndNil(IBQuery);
FreeAndNil(IBTransaction);
FreeAndNil(IBDataBase);
FreeAndNil(Qry);
end;
end; |
Le message d'erreur que j'ai c'est : TableUnknown RDB$USERS .
Pourtant, si je regarde cette doc, http://dn.codegear.com/article/32981 je constate que RDB$USERS est une table system...
Il y a quelque chose qui m'échape, ou alors peut être qu'on ne peut faire cela...
Merci de votre aide !