Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Daten Feld Typ rausfinden (https://www.delphipraxis.net/116236-daten-feld-typ-rausfinden.html)

toyoman 25. Jun 2008 13:13

Datenbank: SQL Server • Version: 2005 • Zugriff über: ADO

Daten Feld Typ rausfinden
 
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

RavenIV 25. Jun 2008 13:42

Re: Daten Feld Typ rausfinden
 
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

toyoman 25. Jun 2008 14:11

Re: Daten Feld Typ rausfinden
 
Zitat:

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...

Bernhard Geyer 25. Jun 2008 14:13

Re: Daten Feld Typ rausfinden
 
Zitat:

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.

toyoman 25. Jun 2008 14:16

Re: Daten Feld Typ rausfinden
 
Zitat:

Zitat von Bernhard Geyer
Zitat:

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).


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:54 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