Moin, Moin,
ich bi jetzt nicht so der
ADO Profi, aber ich denke mal so könnte es funktionieren:
Delphi-Quellcode:
Query.DeclareVariable('
function_result', otFloat);
// Hier wird das Ergebnis der Funktion gespeichert
Query.DeclareVariable('
APROJECTID', otFloat);
// Variablen deklarieren, wie das genau in ADO geht weißt Du sicher besser als ich
Query.SetVariable('
APROJECTID', Aprojectid);
// Variablenwerte setzen
Query.DeclareVariable('
AERRORMESSAGE', otString);
Query.DeclareVariable('
AERRORSQLSTMNT', otString);
// PL/SQL Block, hier kannst Du auch mit in und out Variablen arbeiten
Query.SQL.Add('
begin');
Query.SQL.Add('
:function_result := "PPLA_ROUTINEN"."COPYPROJECT"(');
Query.SQL.Add('
APROJECTID => :APROJECTID,');
Query.SQL.Add('
AERRORMESSAGE => :AERRORMESSAGE,');
Query.SQL.Add('
AERRORSQLSTMNT => :AERRORSQLSTMNT);');
Query.SQL.Add('
end;');
Query.Execute;
Result := ConvertVariant(OCPQuery.GetVariable('
function_result'));
Aerrormessage := ConvertVariant(OCPQuery.GetVariable('
AERRORMESSAGE'));
Aerrorsqlstmnt := ConvertVariant(OCPQuery.GetVariable('
AERRORSQLSTMNT'));
wichtig ist eben das Du das ganze als PL/
SQL Block übergibst, und nicht als ein Select
Gruß
Michael