Danke für den Hinweis, marabu
Ich muss ja nur leider bei der ParameterÜbergabe an die
DB wissen, um welchen Typ es sich handelt, um entsprechend .AsString / .AsInteger / .AsDateTime etc. aufrufen zu können.
Hier mal grob zur Veranschaulichung:
Delphi-Quellcode:
procedure SetValue(AValue : Variant);
begin
with Query do
begin
SQL.Text:= '
SELECT * FROM tDemotabelle WHERE Value = :Value);
// Hier müsste so eine Art Typ-Selection stattfinden
If AValue = IsString then
SQL.ParamByName('Value'
).AsString:= AValue;
If AValue = IsInteger then
SQL.ParamByName('Value'
).AsInteger:= AValue;
If AValue = IsDate then
SQL.ParamByName('Value'
).AsDate:= AValue;
end;
end;
Denn in die Spalten der Tabelle muss ja der Wert als korrekter Typ übergeben werden.
Deshalb scheint es mir, ich müsste erst einmal herausfinden, welchen Typs die Variable ist.
Aber wenn ich das richtig verstanden habe, übergibt der Compiler bei Variant einfach einen Pointer, ohne zu wissen, von welchem Ursprungstyp die Variable war, richtig?
D.h. ich müsste auf andere Weise übergeben, als welchen Typ der Wert in die
DB aufgenommen werden soll. Dann mache ich mal bei diesem Gedanken weiter...
Dank und Gruß
Pfoto