AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Auf PL/SQL Variablen zugreifen (Oracle)
Thema durchsuchen
Ansicht
Themen-Optionen

Auf PL/SQL Variablen zugreifen (Oracle)

Ein Thema von ak1 · begonnen am 3. Jan 2005 · letzter Beitrag vom 4. Jan 2005
 
Robert_G
(Gast)

n/a Beiträge
 
#5

Re: Auf PL/SQL Variablen zugreifen (Oracle)

  Alt 4. Jan 2005, 11:37
Zitat von ak1:
Wie kann ich nun auf dem Client die Werte aus v_Vorname und v_Nachname verarbeiten?
Ich verwende Delphi 6 Professional und die Ado-Komponenten. Ich bin auf Ado beschränkt.
Das beißt sich gegenseitig.
Mit ADO kannst du keine komplexen Typen an deine Anwendung binden. Das geht nur über OCI. Nette Kapselungen dafpr sind DOA oder ORADAC (einfach mal hier danach suchen )

Damit würdest du einen Typen erzeugen:
SQL-Code:
create or replace type TDozent as object
(
  Vorname Scott.Dozent.d_Vorname%Type,
  Nachname varchar2(20)
)
Und eine passende Collection:
create or replace type TDozenten as table of TDozent Copy & Paste von deinem Block mit ein paar Änderungen:
SQL-Code:
create or replace function getDozenten return TDozenten is

  Dozenten TDozenten;

  Cursor cur$Dozenten is
    SELECT TDozent(d_Vorname
                  ,D_Nachname)
    FROM Scott.Dozent;
begin
  open cur$Dozenten;
  
  fetch cur$Dozenten bulk collect
  into Dozenten;

  close cur$Dozenten;
  
  if Dozenten.Count > 0 then
    for i in Dozenten.First .. Dozenten.Last loop
      dbms_Output.put_line('Vorname: '||Dozenten(i).Vorname||
                           ' - Nachname: '||Dozenten(i).Nachname);
    end loop;
    return Dozenten;
  else
    return null;
  end if;
end;
Aber nur per OCI könntest du die Collection an deinen Client binden.
Delphi-Quellcode:
var
 Dozenten :TOracleObject;
begin
  Dozenten := TOracleObject.Create('SCOTT.TDOZENTEN', '', '');

  with SomeQuery do
  begin
    SQL.Text := 'begin'+#10+
                ' :oDozenten := getDozenten();'+#10+
                'end;';
    Execute();
    GetComplexVariable('oDozenten', otObject, Dozenten);
  end;
end;
BTW: Der ADO Provider von MS ist scheußlich und sollte aufgrund von Menschenrechtsverletzungen verboten werden.
Der von Oracle kann fast genauso verwendet werden.

Alles ist nur aus den Fingern gesaugt mangels Delphi & Oracle. Also nagelt mich nicht darauf fest.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:09 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz