Aus der Erkenntnis heraus, dass die Zuweisung funktioniert, wenn das Objekt bereits durch eine
Query geschickt wurde, habe ich folgende Init-Methode geschrieben:
Delphi-Quellcode:
procedure TWrite.Init(
out aTimes: TORacleObject; aAmount:Integer);
var Query:TOracleQuery;
begin
ATimes := TOracleObject.Create(FSession, '
"TTIMESTAMPLIST"', '
');
Query:=TOracleQuery.Create(
nil);
try
Query.Session:=FSession;
Query.DeclareVariable('
ATIMES', otObject);
Query.DeclareVariable('
AAMOUNT', otInteger);
Query.SetVariable('
AAMOUNT',aAmount);
Query.SetComplexVariable('
ATIMES', Atimes);
Query.SQL.Add('
declare');
Query.SQL.Add('
x TTIMESTAMPLIST;');
Query.SQL.Add('
begin');
Query.SQL.Add('
x :=TTIMESTAMPLIST();');
Query.SQL.Add('
x.extend(:AAMOUNT);');
Query.SQL.Add('
:ATIMES:=x;');
Query.SQL.Add('
end;');
Query.Execute;
finally
Query.Free;
end;
end;
Wenn ich so das Oracleobjekt erstelle kann ich dann einfach via TOracleObject.Elements[i] die TimeStamp-Werte (als TDateTime)hineinschreiben.
Naja, zumindest eine Lösung.
Edit: Und schon wieder kurz nachdem man den Fragepost erstellt hat, findet man (zumindest) eine Lösung (nachdem man beriets einen Tag danach gesucht hat)
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.