Seite 1 von 1

Tabelle programmtisch erstellen

Verfasst: Mo, 19. Dez 2016 19:52
von HaPe
Hallo Zusammen !

In VFP steht zur Erstellung und Manipulation von Tabellen auch die SQL-Syntax zur Verfügung, zb.:
CREATE TABLE MeineTabelle ( BlockType C(2), DGBlockNo N(3,0), CGBlockNo N(3,0), CNBlockNo N(3,0), cProperty C(70), cValue C(254), mValue M(4), nValue I(4), dValue B(8) )
ALTER TABLE MeineTabelle ALTER COLUMN BlockType C( 3 )
ALTER TABLE MeineTabelle DROP COLUMN BlockType
ALTER TABLE MeineTabelle ADD COLUMN cRepFile C(120)
Das scheint es in Xbase++ 2.0 Build 726 wohl noch nicht zu geben.

Gibt es eine andere Möglichkeit ohne zuerst eine Struktur-Tabelle erstellen zu müssen und daraus die eigentliche Tabelle?

Hintergrund: Ich verarbeite Messdaten die als Text-Tabelle (mit Tab getrennt) kommen und in eine DBF zur Weiterverarbeitung geschrieben werden sollen.
Die Daten-Struktur der Text-Tabelle ist nicht vorgegeben und wird im VFP-Programm anhand des Headers dynamisch zur Laufzeit bestimmt.
Daraus wird dann ein SQL-Command erstellt welches die DBF-Tabelle zum APPENDen der Text-Tabelle erstellt.

Re: Tabelle programmtisch erstellen

Verfasst: Mo, 19. Dez 2016 20:04
von Martin Altmann
Moin,
Du kannst die Struktur auch in einem Array vorhalten und daraus die DBF erzeugen:

Code: Alles auswählen

aStructure := {}
aAdd( aStructure, { "KLUB1", "C", 57, 0 } )
aAdd( aStructure, { "KLUB2", "C", 57, 0 } )
aAdd( aStructure, { "NAME", "C", 57, 0 } )
aAdd( aStructure, { "STRASSE", "C", 57, 0 } )
aAdd( aStructure, { "PLZ", "C", 6, 0 } )
aAdd( aStructure, { "ORT", "C", 30, 0 } )
aAdd( aStructure, { "ZUSATZ1", "C", 57, 0 } )
aAdd( aStructure, { "ZUSATZ2", "C", 57, 0 } )
aAdd( aStructure, { "ZUSATZ3", "C", 57, 0 } )
aAdd( aStructure, { "VEREINNR", "N", 3, 0 } )
aAdd( aStructure, { "CODE", "C", 1, 0 } )
DbCreate( cPfad + cDateiname, aStructure )
Viele Grüße,
Martin

Re: Tabelle programmtisch erstellen

Verfasst: Mo, 19. Dez 2016 20:21
von HaPe
Hallo Martin !
Du kannst die Struktur auch in einem Array vorhalten und daraus die DBF erzeugen:
Danke, das sieht gut aus.