entdeckt, als ich dabei ging, eine Eingabemaske zu machen.
Zum Einsatz kommt firebird 2.1 embedded.
Dabei muss ich ja darauf achten, das auch nur die maximale Eingabe in
den Feldern möglich ist.
Das wird normalerweise mit der Eigenschaft maxlength der Komponente
DBEdit erledigt, wo die maximale Feldlänge eingetragen wird.
Lazarus ermitttelt aber immer eine falsche Feldlänge, das hat
meineserachtens aber nichts mit Firebird zu tun.
Habe es hiermit bei mehreren Feldern kontrolliert.
Code: Alles auswählen
ShowMessageFmt('Länge=%d Name=%s',[DBEdit1.Field.DataSize, DBEdit1.Field.FieldName]);
Original Feldlänge 8, er ermittelt 33.
Entdeckst Du eine Regelmässigkeit ?
Er multipliziert immer die original Feldlänge mit 4 und zählt noch 1 dazu.
Meine Lösung:
Ich schreibe eine Funktion, die dann von der falsch ermittelten
Feldlänge 1 abzieht und dann den Rest durch 4 teilt, dann passt es wieder.
Aber sauber ist das nicht.
Oder hat einer eine andere Lösung oder Idee?
Gibt es gleiche Erfahrungen ?