Einzelnen Beitrag anzeigen

jaevencooler

Registriert seit: 8. Sep 2005
Ort: Friedrichshafen
41 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: Oracle Stored Function mit ADO

  Alt 23. Aug 2011, 12:31
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
Michael
Wissen ist Macht, nichts wissen macht auch nichts.
  Mit Zitat antworten Zitat