Hi,
ich suche nach einer Moeglichkeit eine DBase-Tabelle mit (u.a.) einem Feld vom Typ fbcd mit 1.0 (Laenge 1 mit 0 Nachkommastellen) zu erzeugen.
Mein Code sieht derzeit so aus:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26:
| var tbl: TTable; fd: TFieldDescription; begin tbl := TTable.Create(Self); tbl.Name := 'Table' + IntToStr(FTableIdx); tbl.SessionName := FSession.SessionName; tbl.DatabaseName := FDatabase.DatabaseName; tbl.TableType := ttDBase; tbl.TableName := _TableName; tbl.TableLevel := 4;
fd := tbl.FieldDefs.AddFieldDef; fd.Name := 'BCD1'; fd.DataType := ftbcd; fd.Precision := 1; fd.Size := 0;
fd := tbl.FieldDefs.AddFieldDef; fd.Name := 'BCD2'; fd.DataType := ftbcd; fd.Precision := 2; fd.Size := 0;
tbl.CreateTable; |
Die Tabelle wird problemlos erzeugt, allerdings hat das Feld BCD1 immer 20.4, das Feld BCD2 korrekt 2.0.
Mache ich was falsch oder geht das einfach nicht? Falls letzteres: Warum kann Visual DBase 5.5 das dann?
twm
ps: dbase ist vorgegeben, d.h. Vorschlaege ala nimm doch Firebird o.ae. sind nicht hilfreich. Hoechstens ADO kaeme noch in Frage, vorausgesetzt, das kann solche Felder erzeugen.