AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Fields.DataTyp einer Query in einer Showmessage anzeigen lassen
Thema durchsuchen
Ansicht
Themen-Optionen

Fields.DataTyp einer Query in einer Showmessage anzeigen lassen

Offene Frage von "Rollo62"
Ein Thema von juergen · begonnen am 21. Mär 2016 · letzter Beitrag vom 24. Mär 2016
Antwort Antwort
Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.175 Beiträge
 
Delphi 11 Alexandria
 
#1

Fields.DataTyp einer Query in einer Showmessage anzeigen lassen

  Alt 21. Mär 2016, 21:32
Datenbank: MSSQL • Version: 2008 • Zugriff über: AnyDac
Hallo zusammen,

ich habe von einer Fremdsoftware die Feldnamen bekommen welche ich abfragen "darf". Allerdings nicht die Datentypen. Der Anwender kann sich aus einem Pool der möglichen Spalten diejenigen auswählen die ihn gerade interessieren.
In meinem Code muss ich auf den jeweiligen Datentyp reagieren und unterschiedliche Funktionen anwenden.
Allerdings funktionieren meine DataType-Abfragen nicht. Jetzt wollte ich mir mal den Datentyp anzeigen lassen.

Delphi-Quellcode:
while not AD_Query_1.Eof do begin
  for j := 0 to AD_Query_1.Fields.Count - 1 do begin
    if j = 7 then ShowMessage(AD_Query_1.Fields[j].DataType); // das geht so natürlich nicht, aber wie könnte ich mir den DataType anzeigen lassen?
....
Gibt es hierfür eine Möglichkeit?

Vielen Dank schon mal Vorab!
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Fields.DataTyp einer Query in einer Showmessage anzeigen lassen

  Alt 21. Mär 2016, 21:33
Delphi-Referenz durchsuchenGetEnumName
  Mit Zitat antworten Zitat
Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.175 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Fields.DataTyp einer Query in einer Showmessage anzeigen lassen

  Alt 21. Mär 2016, 22:06
Hallo Sir Rufo,

vielen Dank, das scheint es zu sein was ich benötige.

Allerdings bekomme ich es nicht ans Laufen, da mir in diesem Bereich die Kenntnisse einfach fehlen.
Ich habe mir das Beispiel aus der Hilfe angeschaut.

Delphi-Quellcode:
Var
Info : PTypeInfo;
begin
  // 1. Versuch
  Info := System.TypeInfo(AD_Query_1.Fields[j].DataType); // Fehlermeldung: ...E2133 Standardfunktion TYPEINFO erwartet einen Typbezeichner
  ShowMessage(Info^.Name); // Fehlermeldung: ...W1057 Implizite String-Umwandlung von 'ShortString' zu 'string'

  // 2. Versuch
  ShowMessage(TypInfo.GetEnumName(AD_Query_1.Fields[j].DataType) // Fehlermeldung: ...E2010 Inkompatible Typen: 'PTypeInfo' und 'TFieldType'
  
end;
Wie müsste ich das umsetzen?
Vielen Dank!
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Fields.DataTyp einer Query in einer Showmessage anzeigen lassen

  Alt 21. Mär 2016, 22:13
Delphi-Quellcode:
uses
  System.TypInfo;

type
  TEnum = (eOne, eTwo);

ShowMessage(
  GetEnumName(
    {TypeInfo: PTypeInfo} TypeInfo( TEnum ),
    {Value: Integer} Ord( eOne ) ) ); // sollte eOne zeigen
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.175 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Fields.DataTyp einer Query in einer Showmessage anzeigen lassen

  Alt 21. Mär 2016, 22:40
Hallo,

habe es jetzt hinbekommen:

ShowMessage(GetEnumName(TypeInfo(TFieldType), Integer(AD_Query_1.Fields[j].DataType))) Danke für die Unterstützung!
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.116 Beiträge
 
Delphi 12 Athens
 
#6

AW: Fields.DataTyp einer Query in einer Showmessage anzeigen lassen

  Alt 24. Mär 2016, 08:54
Funktioniert das auch ?

Ist etwas kürzer aber wohl erst in neueren Delphis vorhanden.

Rollo
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:40 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz