AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Daten Feld Typ rausfinden
Thema durchsuchen
Ansicht
Themen-Optionen

Daten Feld Typ rausfinden

Ein Thema von toyoman · begonnen am 25. Jun 2008 · letzter Beitrag vom 25. Jun 2008
Antwort Antwort
toyoman

Registriert seit: 2. Jun 2003
323 Beiträge
 
Delphi 2010 Enterprise
 
#1

Daten Feld Typ rausfinden

  Alt 25. Jun 2008, 14:13
Datenbank: SQL Server • Version: 2005 • Zugriff über: ADO
Hallo Leute

Um in einem Filter-Fenster die Datentypen versch. durchsuchbarer Felder zu wissen habe ich folgende Funktion:

Delphi-Quellcode:
function getAdoFieldDataTyp(query: TAdoQuery; feldtext: String): TFieldType;
begin
      result:=query.Fields.FieldByName(feldtext).DataType;
end;
Im Programm selber frag ich dann wie folgt ab:

Delphi-Quellcode:
// Numerisch?
if (getadoFieldDataTyp(datamodule2005.ADOQuery1, edfeld.text) = ftInteger) or ....
Bis anhin hat das ganz gut funktioniert. Nun greife ich auf eine Tabelle zu welche Datentypen Integer und aber auch NVARCHAR hat. Diese werden nun scheinbar nicht mehr korrekt erkannt, weil er gibt immer numerisch zurück.

Datümer frage ich über getadofielddatatyp.... = ftdatetime or ftdate ab.
Text Felder über ....= ftString
Memo Felder über ....= ftMemo

Was muss ich für NVARCHAR Felder prüfen? Bei einem alten Projekt wo es funktioniert waren es einfache VARCHAR Definitionen....

Danke und Gruss aus der heissen Schweiz
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#2

Re: Daten Feld Typ rausfinden

  Alt 25. Jun 2008, 14:42
Grüäzi

mach doch bei der Funktion einen Breakpoint und schau nach, was in
query.Fields.FieldByName(feldtext).DataType drin steht.

gruesse aus dem heissen Zürich
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
toyoman

Registriert seit: 2. Jun 2003
323 Beiträge
 
Delphi 2010 Enterprise
 
#3

Re: Daten Feld Typ rausfinden

  Alt 25. Jun 2008, 15:11
Zitat von RavenIV:
Grüäzi

mach doch bei der Funktion einen Breakpoint und schau nach, was in
query.Fields.FieldByName(feldtext).DataType drin steht.

gruesse aus dem heissen Zürich
Danke für den Tipp, hätt ich auch drauf kommen können. Aber ist einfach zu heiss...

Es war der Typ ftWideString...
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Daten Feld Typ rausfinden

  Alt 25. Jun 2008, 15:13
Zitat von toyoman:
Es war der Typ ftWideString...
NVarchar -> ftWideString
Bei älteren Delphi-Versionen hättest du aufgrund von Bugs in diesem Bereich noch ftString bekommen.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
toyoman

Registriert seit: 2. Jun 2003
323 Beiträge
 
Delphi 2010 Enterprise
 
#5

Re: Daten Feld Typ rausfinden

  Alt 25. Jun 2008, 15:16
Zitat von Bernhard Geyer:
Zitat von toyoman:
Es war der Typ ftWideString...
NVarchar -> ftWideString
Bei älteren Delphi-Versionen hättest du aufgrund von Bugs in diesem Bereich noch ftString bekommen.
Ok, würde erklären warum ich das Problem erst jetzt mit Delphi 2007 festgestellt habe (vorher Delphi 7).
  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 17:10 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