DBF-Felddefintionen in C# lesen

09/10/2007 - 08:05 von Daniel Boss | Report spam
Hallo zusammen

Bin auf der Suche nach einer Art wie ich die Struktur-Definition einer DBF
im .NET lesen kann.

Im VFP kann ich mittels Afields() die Definition der einzelnen Felder
ermitteln und danach auswerten.
Nun müsste ich aber das ganze auch in C# machen können. Bislang habe ich
aber nirgends eine Methode gefunden
wo man via OleDB diese Definition erhalten kann.

Es geht darum dass ich die vorhandene DBF-Datei analysieren muss, ob sie
noch einen korrekten(gültigen) Aufbau hat.
Sprich, ob die Felddefinitionen korrekt sind.

z.B. Via SQL-Server kann ich es so machen :
SELECT name, user_type_id, precision, scale, max_length,
is_nullable,collation_name FROM
a.sys.columns where object_id = object_id('a.b.c)

Doch wie geht sowas mit freien Tabellen ala DBF?

Was ich noch machen könnte ist dass ich den DBF-Header lese und dann halt
die Sachen so herausfinde, aber da ich nicht weiss
ob es eine klügere(einfachere) Art gibt, frag ich mal Euch :-)

Grüsse und eine schönen Tag wünsch ich Euch
Dani
 

Lesen sie die antworten

#1 Golo Roden
09/10/2007 - 10:01 | Warnen spam
Hallo Daniel,

wenn es in einer DBF so etwas wie eine Systemtabelle NICHT gibt, wirst
Du wohl nicht drumherum kommen, den DBF-Header zu analysieren.

Prinzipiell kannst Du mit ADO.NET zunàchst mal nur das machen, was mit
SQL möglich ist. Da es keinen genormten SQL-Befehl gibt, der Dir die
Tabellenstruktur anzeigt, wird das nicht gehen.

Im SQL Server funktioniert das, weil dieser die Daten seinerseits in
einer Tabelle hinterlegt, die mit SELECT abfragbar ist. Manche andere
Datenbanken handhaben das àhnlich, aber nicht notwendigerweise alle.

Viele Grüße,


Golo

Daniel Boss wrote:
Hallo zusammen

Bin auf der Suche nach einer Art wie ich die Struktur-Definition einer DBF
im .NET lesen kann.

Im VFP kann ich mittels Afields() die Definition der einzelnen Felder
ermitteln und danach auswerten.
Nun müsste ich aber das ganze auch in C# machen können. Bislang habe ich
aber nirgends eine Methode gefunden
wo man via OleDB diese Definition erhalten kann.

Es geht darum dass ich die vorhandene DBF-Datei analysieren muss, ob sie
noch einen korrekten(gültigen) Aufbau hat.
Sprich, ob die Felddefinitionen korrekt sind.

z.B. Via SQL-Server kann ich es so machen :
SELECT name, user_type_id, precision, scale, max_length,
is_nullable,collation_name FROM
a.sys.columns where object_id = object_id('a.b.c)

Doch wie geht sowas mit freien Tabellen ala DBF?

Was ich noch machen könnte ist dass ich den DBF-Header lese und dann halt
die Sachen so herausfinde, aber da ich nicht weiss
ob es eine klügere(einfachere) Art gibt, frag ich mal Euch :-)

Grüsse und eine schönen Tag wünsch ich Euch
Dani


Ähnliche fragen