ich probiere grad rum, wie ich an die Tabelle DBA_TAB_PRIVS komme, um damit vorher nachzusehen, ob der angemeldete User die erforderlichen Rechte hat zum lesen, neuen Datensatz hinzufügen oder gar ändern und löschen.
Im SQL-Plus komm ich an die Tabelle gut ran, indem ich conn / as SYSDBA eingebe, von mein Lazarus-Programm allerdings nicht. Ich verwende hierfür die Oracle-Komponente die bei Lazarus mitgeliefert wurde.
Version ist 2.0.6 - Lazarus und FPC-Version ist 3.0.4
Hier nun der Code, wo ich mich probiere als SYSDBA anzumelden
Code: Alles auswählen
if RadioButtonOracle.Checked = true then
begin
OracleConnection1.DatabaseName:= 'XE';
OracleConnection1.HostName:= 'localhost:1521';
OracleConnection1.UserName:= 'SYSDBA';
OracleConnection1.Password:= 'masterkey';
OracleConnection1.Params.Append(' /as SYSDBA');
try
OracleConnection1.Open;
except
ShowMessage('Keine Verbindung');
Exit;
end;
end;
Code: Alles auswählen
if OracleConnection1.Connected = true then
begin
SQLTransactionOracle:= TSQLTransaction.Create(nil);
SQLTransactionOracle.DataBase:= OracleConnection1;
SQLTransactionOracle.Active:= true;
SQLQueryOracle:= TSQLQuery.Create(nil);
SQLQueryOracle.DataBase:= OracleConnection1;
SQLQueryOracle.Transaction:= SQLTransactionOracle;
with SQLQueryOracle do
begin
stmp:= 'select * from DBA_TAB_PRIVS where TABLE_NAME = ' + QuotedStr('KUNDEN');
SQL.Text:= 'select * from DBA_TAB_PRIVS where TABLE_NAME = ' + QuotedStr('KUNDEN');
//SQL.Text:= 'select * from KUNDEN where KUNDENNR = ' + QuotedStr('KdNr03');
Open;
if IsEmpty = false then
begin
stmp:= '';
end;
end;
end;