Autor Beitrag
dummzeuch
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 593
Erhaltene Danke: 5


Delphi 5 ent, Delphi 6 bis Delphi XE8 pro
BeitragVerfasst: Mi 28.05.08 09:14 
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:

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