Hallo zusammen,
hat es irgendwer geschaft, eine dBase IV Datei per SQL über ODBC anzusprechen?
Wenn ja, dann bitte ein Anweisung, wie dies zu berkstelligen ist.
mit Gruß
Werner
[gelöst] dBase IV und SQL
[gelöst] dBase IV und SQL
Zuletzt geändert von wega am Mi 1. Feb 2012, 19:29, insgesamt 1-mal geändert.
-
- Beiträge: 6
- Registriert: Fr 26. Okt 2007, 12:27
- OS, Lazarus, FPC: Win (L 0.9.30 FPC 2.4.2)
- CPU-Target: 32Bit
Re: dBase IV und SQL
Hallo Werner,
mal in kurzen Stichworten, bei mir unter Vista:
Benutzer-DSN hinzufügen, den Microsoft dBase Treiber auswählen, einen beliebigen Datenquellennamen angeben und statt der Markierung für das aktuelle Verzeichnis den konkreten Pfad und die gewünschte dBase Datei auswählen. Fertig.
In Lazarus eine Komponente ODBCConnection auf's Formular ziehen, den FileDSN Eintrag und den richtigen Driver "Driver do Microsoft dBase (*.dbf)" angeben. Dann sollte sich schon mal die Verbindung mit connected herstellen lassen.
Anschliessend noch eine SQLTransaction verwenden mit Verbindung zur ODBCConnection über die Database und active setzen.
Dann noch eine SQLQuery dazu mit Angabe der richtigen Database und im SQL ein select eintragen und sollte gehen.
Persönlich denke ich aber, dass dBase mittlerweile nicht mehr verwendet werden sollte. Insbesondere aufgrund der ganzen Index- und Löschprobleme, die es damit immer wieder mal gibt. Ich verwende das schon Jahre nicht mehr. Warum verwendest Du nicht SQLite? Das funktioniert für kleine lokale Datenbanken absolut problemlos und braucht auch keine ODBC Krücken für SQL Abfragen. Für einen Mehrbenutzerzugriff verwende ich im allgemeinen dann Firebird. Den gibt's zwar auch als embedded Variante, da ist SQLite aber noch ein bischen schlanker und mir persönlich somit lieber.
Gruss Mike
mal in kurzen Stichworten, bei mir unter Vista:
Benutzer-DSN hinzufügen, den Microsoft dBase Treiber auswählen, einen beliebigen Datenquellennamen angeben und statt der Markierung für das aktuelle Verzeichnis den konkreten Pfad und die gewünschte dBase Datei auswählen. Fertig.
In Lazarus eine Komponente ODBCConnection auf's Formular ziehen, den FileDSN Eintrag und den richtigen Driver "Driver do Microsoft dBase (*.dbf)" angeben. Dann sollte sich schon mal die Verbindung mit connected herstellen lassen.
Anschliessend noch eine SQLTransaction verwenden mit Verbindung zur ODBCConnection über die Database und active setzen.
Dann noch eine SQLQuery dazu mit Angabe der richtigen Database und im SQL ein select eintragen und sollte gehen.
Persönlich denke ich aber, dass dBase mittlerweile nicht mehr verwendet werden sollte. Insbesondere aufgrund der ganzen Index- und Löschprobleme, die es damit immer wieder mal gibt. Ich verwende das schon Jahre nicht mehr. Warum verwendest Du nicht SQLite? Das funktioniert für kleine lokale Datenbanken absolut problemlos und braucht auch keine ODBC Krücken für SQL Abfragen. Für einen Mehrbenutzerzugriff verwende ich im allgemeinen dann Firebird. Den gibt's zwar auch als embedded Variante, da ist SQLite aber noch ein bischen schlanker und mir persönlich somit lieber.
Gruss Mike
Re: dBase IV und SQL
Hallo Mike,
Danke für die ausführliche Antwort.
dBase habe ich gewählt, weil es in Lazarus eingebettet ist und somit keine Probleme beim Übertrag auf einen anderen Rechner macht.
Aber dennoch, Deine Anmerkungen sind mehr als eine Überlegung wert.
mit Gruß
Werner
Danke für die ausführliche Antwort.
dBase habe ich gewählt, weil es in Lazarus eingebettet ist und somit keine Probleme beim Übertrag auf einen anderen Rechner macht.
Aber dennoch, Deine Anmerkungen sind mehr als eine Überlegung wert.
mit Gruß
Werner
- af0815
- Lazarusforum e. V.
- Beiträge: 6809
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: dBase IV und SQL
DBASE ist eine Desktopdatenbank und keine Datenbank die mittels SQL angsprochen werden kann. Siehe auch LazInfos.
Unter Delphi konnte die BDE eine SQL Abstraktionschicht einziehen die Desktopdatenbanken SQL fähig gemacht hat. Die hat aber SQL für die verschiedenen Desktopdatenbanken ganz einfach (tw. genial) emuliert.
Unter Lazarus ist diese abstraktionsschicht nicht vorhanden. Zusätzlich ist das DBASE Format etwas veraltet und es gibt aktuellere Desktopdatenbanken (z.B. SQLite), die auch SQL unterstützen.
Unter Delphi konnte die BDE eine SQL Abstraktionschicht einziehen die Desktopdatenbanken SQL fähig gemacht hat. Die hat aber SQL für die verschiedenen Desktopdatenbanken ganz einfach (tw. genial) emuliert.
Unter Lazarus ist diese abstraktionsschicht nicht vorhanden. Zusätzlich ist das DBASE Format etwas veraltet und es gibt aktuellere Desktopdatenbanken (z.B. SQLite), die auch SQL unterstützen.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Re: dBase IV und SQL
Dr odbc dbase treiber emuliert sql in dem fall geht also schon.
Emfehlen möcht ichs trotsdem nicht
Emfehlen möcht ichs trotsdem nicht
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/