![]() |
Datenbank: Oracle • Version: 9i • Zugriff über: Direct Oracle Access
Fehlermeldung bei Aufruf einer Stored Procedure
Hallo,
ich habe ein Problem beim Ausführen von Stored Procedures (Package) in einer Oracle 9i DB. Die Klasse mit den Stored Procedures Definitionen ist "pack". Diese wurde mit dem Package Assistent von "Direct Oracle Access" erstellt.. Wenn alles ohne Fehlermeldung abläuft, geht alles wunderbar. Aber sobald eine Procedure aus dem PAckage eine Fehlermeldung erzeugt (Variablen: error,sql), wird die Fehlermeldung bei der Ausführung jeder anderen Stored Procedure auch angezeigt obwohl die Procedure ohne Fehler durchläuft. Wenn ich das Programm neu starte dann funktioniert wieder alles, solange bis wieder eine Fehlermeldung kommt. Muss ich nach jedem Aufruf einer Stored Procedure wieder etwas freigeben, oder woran könnte es liegen? Steffen
Delphi-Quellcode:
procedure TForm1.fill_grid;
var sql,error : double; count : integer; begin if (count >= 1) then mOracleDataSet.Close; DBGrid1.Columns.Clear; pack.Session := mOracleLogon.Session; mOracleDataSet.Session := mOracleLogon.Session; mDataSource.DataSet := mOracleDataSet; pack.Pr_Get_Partitions(mQuery,error,sql); if (error = -1) then begin MessageDlg('SQL-Fehler ' + FloatToStr(sql) + ' beim auslesen der Partitionen aufgetreten.',mtError,[mbOK],0); exit; end else if ((error <> 0) and (error <> -1)) then begin MessageDlg('Fehlernr ' + FloatToStr(error) + ' beim auslesen der Partitionen aufgetreten.',mtError,[mbOK],0); exit; end; mOracleDataSet.ExternalCursor := mQuery; mOracleDataSet.Open; ... |
Re: Fehlermeldung bei Aufruf einer Stored Procedure
Wird denn "error" in deiner StoredProcedure auch auf "0" gesetzt? Oder wird es evtl.nur gesetzt wenn ein Fehler auftritt?
|
Re: Fehlermeldung bei Aufruf einer Stored Procedure
Die Proceduren sind alle Bestandteil eines Packages.
Die Variablen error und SQL sind Out-Variablen der entsprechenden Proceduren die in der Package Spezifikation beide auf 0 gesetzt werden. Also müssten sie meiner Meinung nach bei jedem erneuten Aufruf wieder auf 0 gesetzt werden oder? |
Re: Fehlermeldung bei Aufruf einer Stored Procedure
Sind die dort Global definiert?
Wenn ja, dann werden die nur einmal initialisiert bei der ersten Benutzung des Packages innerhalb einer Session. Soll heissen, wenn du keine neue Session machst sondern immer die gleiche Session verwendest werden die nicht wieder neu initialisiert, obwohl du mehrmals eine Funktion aus dem Package aufrufst. |
Re: Fehlermeldung bei Aufruf einer Stored Procedure
Ah, ok.
Danke, daran lag es. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:10 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