Zitat von
Phoenix:
Den atuellen Fehlertext habe ich in SQLERRM, aber wie bekomme ich den aktuellen Funktions- / Prozedurnamen raus?
Gar nicht. Ist ein known issue. Du kannst maximal das
Package herausfinden, aber nicht die SProc.
Delphi-Quellcode:
create
or replace
package Blabla
is
subtype TSProcName
is varchar(69);
function getCurrentSProc return TSProcName;
procedure setCurrentSProc(value
in TSProcName);
end Blabla;
Delphi-Quellcode:
create
or replace
package body Blabla
is
fCurrentSProc TSProcName;
function getCurrentSProc return TSProcName
is
begin
return fCurrentSProc;
end;
procedure setCurrentSProc(value
in TSProcName)
is
begin
fCurrentSProc := value;
end;
end Blabla;
Du könntest dir natürlich ein
Package schreiben, in dem du selbst die aktuelle SProc einträgst, damit du sie zum Zeitpunkt des Kaboom zur Hand hast.
Ich hatte selbst mal ein Highjacking auf die Debugger
API versucht, aber die bekommst du nicht wirklich in eine laufende Session injeziert ohne dass sich diese in Wohlgefallen auflöst.
btw: Ich hatte mir gestern deinen Code zwischen Galactica S2 Folge 18 & 19 angesehen und es dauerte mindestens 30 Minuten bis ich die CoreLabs Klassen durch die
ADO-Net Intefaces getauscht, das Erzeugen der Connection durch die ProviderFactories ersetzt hatte und schließlich sämtlichen
DB Kramst aus den Containerklassen in eine eigene Mapperklasse umgebogen hab.
Anders hätte ich wohl nichts testen können.