![]() |
Herausfinden, von welchem typ eine Variable ist
:hi: zusammen,
obwohl ich schon die Suche bemüht habe, finde ich nicht eine Info darüber, wie ich zur Laufzeit herausfinden kann, von welchem Typ eine Variable ist. Hintergrund: Ich möchte in meinem Objekt bequem verschiedene Variablen aufnehmen können wie dies mit
Delphi-Quellcode:
möglich ist.
ParamByName('Platzhalter').AsString
Dies alleine ist ja noch nicht so schwierig, wenn man entsprechende Methoden in das Objekt einbaut. Ich brauche jedoch die Variablen zur Weiterverarbeitung in einer DB. Dort arbeite ich wiederum mit der Methode
Delphi-Quellcode:
(o.ä.)
Query.SQL.ParambyName('Platzhalter').AsString
Um jetzt gezielt ParamByName mit der richtigen Methode aufrufen zu können, müsste ich wissen, welchen Typs die Variable ist. So eine Funktion müsste es doch geben, oder? Vielleicht wisst ihr ja auch eine elegantere / bessere Lösung für mein Problem. Schonmal herzlichen Dank Gruß Pfoto |
Re: Herausfinden, von welchem typ eine Variable ist
Hallo Pfoto,
für den Transport von Typinformation wurde der "Typ" Variant erfunden. Grüße vom marabu |
Re: Herausfinden, von welchem typ eine Variable ist
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:
Denn in die Spalten der Tabelle muss ja der Wert als korrekter Typ übergeben werden.
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; 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 |
Re: Herausfinden, von welchem typ eine Variable ist
Pfoto, zäumst du das Pferd nicht von hinten auf? Ist es in dem von dir geschilderten Fall nicht sinnvoller zu fragen, welchen Typ das Datenbankfeld hat?
marabu |
Re: Herausfinden, von welchem typ eine Variable ist
ja ich werde wohl nochmal neu darüber nachdenken müssen... :gruebel:
Gruß Pfoto |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:22 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz