![]() |
Datenbank: dBase • Version: III+ • Zugriff über: TDBF
TDBF, Erstellen von DBase III+ Dateien
Hallo,
ich muss (leider) einen Datenexport nach dBase III+ realisieren. Am Anfang steht die Erstellung einer dbf-Datei. Leider, trotz Leveleinstellung in der TDBF, wird diese nicht auf Level 5 erstellt,sondern mit Level 7 somit ist die Datei in dBase nicht lesbar (das erste Bit ist nicht 03). Irgendwie gelingt es mir nicht TDBF so einzustellen (level), dass ich eine korrekte arstellen kann. Was könnte die Ursache sein, hängt dies ggf. mit der Grundeinstellung der BDE auf LEVEL 7 zusammen ? Ist hierzu eventuell ein Eintrag in der Registry erforderich ? Below is the Registry node hierarchy leading to this parameter (on my computer, which is running NT). HKEY_LOCAL_MACHINE SOFTWARE Borland Database Engine Settings DRIVERS DBASE TABLE CREATE Hat jemand bereits eine Erfahrung, Lösung für dieses Problem ? Wo muss ich ggf. im Source der TDBF Änderungen vornehmen ? mfg |
AW: TDBF, Erstellen von DBase III+ Dateien
Was benutzt Du wirklich TDBF oder die BDE, die haben nichts miteinander zu tun
Dokumentation zu TDBF: |
AW: TDBF, Erstellen von DBase III+ Dateien
Hallo,
ich nutze TDBF, wollte bewusst die BDE nicht nutzen. Auch die Einstellung Level 3 liefert im Header nicht wie erwartet 03, genau da liegt mein Problem. |
AW: TDBF, Erstellen von DBase III+ Dateien
Wenn die Tabelle Blobs enthalten kann steht da nicht 3 sonder 131, Das ist korrekt
Ansonsten funktionieren Die TDBF Komponenten genau wie gewünscht |
AW: TDBF, Erstellen von DBase III+ Dateien
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
ich finde meinen eventuellen Fehler nicht. Anbei eine Demo. sobald ich dBase III Plus die Datei öffnen will erhalte ich die Fehlermeldung "Keine dBase Datenbank"
Code:
procedure TForm1.btn_DateiErstellenClick(Sender: TObject);
begin if dlg_saveDBF.Execute then begin With dbf_Dbase do begin Close; TableLevel := 3; Exclusive := True; FilePath := ExtractFilePath(dlg_saveDBF.FileName); TableName := ExtractFileName(dlg_saveDBF.FileName); with FieldDefs do begin Clear; Add('Field1',ftString,10,False); Add('Field2',ftInteger,0,False); Add('Date',ftDate,0,False); end; CreateTable; end; end; end; |
AW: TDBF, Erstellen von DBase III+ Dateien
Kannst Du mal bitte mit dBase III Plus eine Datei mit gleicher oder ähnlicher Struktur erzeugen und hier anhängen?
|
AW: TDBF, Erstellen von DBase III+ Dateien
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
anbei die beiden Dateien. Unterschied liegt im Byt2, wenn ich dies auf z.B. 10 ändere erkennt dBase die Datei. Wobei dieses ja Teil des Datums der letzten Änderung der Datei ist. |
AW: TDBF, Erstellen von DBase III+ Dateien
Tja ich habe hier kein dbase III mehr
aber ändere in dbf_dbffile.pas
Delphi-Quellcode:
Dbase III war nicht 2000 fest. Mann ist das lange her das ich über so ein Problem gestolpert bin :-D
procedure TDbfFile.WriteHeader;
var SystemTime: TSystemTime; lDataHdr: PDbfHdr; begin if (HeaderSize=0) then exit; //FillHeader(0); lDataHdr := PDbfHdr(Header); GetLocalTime(SystemTime{%H-}); // lDataHdr^.Year := SystemTime.wYear - 1900; // replace lDataHdr^.Year := SystemTime.wYear - 2000; // with these lDataHdr^.Month := SystemTime.wMonth; lDataHdr^.Day := SystemTime.wDay; // lDataHdr.RecordCount := RecordCount; inherited WriteHeader; // write EOF terminator //if RecordCount = 0 then // WriteEOFTerminator; end; Sollte gehen |
AW: TDBF, Erstellen von DBase III+ Dateien
Hallo,
super, vielen Dank, das war's...HOCHACHTUNG !!!!! Aufs Jahr 2000 wäre ich nie gekommen. |
AW: TDBF, Erstellen von DBase III+ Dateien
Gerne geschehen,
aber eine Anmerkung noch. DBase III ist wie die Dinosaurier, man sollte sie nicht wiederbeleben. Das Teil ist über 30 Jahre alt!!:roll::roll: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:38 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 by Thomas Breitkreuz