DBF-Datei(en) mit ODBC-Treiber öffnen
Moderator: Moderatoren
-
- Rekursionen-Architekt
- Beiträge: 194
- Registriert: Fr, 24. Feb 2006 8:09
- Kontaktdaten:
DBF-Datei(en) mit ODBC-Treiber öffnen
Hallo,
gerade erst angemeldet und schon die erste Frage …
Es geht um das Öffnen von DBF-Dateien mit ODBC-Treibern.
Ich habe auf dem Rechner (Lokal) DBF-Files liegen. Wie gesagt, diese würde ich gerne per ODBC-Treiber öffnen.
Hintergrund:
Ich möchte mit einem Datenbanktool ein ERM (aus bestehenden DBFs) erstellen -> zur Dokumentationszwecken. (Im Tool selbst kann ich ODBC-Datenbanken importieren.)
Hat schon jem. ähnliches gemacht / probiert und kann mal einen Tipp geben?
Schöne Grüße,
Notloesung
gerade erst angemeldet und schon die erste Frage …
Es geht um das Öffnen von DBF-Dateien mit ODBC-Treibern.
Ich habe auf dem Rechner (Lokal) DBF-Files liegen. Wie gesagt, diese würde ich gerne per ODBC-Treiber öffnen.
Hintergrund:
Ich möchte mit einem Datenbanktool ein ERM (aus bestehenden DBFs) erstellen -> zur Dokumentationszwecken. (Im Tool selbst kann ich ODBC-Datenbanken importieren.)
Hat schon jem. ähnliches gemacht / probiert und kann mal einen Tipp geben?
Schöne Grüße,
Notloesung
- Martin Altmann
- Foren-Administrator
- Beiträge: 16508
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Hallo notloesung,
hast Du auf dem PC Office installiert? Da ist eigentlich ein entsprechender ODBC-Treiber mit bei!
Ab dem Microsoft MDAC 2.1 werden dBase-Dateien unterstützt, wie Du hier nachlesen kannst - schau Dir mal dort den Abschnitt dBASE-Dateien importieren oder verknüpfen relativ weit unten auf der Seite an.
Viele Grüße,
Martin
hast Du auf dem PC Office installiert? Da ist eigentlich ein entsprechender ODBC-Treiber mit bei!
Ab dem Microsoft MDAC 2.1 werden dBase-Dateien unterstützt, wie Du hier nachlesen kannst - schau Dir mal dort den Abschnitt dBASE-Dateien importieren oder verknüpfen relativ weit unten auf der Seite an.
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
-
- Rekursionen-Architekt
- Beiträge: 194
- Registriert: Fr, 24. Feb 2006 8:09
- Kontaktdaten:
- Martin Altmann
- Foren-Administrator
- Beiträge: 16508
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Hallo notloesung,
dazu kann ich Dir leider nichts sagen, da ich mit ODBC nur ab und an unter Access arbeite und damit auf div. SQL-Server zugreife.
Aber ist Deine DBF-Datei wirklich dBase? Es gibt da nämlich (wenn ich mich nicht mal wieder irre) Unterschiede zwischen den Memofeldern bei dBase-DBF und FoxPro(:?:)-DBF-Dateien.
Viele Grüße,
Martin
dazu kann ich Dir leider nichts sagen, da ich mit ODBC nur ab und an unter Access arbeite und damit auf div. SQL-Server zugreife.
Aber ist Deine DBF-Datei wirklich dBase? Es gibt da nämlich (wenn ich mich nicht mal wieder irre) Unterschiede zwischen den Memofeldern bei dBase-DBF und FoxPro(:?:)-DBF-Dateien.
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
-
- Rekursionen-Architekt
- Beiträge: 194
- Registriert: Fr, 24. Feb 2006 8:09
- Kontaktdaten:
Ist es, oder doch nicht?
Wie gesagt habe die DB folgendermaßen erzeugt:
---------->---------->
PROCEDURE Main
LOCAL oSession
IF dbeload( "ADSDBE" )
dbesetdefault( "ADSDBE" )
oSession := DacSession():New( "ADSDBE", [Laufwerkbuchstabe] )
IF oSession:isConnected()
set DEFAULT TO [Pfad]
dbeinfo( COMPONENT_DATA, ADSDBE_TBL_MODE, ADSDBE_CDX )
dbeinfo( COMPONENT_ORDER, ADSDBE_TBL_MODE, "CDX" )
/* DB erzeugen */
Erzeuge_db()
ENDIF
ENDIF
RETURN
<----------<----------
---------->---------->
STATIC PROCEDURE Erzeuge_db()
LOCAL cFileName, ;
aStructure
cFileName := [Filename]
aStructure := { { "FELD1", "N", 5, 0 }, ;
{ "FELD2", "D", 8, 0 }, ;
…
{ "FELDX", "M", 10, 0 } ; //Memofeld
}
DbCreate( cFileName, aStructure )
RETURN
<----------<----------
Also dBase oder doch nicht? Ich kenne die Unterscheide leider nicht.
Gruß,
Notloesung
Wie gesagt habe die DB folgendermaßen erzeugt:
---------->---------->
PROCEDURE Main
LOCAL oSession
IF dbeload( "ADSDBE" )
dbesetdefault( "ADSDBE" )
oSession := DacSession():New( "ADSDBE", [Laufwerkbuchstabe] )
IF oSession:isConnected()
set DEFAULT TO [Pfad]
dbeinfo( COMPONENT_DATA, ADSDBE_TBL_MODE, ADSDBE_CDX )
dbeinfo( COMPONENT_ORDER, ADSDBE_TBL_MODE, "CDX" )
/* DB erzeugen */
Erzeuge_db()
ENDIF
ENDIF
RETURN
<----------<----------
---------->---------->
STATIC PROCEDURE Erzeuge_db()
LOCAL cFileName, ;
aStructure
cFileName := [Filename]
aStructure := { { "FELD1", "N", 5, 0 }, ;
{ "FELD2", "D", 8, 0 }, ;
…
{ "FELDX", "M", 10, 0 } ; //Memofeld
}
DbCreate( cFileName, aStructure )
RETURN
<----------<----------
Also dBase oder doch nicht? Ich kenne die Unterscheide leider nicht.
Gruß,
Notloesung
-
- Rekursionen-Architekt
- Beiträge: 194
- Registriert: Fr, 24. Feb 2006 8:09
- Kontaktdaten:
Hi,
das funktioniert.
Habe inzwischen herausgefunden dass DB die direkt im Xbase erstellt wurden (zumindest meine, wie o.g.) das Format FoxPro2 haben.
Ob das wohl grundsätzlich gilt?
Zumindest bin ich jetzt schon einen Schritt weiter!
Erstmal schönen Dank,
Notloesung
… nächstes Problem ist im anmarsch … eh, ich meine natürlich die nächste Herausforderung …
das funktioniert.
Habe inzwischen herausgefunden dass DB die direkt im Xbase erstellt wurden (zumindest meine, wie o.g.) das Format FoxPro2 haben.
Ob das wohl grundsätzlich gilt?
Zumindest bin ich jetzt schon einen Schritt weiter!
Erstmal schönen Dank,
Notloesung
… nächstes Problem ist im anmarsch … eh, ich meine natürlich die nächste Herausforderung …
- brandelh
- Foren-Moderator
- Beiträge: 15695
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Hallo,
standardmäßig (original DBESYS.PRG in C:\ALASKA\XPPW32\SOURCE\SYS wird verwendet, wenn man keine angibt) generiert Xbase++ die DBF mit DBFNTX also im Clipperformat.
Das sollte immer gehen, auch wenn einige Anwendungen Probleme mit den Memofeldern haben.
In deinem Beispiel änderst du den Standard auf ADS ab.
Auch FOXCDX ist nicht unproblematisch im ODBC Zugriff.
Soweit ich weiß ist übrigens ein DBF ODBC Treiber Standard auch ohne Office, bin mir da aber nicht ganz sicher.
standardmäßig (original DBESYS.PRG in C:\ALASKA\XPPW32\SOURCE\SYS wird verwendet, wenn man keine angibt) generiert Xbase++ die DBF mit DBFNTX also im Clipperformat.
Das sollte immer gehen, auch wenn einige Anwendungen Probleme mit den Memofeldern haben.
In deinem Beispiel änderst du den Standard auf ADS ab.
Auch FOXCDX ist nicht unproblematisch im ODBC Zugriff.
Soweit ich weiß ist übrigens ein DBF ODBC Treiber Standard auch ohne Office, bin mir da aber nicht ganz sicher.
Gruß
Hubert
Hubert
- AUGE_OHR
- Marvin
- Beiträge: 12906
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 45 Mal
DBF / ODBC / MDAC
Hi,
DBF / ODBC / MDAC ...
gleich vorweg : es geht nicht darum die DBF mit Xbase++ zu öffnen !
Also ich arbeite mit einem „Visual C“ Programm zusammen auf eine DBF.
Das was ich nun „geliefert“ bekam konnte ich auch per DBFNTX öffnen,
schreiben und anzeigen in Xbase++, aber komischerweise nicht in der
„Visual C“ Application „sehen“ (Browse ist leer) .
Nun hab ich das ganze auf einem anderen „leeren“ Win98se PC
ausprobiert und da funktioniert beides ...
Da die „Visual C“ Anwendung ja irgendwie eine „Treiber“ für die DBF
braucht habe ich also an M$ gedacht und mit die „lates“ JET sowie MDAC
Komponenten für W98se geholt und installiert. Leider hat sich nichts geändert.
Während die JET und MDAC Komponenten jetzt „lates“ Version aufweisen
Sagt mein ODBC32.DLL immer noch was von 3.5xxxx ... muss ich die
auch nochmal irgendwie „updaten“ ?
Nun hab ich mal „alle Visual C“ DBF Type angefordert und ausprobiert und
nur der „Foxpro 3“ Type lies was in der „Visual C“ Application anzeigen
ABER das auch nur auf „meinem“ PC während nun der vorher
„funktionsfähige“ NICHT mehr funktioniert ...
also was kann ich nun noch machen ? „Office97“ drüber installieren/
deinstallieren ?
wer hat noch eine Tip ?
gruss by OHR
Jimmy
DBF / ODBC / MDAC ...
gleich vorweg : es geht nicht darum die DBF mit Xbase++ zu öffnen !
Also ich arbeite mit einem „Visual C“ Programm zusammen auf eine DBF.
Das was ich nun „geliefert“ bekam konnte ich auch per DBFNTX öffnen,
schreiben und anzeigen in Xbase++, aber komischerweise nicht in der
„Visual C“ Application „sehen“ (Browse ist leer) .
Nun hab ich das ganze auf einem anderen „leeren“ Win98se PC
ausprobiert und da funktioniert beides ...
Da die „Visual C“ Anwendung ja irgendwie eine „Treiber“ für die DBF
braucht habe ich also an M$ gedacht und mit die „lates“ JET sowie MDAC
Komponenten für W98se geholt und installiert. Leider hat sich nichts geändert.
Während die JET und MDAC Komponenten jetzt „lates“ Version aufweisen
Sagt mein ODBC32.DLL immer noch was von 3.5xxxx ... muss ich die
auch nochmal irgendwie „updaten“ ?
Nun hab ich mal „alle Visual C“ DBF Type angefordert und ausprobiert und
nur der „Foxpro 3“ Type lies was in der „Visual C“ Application anzeigen
ABER das auch nur auf „meinem“ PC während nun der vorher
„funktionsfähige“ NICHT mehr funktioniert ...
also was kann ich nun noch machen ? „Office97“ drüber installieren/
deinstallieren ?
wer hat noch eine Tip ?
gruss by OHR
Jimmy
- AUGE_OHR
- Marvin
- Beiträge: 12906
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 45 Mal
Lösung bei ODBC Problemen
uff ich habe es gefunden, es ist/war die "Borland BDE" !!!
wie ich es gefunden habe ? Ich habe "depends.exe" auf beiden PC
laufen lasssen und mir angesehen welche DLL er nun lädt. Dabei
ist mir aufgefallen das auf "meinem" auch "Borland BDE" DLL geladen
wurden die auf dem "orignal win98se" nicht existieren. Also ab ich die
einfach mal zusammen gepackt und gelöscht und siehe da nun hab
ich endlich auch eine Anzeige auf "meinem" PC.
Tja das scheinen sich wieder einmal "Borland" und M$ in die Quere
zu kommen. Dumm nur das alle "Dbase" Produkte auf die "Borland DBE"
wollen wenn die ODBC benutzen ...
gruss by OHR
Jimmy
wie ich es gefunden habe ? Ich habe "depends.exe" auf beiden PC
laufen lasssen und mir angesehen welche DLL er nun lädt. Dabei
ist mir aufgefallen das auf "meinem" auch "Borland BDE" DLL geladen
wurden die auf dem "orignal win98se" nicht existieren. Also ab ich die
einfach mal zusammen gepackt und gelöscht und siehe da nun hab
ich endlich auch eine Anzeige auf "meinem" PC.
Tja das scheinen sich wieder einmal "Borland" und M$ in die Quere
zu kommen. Dumm nur das alle "Dbase" Produkte auf die "Borland DBE"
wollen wenn die ODBC benutzen ...
gruss by OHR
Jimmy