Einzelnen Beitrag anzeigen

ak1

Registriert seit: 12. Okt 2003
243 Beiträge
 
#7

Re: Auf PL/SQL Variablen zugreifen (Oracle)

  Alt 4. Jan 2005, 21:44
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ß
  Mit Zitat antworten Zitat