Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Neue Spalte in einer FoxPro-Tabelle erzeugen (https://www.delphipraxis.net/58445-neue-spalte-einer-foxpro-tabelle-erzeugen.html)

WoTo 7. Dez 2005 09:08

Datenbank: BDE • Zugriff über: BDE

Neue Spalte in einer FoxPro-Tabelle erzeugen
 
Hallo,
ich füge mit folgenden Anweisungen einer FoxPro-Tabelle eine Spalte hinzu:

AQuery := TQuery.Create(nil);
AQuery.SQL.Clear;
AQuery.SQL.Add('ALTER TABLE "_MP.DBF" ADD OID INTEGER');
AQUERY.EXECSQL;
AQUERY.Close;

Wenn ich danach die Datei mit Visual-FoxPro öffnen möchte, bekomme ich die Meldung, daß dies keine Tabelle ist !! :pale:
Mit ACCESS2003 läßt sich die Tabelle importieren und auch ansehen !

Was mach ich falsch ? :gruebel:

marabu 7. Dez 2005 09:41

Re: Neue Spalte in einer FoxPro-Tabelle erzeugen
 
Hallo,

eventuell ist deine Tabelle im Header als FoxPro-Tabelle markiert. Dieses Flag hat die BDE nach dem Update des Headers gelöscht, da sie Tabellen nach den Spezifikationen von Ashton & Tate / Borland verarbeitet. Das ist beim Lesen kein Hindernis, aber beim Schreiben schon. Nur eine Vermutung...

Grüße vom marabu

WoTo 7. Dez 2005 09:50

Re: Neue Spalte in einer FoxPro-Tabelle erzeugen
 
Hallo,
vielen Dank für deine Antwort.

Wie kann ich den Header wieder herstellen ? :gruebel:

MfG
WoTo

marabu 7. Dez 2005 09:57

Re: Neue Spalte in einer FoxPro-Tabelle erzeugen
 
Du musst den Header analysieren. Hilfreich kann dabei diese Formatbeschreibung sein.

marabu

WoTo 7. Dez 2005 11:53

Re: Neue Spalte in einer FoxPro-Tabelle erzeugen
 
Ich habe den Header analysiert und festgestellt, daß die BDE den Header vollkommen verändert und als 1. Spalte die Spalte "japan" erstellt (Byte 20H).
Aufgrund dessen vermute ich, daß irgendetwas mit dem Ländercode nicht stimmt. Ich habe dann mit TQuery.Locate ein wenig experimentiert aber leider kein Erfolg gehabt.

Ich habe jetzt eine Notlösung gefunden, die die Original-Tabelle kopiert, da andere Programme die Original-Tabelle nutzen. Mein Programm arbeitet dann mit der Kopie, sodaß das Original nicht verändert wird. Die BDE hat mit dem falschen Header keine Probleme.

Dein Hinweis mit dem Header hat mir sehr geholfen. Interessant wäre es allerdings, zu wissen, wieso der Header in dem Maße durch die BDE verändert wird.

MfG
WoTo


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:23 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz