Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi FireDAC->DBASE geht das? (https://www.delphipraxis.net/177977-firedac-dbase-geht-das.html)

QuickAndDirty 9. Dez 2013 11:21

Datenbank: Dbase • Version: for Windows • Zugriff über: Firedac

FireDAC->DBASE geht das?
 
Hallo,
ich muss für einen Export nach DBase einen Zugriff auf dieses altehrwürdige Stück IT-Geschichte erlangen.
Leider bin ich garnicht mit dieser Sache vertraut.

Folgendes auf der haben Seite:
-Mit der "D7 Datenbankoberfläche" eine "Adressen.DBF" Datei/Datenbank/Tabelle gebaut.
-MDAC runtergaladen und installiert, vermutlich ist ODBC wohl nötig.
-Projekt mit dem man nach Firebird zugreifen kann um TADPhysODBCDriverlink erweitert.



Was noch fehlt:
-Was muss ich im ODBCAD32.exe einstellen, damit dieser mit der DBASE Datenbank kann?
-Wie haben die TADConnection.Parameter auszusehen?
[Edit]
-Habe im ODBCAD32.exe mal einen SystemDSN für die Datei angelegt
[/Edit]

Wäre nett, wenn auch nur Wissensschnipsel vorhanden sind, daas ihr sie postet, vielleicht ergibt sich dann noch ein Bild.

p80286 9. Dez 2013 11:51

AW: FireDAC->DBASE geht das?
 
Provider=MSDASQL.1;Persist Security Info=False;Data Source=dBASE Files
Ado für DBase via odbc

Die System DSN erfordert aber Admin-Rechte (Standard) da könntest Du Probleme bekommen

Pardon die Regeinträge hab ich vergessen:
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\ODBC\ODBC.INI]

[HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\dBASE Files]
"Driver"="C:\\Windows\\system32\\odbcjt32.dll"
"DriverId"=dword:00000215
"SafeTransactions"=dword:00000000
"UID"=""

[HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\dBASE Files\Engines]

[HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\dBASE Files\Engines\Xbase]
"ImplicitCommitSync"=""
"Threads"=dword:00000003
"UserCommitSync"="Yes"

[HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\Excel Files]
"Driver"="C:\\Windows\\system32\\odbcjt32.dll"
"DriverId"=dword:00000316
"SafeTransactions"=dword:00000000
"UID"=""

[HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\Excel Files\Engines]

[HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\Excel Files\Engines\Excel]
"ImplicitCommitSync"=""
"Threads"=dword:00000003
"UserCommitSync"="Yes"
"FirstRowHasNames"=hex:01

[HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\MS Access Database]
"Driver"="C:\\Windows\\system32\\odbcjt32.dll"
"DriverId"=dword:00000019
"SafeTransactions"=dword:00000000
"UID"=""

[HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\MS Access Database\Engines]

[HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\MS Access Database\Engines\Jet]
"ImplicitCommitSync"=""
"Threads"=dword:00000003
"UserCommitSync"="Yes"

[HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC Data Sources]
"MS Access Database"="Microsoft Access Driver (*.mdb)"
"Excel Files"="Microsoft Excel Driver (*.xls)"
"dBASE Files"="Microsoft dBase Driver (*.dbf)"

Fehlt nur noch die konkrete Datei.

Gruß
K-H

QuickAndDirty 9. Dez 2013 12:01

AW: FireDAC->DBASE geht das?
 
[Edit]
Das mit den Registry einträgen ist aber hart. Wie kommt man auf sowas?
[/Edit]
Habe eine System DSN und ein User DSN angeleget.
Die Connection parameter sehen bei mir für Firedac (ado können wir nicht einsetzen)
so aus
Code:
DriverID=ODBC
ODBCDriver=Microsoft DBase Driver (*.dbf)
also das sind die Parameter die funktionieren

Aus irgendeinem Grund muss er wohl diese auch noch haben, weil ich loginPrompt aktiviert habe.
Code:
User_Name=Dbase
Password=test
Das Problem ist ich weiß nicht wie ich der ADConnection sage sie soll diese DSN benutzen.
Bei mir steht da einfach das hier.
Code:
ODBCAdvanced= DSN=Adressen3
Das führt nicht zu nem Fehler....aber wenn ich ein Querry absetze
Code:
Select * from Adressen
Meldet er:
Zitat:

Das Microsoft jet-Datenbankmodul konnte das Objekt 'Adressen' nicht finden. Stellen Sie sicher, dass das Objekt existiert und dass die Namens- Pfadandgaben richtig angegeben wurden.
*hmpf*

Das selbe sagt er mit Adressen3 anstelle von Adressen .

QuickAndDirty 9. Dez 2013 12:13

AW: FireDAC->DBASE geht das?
 
Zitat:

Zitat von p80286 (Beitrag 1239089)
Fehlt nur noch die konkrete Datei.

Wo trage ich die ein?
Ein Import ist so sowieso nicht möglich...weil mein Spielsystem WIn2k ist.
Ich baue das mal um und gucke ob das etwas ändert wenn ich die Registryeinträge importiere.

Hmm
eine C:\\WinNT\\system32\\odbcjt32.dll
gibts da nicht

p80286 9. Dez 2013 12:58

AW: FireDAC->DBASE geht das?
 
Zitat:

Zitat von QuickAndDirty (Beitrag 1239092)
[Edit]
Das mit den Registry einträgen ist aber hart. Wie kommt man auf sowas?
[/Edit]

Na alles was Du unter Verwaltung/ODBC einträgst landet in der Registry, Also warum den Umweg (wenn man weiß wie's geht)

Ich hab noch eine .DBF-Datei gefunden:
Code:
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\dBASE Files]
"Driver"="C:\\Windows\\system32\\odbcjt32.dll"
"DefaultDir"="Das_ist_meine_Datei"
"Description"="dd"
"DriverId"=dword:00000215
"FIL"="dBase 5.0"
"SafeTransactions"=dword:00000000
"UID"=""

[HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\dBASE Files\Engines]

[HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\dBASE Files\Engines\Xbase]
"CollatingSequence"="ASCII"
"Deleted"=hex:00
"ImplicitCommitSync"=""
"PageTimeout"=dword:00000005
"Statistics"=hex:00
"Threads"=dword:00000003
"UserCommitSync"="Yes"
Zitat:

Zitat von QuickAndDirty (Beitrag 1239092)
Habe eine System DSN und ein User DSN angeleget.

Hoffentlich gibt's da keinen Namenskonflikt.

Zitat:

Zitat von QuickAndDirty (Beitrag 1239092)
Die Connection parameter sehen bei mir für Firedac (ado können wir nicht einsetzen)

Firedac kenn ich noch nicht.

[QUOTE=QuickAndDirty;1239092]
Das Problem ist ich weiß nicht wie ich der ADConnection sage sie soll diese DSN benutzen.
Bei mir steht da einfach das hier.
Code:
ODBCAdvanced= DSN=Adressen3
Das führt nicht zu nem Fehler....aber wenn ich ein Querry absetze
Code:
Select * from Adressen
Meldet er:
Zitat:

Das Microsoft jet-Datenbankmodul konnte das Objekt 'Adressen' nicht finden. Stellen Sie sicher, dass das Objekt existiert und dass die Namens- Pfadandgaben richtig angegeben wurden.
Ich denke Du solltest die Fehlermeldung wörtlich nehmen.
Und wie sieht es mit den Zugriffsrechten aus?????

Gruß
K-H

QuickAndDirty 9. Dez 2013 14:09

AW: FireDAC->DBASE geht das?
 
Zitat:

Zitat von p80286 (Beitrag 1239113)
Ich denke Du solltest die Fehlermeldung wörtlich nehmen.

Die Datei heisst Adressen.dbf
der DSN heist Adressen3

Ich habe gelesen das es probleme mit dem Case der Zeichen gibt, alles sollte ganz Groß oder ganz klein geschrieben sein?

Zitat:

Zitat von p80286 (Beitrag 1239113)
Und wie sieht es mit den Zugriffsrechten aus?????

Adminsitrator auf ein WIN2K system

Union 9. Dez 2013 14:17

AW: FireDAC->DBASE geht das?
 
Du könntest alternativ einen ADS Treiber verwenden. Der wird direkt von FireDAC unterstützt (TFDPhysADSDriverLink). Das sind 2 Dll und fertig. Kein ODBC, keine Registry, keine Probleme.

p80286 9. Dez 2013 14:26

AW: FireDAC->DBASE geht das?
 
[OT]
Zitat:

Zitat von Union (Beitrag 1239130)
Du könntest alternativ einen ADS Treiber verwenden. Der wird direkt von FireDAC unterstützt (TFDPhysADSDriverLink). Das sind 2 Dll und fertig. Kein ODBC, keine Registry, keine Probleme.

So schön und es ist wahr?
[/OT]

Gruß
K-H

QuickAndDirty 9. Dez 2013 14:45

AW: FireDAC->DBASE geht das?
 
Zitat:

Zitat von Union (Beitrag 1239130)
Du könntest alternativ einen ADS Treiber verwenden. Der wird direkt von FireDAC unterstützt (TFDPhysADSDriverLink). Das sind 2 Dll und fertig. Kein ODBC, keine Registry, keine Probleme.

Wo finde ich die 2 DLLs?
[Edit]
Ich lade gerade arc32.exe herunter, ich denke das es das ist ?
[/Edit]

Union 9. Dez 2013 15:33

AW: FireDAC->DBASE geht das?
 
Eigentlich ist das das SQL-Tool zu ADS, aber es enthält wohl auch die Dlls. Es sind in den neueren Versionen 4 dll:
  • ace32.dll (Der eigentliche Treiber)
  • axcws32.dll (Die Kommunikationsschicht)
  • adsloc32.dll (Der embedded Server)
  • aicu32.dll (Die Unicode-Unterstützung)

Für dBase brauchst Du wahrscheinlich die 4. nicht. Die Installation schmiß früher die dlls immer ins system32. Dort holst Du Dir die dann raus und schiebst sie in Deinen Pfad bzw. zur Benutzung durch Arc32 in dessen Programmverzeichnis, dann ist das sauber.
[edit]
Die Client-Engine findest Du hier. Darauf wird auch in der FireDAC/ADS-Doku zu XE5 verwiesen.[/edit]


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:40 Uhr.
Seite 1 von 2  1 2      

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