Entwickler-Ecke

Datenbanken - Struktur aus dBase-Tabelle auslesen


kathrin2807 - Sa 08.02.03 18:00
Titel: Struktur aus dBase-Tabelle auslesen
Hallo

Wie kann ich die Struktur einer dbase-Tabelle auslesen. Ich möchte die Informationen in eine INI-Datei schreiben. Bei den Zeichen und Datumsfeldern klappt es. Nur bei den numerischen Feldern nicht. Wie kriege ich raus wieviele Stellen und Nachkommastellen das Feld hat ?

Danke im Voraus
:)


smiegel - So 09.02.03 09:49

Hallo,

schau Dir einmal die Eigenschaften DataType und DataSize von TField an. In der Delphi-Hilfe findest Du dann das gesuchte.

Tipp: TFloatField.Precision


Lake - So 09.02.03 10:38

Hallo vielleicht kannst Du das brauchen. Den nachfolgenden Code habe ich mal im Netz gefunden, weiss leider nicht mehr wo.
Aus dem DataSet kannst du dann aus "Name" den Feldnamen aus "Units1" die Grösse und aus "Units2" die Nachkommastellen für die einzelnen Felder auslesen.


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:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
uses BDE;

type
  TFelderListe = class(TDBDataSet)
  private
    FTableName: string;
  protected
    function CreateHandle: HDBICur; override;
    function GetRecordCount: LongInt; override;
  public
    property TableName: string read FTableName write FTableName;
  end;

{ TFelderListe }

function TFelderListe.CreateHandle: HDBICur;
var
  STableName        : array[0..255] of Char;
begin
  AnsiToNative(DBLocale, FTableName, STableName, SizeOf(STableName));
  Check(DbiOpenFieldList(DBHandle, STableName, nil, false, result));
end;

function TFelderListe.GetRecordCount: LongInt;
begin
  check(dbiGetRecordCount(handle, result));
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  fl                : TFelderListe;
begin
  fl := TFelderListe.Create(self);
  fl.TableName := 'xxx.dbf';
  fl.Active := true;
  DataSource1.DataSet := FL;
end;


mfg
Lake