AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken TDBF, Erstellen von DBase III+ Dateien
Thema durchsuchen
Ansicht
Themen-Optionen

TDBF, Erstellen von DBase III+ Dateien

Ein Thema von waldforest · begonnen am 14. Jun 2016 · letzter Beitrag vom 14. Jun 2016
Antwort Antwort
Seite 1 von 2  1 2      
waldforest

Registriert seit: 8. Mai 2005
366 Beiträge
 
Delphi XE3 Enterprise
 
#1

TDBF, Erstellen von DBase III+ Dateien

  Alt 14. Jun 2016, 14:07
Datenbank: dBase • Version: III+ • Zugriff über: TDBF
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
mfg wf

Geändert von waldforest (14. Jun 2016 um 14:34 Uhr)
  Mit Zitat antworten Zitat
Fritzew

Registriert seit: 18. Nov 2015
Ort: Kehl
678 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: TDBF, Erstellen von DBase III+ Dateien

  Alt 14. Jun 2016, 14:59
Was benutzt Du wirklich TDBF oder die BDE, die haben nichts miteinander zu tun
Dokumentation zu TDBF:
7.28 TableLevel
property TableLevel: Integer read FTableLevel write SetTableLevel;
Examine TableLevel to nd the current table level. Set TableLevel to specify the table level
for to be created tables. The Active property must be false to be able to set TableLevel.
These are the possible levels:
 3: dBase III+ compatible.
 4: dBase IV compatible. The only di erence to dBase III+ is the current codepage,
locale. dBas
Fritz Westermann
  Mit Zitat antworten Zitat
waldforest

Registriert seit: 8. Mai 2005
366 Beiträge
 
Delphi XE3 Enterprise
 
#3

AW: TDBF, Erstellen von DBase III+ Dateien

  Alt 14. Jun 2016, 15:10
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.
mfg wf
  Mit Zitat antworten Zitat
Fritzew

Registriert seit: 18. Nov 2015
Ort: Kehl
678 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: TDBF, Erstellen von DBase III+ Dateien

  Alt 14. Jun 2016, 15:28
Wenn die Tabelle Blobs enthalten kann steht da nicht 3 sonder 131, Das ist korrekt
Ansonsten funktionieren Die TDBF Komponenten genau wie gewünscht
Fritz Westermann
  Mit Zitat antworten Zitat
waldforest

Registriert seit: 8. Mai 2005
366 Beiträge
 
Delphi XE3 Enterprise
 
#5

AW: TDBF, Erstellen von DBase III+ Dateien

  Alt 14. Jun 2016, 18:50
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;
Angehängte Dateien
Dateityp: zip FBDbaseExport.zip (78,5 KB, 7x aufgerufen)
mfg wf
  Mit Zitat antworten Zitat
Fritzew

Registriert seit: 18. Nov 2015
Ort: Kehl
678 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: TDBF, Erstellen von DBase III+ Dateien

  Alt 14. Jun 2016, 19:35
Kannst Du mal bitte mit dBase III Plus eine Datei mit gleicher oder ähnlicher Struktur erzeugen und hier anhängen?
Fritz Westermann
  Mit Zitat antworten Zitat
waldforest

Registriert seit: 8. Mai 2005
366 Beiträge
 
Delphi XE3 Enterprise
 
#7

AW: TDBF, Erstellen von DBase III+ Dateien

  Alt 14. Jun 2016, 20:21
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.
Angehängte Dateien
Dateityp: zip TEMP.zip (406 Bytes, 3x aufgerufen)
mfg wf
  Mit Zitat antworten Zitat
Fritzew

Registriert seit: 18. Nov 2015
Ort: Kehl
678 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: TDBF, Erstellen von DBase III+ Dateien

  Alt 14. Jun 2016, 20:43
Tja ich habe hier kein dbase III mehr

aber ändere in dbf_dbffile.pas

Delphi-Quellcode:
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;
Dbase III war nicht 2000 fest. Mann ist das lange her das ich über so ein Problem gestolpert bin

Sollte gehen
Fritz Westermann
  Mit Zitat antworten Zitat
waldforest

Registriert seit: 8. Mai 2005
366 Beiträge
 
Delphi XE3 Enterprise
 
#9

AW: TDBF, Erstellen von DBase III+ Dateien

  Alt 14. Jun 2016, 21:22
Hallo,
super, vielen Dank, das war's...HOCHACHTUNG !!!!!
Aufs Jahr 2000 wäre ich nie gekommen.
mfg wf
  Mit Zitat antworten Zitat
Fritzew

Registriert seit: 18. Nov 2015
Ort: Kehl
678 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: TDBF, Erstellen von DBase III+ Dateien

  Alt 14. Jun 2016, 21:30
Gerne geschehen,

aber eine Anmerkung noch. DBase III ist wie die Dinosaurier, man sollte sie nicht wiederbeleben. Das Teil ist über 30 Jahre alt!!
Fritz Westermann
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:12 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz