Autor Beitrag
lkz633
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 136

WinXP, Suse Linux 8.2 (unter VMWare)
D7 Prof, K3 Prof
BeitragVerfasst: Mo 13.01.03 21:30 
Hi,

ich lese mit adoquery.fielddefs.Items[i].Size die grösse der Felder aus. Das klappt auch wunderbar, leider aber nur bei Stringfeldern.

Da ich aber auch herausfinden möchte, ob ein Feld ein SmallINt oder IntegerFeld ist, brauche ich auch diese Information, der oben gepostete code gibt dabei aber immer 0 zurück. Warum, bzw wie bekomme ich doch die Grösse heraus ?

(Ich weiss, ich könnte auch mitadoquery.FieldDefs.Items[i].FieldClass.ClassName die Bezeichnung herausbekommen, und das obrige Problem lösen, falls es aber eine Lösung mit size geben würde, wäre das für mich sehr viel komfortabler)

Dank und Gruß
lkz633
bis11
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1247
Erhaltene Danke: 2

Apple Mac OSX 10.11

BeitragVerfasst: Mo 13.01.03 23:28 
Hi,

soweit ich weiß, bezieht sich das Size nur auf einen String, da ich damit nur eine Größe von bestimmten Zeichen bestimmen kann. Wie soll das aber bei Integer oder SmallInt gehen. Für den Variablentyp kannst Du nur in einem bestimmten Zahlenbereich angeben. Da müsste Du die Zahl überprüfen ob Sie im Bereich liegt.
LCS
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1305
Erhaltene Danke: 1

WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
BeitragVerfasst: Di 14.01.03 09:13 
Hi
ich ergänze das einfach mal.

Borland hat folgendes geschrieben:

Size liefert sinnvolle Informationen nur für ein Felddefinitionsobjekt mit einem der folgenden TFieldType-Werte: ftString, ftBCD, ftBytes, ftVarBytes, ftBlob, ftMemo oder ftGraphic. Bei String- und Byte-Feldern enthält Size die Anzahl der für das Feld in der Tabelle reservierten Bytes. Für ein BCD-Feld gibt Size die Anzahl der Stellen nach dem Dezimalzeichen an. Bei einem BLOB-, Memo- oder Grafikfeld enthält Size die Anzahl der Bytes des Feldwertes, die in der aktuellen Datenbanktabelle gespeichert sind.


Mit anderen Worten: Size liefert nur bei den Feldtypen eine Grösse, bei denen du die Grösse selbst festlegen kannst. Bei numerischen Feldtypen ist die Grösse von der Datenbank vorgegeben. Meist 2 - 4 Byte für Integer und 4 - 8 Byte für Gleitkommazahlen.

Gruss Lothar

_________________
Der BH ist für die Brust, der Plan ist für'n Ar...