Für alle die es interessiert, hier mal "die Lösung":
Ich habe eine einfache PL/
SQL-Funtion, welche mir die Datensatzanzahl einer Tabelle ermittelt.
Dieser Funktion übergebe ich den Tabellennamen und erhalte als Rückgabewert die Datensatzanzahl.
Diese funktion ist bereits in der Oracle-
DB gespeichert:
Code:
create or replace function scott.Anzahl_Datensatze(v_ergebnis out number, v_Tabelle scott.dozent.d_Vorname%Type) return number
is
v_return number;
v_SQL varchar(300);
begin
v_SQL:='select count(*) from '|| v_Tabelle;
execute immediate v_SQL
into v_return;
return v_return;
end;
Nun habe ich die Komponente "stored1: TADOStoredProc" welche ich mit der Adoconnection im
OI verbinde.
Ich gebe im
OI den Namen der Funktion an (Anzahl_Datensatze), wobei ich mir das "scott" sparen kann da ich sowieso als Scott angemeldet bin.
Wenn ich nun im
OI "Parameters" anklicke, dann erscheint ein Fenster in dem alle Parameter dieser Funktion drinstehen (wird von Delphi eingelesen und angezeigt.)
Nun führe ich folgenden kurzen kommentierten Quelltext aus:
Code:
//dem Parameter v_Tabelle einen Tabellennamen übergeben
stored1.Parameters.ParamByName('v_Tabelle').Value:='DOZENT';
//PL/
SQL-Funktion ausführen
stored1.ExecProc();
//Das Ergebnis der Funktion anzeigen (Anzahl der Datensätze)
showmessage(stored1.Parameters.ParamByName('RETURN_VALUE').Value);
Es erscheint ein Fenster mit der korrekten Datensatzanzahl.
Ich muss mal wieder eingestehen, dass Delphi seinen Ruf als
RAD-Tool zurecht hat.
Gruß