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;
...