MS Access zugriff - letzter Thread!

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
Antworten
EugenE
Beiträge: 440
Registriert: So 10. Dez 2006, 14:59
OS, Lazarus, FPC: MacOSX Lion 10.7 (L 0.9.31 FPC 2.7.1)
CPU-Target: 64Bit
Kontaktdaten:

MS Access zugriff - letzter Thread!

Beitrag von EugenE »

Hey

ich habe so langsam alles versucht was man mit den vorhandenen Komponenten nur machen konnte um mit MS-Access arbeiten zu können.

Ich habe es mit diesen Komponenten versucht:

ZeosLib:
- unterstützt ADO Zugriff, leider nicht unter FreePascal

tiOPF:
- die beispiele funktionieren nicht, da leider auch hier eigene Units für den ADO Zugriff fehlen

ODBC:
- man kann sich verbinden, leider keine METADATA ( Tabellen etc ) bekommen
- auch der Zugriff auf die System-Tabellen einer Access-Datei ist gesperrt

Man muss doch irgendwie auf eine MS-Access-Datenbank zugreifen können , davon die Tabellen, Spalten Namen/Typen etc bekommen können

Auch wenn der Zugriff nur auf Windows geht , das reicht mir dann schon, denn ich glaube kaum das jemand auf Linux ne MS-Access Datenbank braucht :-D

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: MS Access zugriff - letzter Thread!

Beitrag von mschnell »

EugenE hat geschrieben:Auch wenn der Zugriff nur auf Windows geht , das reicht mir dann schon, denn ich glaube kaum das jemand auf Linux ne MS-Access Datenbank braucht :-D
MS-Access ist ein SQL-Datenbank Client Programm. Es kann auf alle möglichen Datenbanken zugreifen (wie z.B. MS-SQL. MySQL, ...).

Ich vermute mit "MS-Access Datenbank" meinst Du die flat-File-basierende "Jet-Engine". Das ist eine (z.B.) mit Windows XP mitgelieferte DLL, die SQL-Zugriffe auf eine Datenbank erlaubt, die durch die DLL in einer Datei gemanaged wird. Es gibt außer Access noch jede Menge andere Programme, die (neben anderen SQL-Datenbanken) auch Jet-Engine-Datenbanken bearbeiten können. Dafür braucht in Windows MS-Office-Access auch nicht installiert sein, weil die Jet-DLLs ja schon vorhanden sind.

Da die Datei, die die Datenbank enthält auch von einem Linux-Rechner zugreifbar sein kann (kopiert oder via Netzwerk), ist es durchaus sinnvoll, wenn Linux-Programme mit Jet-Datenbanken arbeiten können. Ich vermute, dass bei OpenOffice sowohl die Windows-Version als auch die Linux Version das kann.

Ich habe mit Delphi keine Probleme gehabt, Jet-Datenbanken via ADO zu beackern. Wenn das nicht geht ist u.U. nicht die richtige Version der Jet-DLLs installiert. Was man aber in Linux installieren muss, um auf Jet-Datenbanken zuzugreifen, weiß ich nicht.

-Michael

piper62
Beiträge: 131
Registriert: Sa 5. Apr 2008, 17:57
OS, Lazarus, FPC: Linux (Debian, Xubuntu), MacOS X, MS Win, Android, Web
CPU-Target: 32Bit/64Bit
Wohnort: Ulm

Beitrag von piper62 »

Hallo,

wenn Du komplett auf MS-Access zugreifen musst, dann lohnt sich ev. ein Blick auf dieses Projekt: http://mdbtools.sourceforge.net/" onclick="window.open(this.href);return false;

Die haben ein Programm entwickelt mit dem sich MS-Access "DB-Dateien" öffnen und auslesen lassen. Da kann man sich sicher etwas abgucken.

Ansonsten faellt mir nur der direkte Zugriff z.B. über ODBC auf die Metadaten ein. Ich habe so etwas mal mit Studenten gemacht und es liessen sich schon Metadaten auslesen. Das ging sogar über den JDBC:ODBC Wrapper.
Bei Interesse kann ich den Code (allerdings java) mal raussuchen.

Gruss,
Tibor

EugenE
Beiträge: 440
Registriert: So 10. Dez 2006, 14:59
OS, Lazarus, FPC: MacOSX Lion 10.7 (L 0.9.31 FPC 2.7.1)
CPU-Target: 64Bit
Kontaktdaten:

Beitrag von EugenE »

Nabend bzw Nacht ^^

Habe mir vor paar Tagen mal aus langeweile das The Light Pascal Toolkit (LPTK) angeschaut, aufeinmal sehe das die ein kleines ODBC - Demo programm geschrieben haben, geladen, compiliert, läuft , mit diesem kann man die tabellen und die DSN's auslesen, schonmal TOP !

Ich werde versuchen diese beiden Sachen und wenn ich mehr finde auch mehr, in die normale TODBCConnection einzubauen dann müsste es alles laufen ( zumindest das nötigste zB, Tabellen, Spalten, Spaltentypen etc auslesen) , denn dann kann man die ODBC Schnittstelle endlich nutzen ^.^

Kennt jemand nen C-Framework für ODBC bzw fertige Snippets um zB die Spaltentypen auszulesen? weil würde es denke ich mal schneller gehen *g*

Wenn jemand lust kann er gerne mitmachen ( meldet sich eh keiner :-D )

Naja falls es jemanden interessiert, Es besteht noch hoffnung um MS-Access per ODBC in Lazarus zu "verarbeiten" ^^

Naja ich versuch mal am Wochenende bissel einzubauen, hoffe es klappt ^^

Gn8,
Eugen ^^

Antworten