AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Kein Zugriff auf Oracle Stored Proc mit Resultset
Thema durchsuchen
Ansicht
Themen-Optionen

Kein Zugriff auf Oracle Stored Proc mit Resultset

Offene Frage von "Hoshy"
Ein Thema von Hoshy · begonnen am 27. Apr 2006 · letzter Beitrag vom 7. Aug 2008
 
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#7

Re: Kein Zugriff auf Oracle Stored Proc mit Resultset

  Alt 29. Apr 2006, 14:02
Nehmen wir so ein Package:
SQL-Code:
create or replace package EinPackage is
  type TTestCursor is ref cursor return Test%RowType;
  subtype TId is Test.Id%Type;

  function TestProc(id in TId) return TTestCursor;
end;

create or replace package body EinPackage is

function TestProc(id in TId) return TTestCursor is
  Result TTestCursor;
begin
  open Result for
    SELECT *
    FROM Test t
    WHERE t.Id = id;

  return Result;
end;

end;
Du könntest es als normales AdoCommand absetzen:
begin :cursor := EinPackage.TestProc(:Id); end; Oder als SProc mit "EinPackage.TestProc" als CommandText.

Ich habe keinerlei IDE hier und meine Erfahrungen mit dem alten, OLe-basierten ADO halten sich in Grenzen, aber so hätte ich es versucht und hätte auch erwartet dass es geht.
Es ist aber gut möglich, dass ADO keine Entsprechung für eine Cursor referenz hat.

Dann müsstest du ein wenig umbauen:
SQL-Code:
create or replace package EinPackage is
  type TTestEntry is Test%RowType;
  type TTestEntryList is table of TTestEntry;
  subtype TId is Test.Id%Type;

  function TestProc(id in TId) return TTestEntryList;
end;

create or replace package body EinPackage is

function TestProc(id in TId) return TTestEntryList
is
  Result TTestEntryList;
begin
  SELECT * BULK COLLECT
  INTO Result
  FROM Test t
  WHERE t.Id = id;

  return Result;
end;

end;
Ausführen könntest du es so:
SQL-Code:
SELECT *
FROM table(EinPackage.TestProc(1111))
Das alte ADO und Oracle ist aber wirklich eine ziemlich zickige und nervige Kombi (Du weißt, dass Ora XYZ kann, aber du weißt auch, dass ADO zu blöd dafür ist )
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  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 19:59 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