Zugriff auf Access Datenbank möglich? Welches Modul?
Silvia
- perl
Hi,
sorry ich bin noch recht neu im Perllager und habe nun eine Anfrage ob man mittels Perl auf eine Accessdatenbank (unter Linux Redhat) zugreifen kann.
Ich habe mal bei CPAN gesucht aber nur Oracle/SQL Module gefunden. Entweder siche ich in em Wust nicht richtig oder man kann das mit Perl nicht machen (glaub ich eher nicht).
Kann mir einer von euch Perlhackern sagen welches Modul man dafür nimmt und vielleicht auch sagen ob das gut geht oder obs da Probleme gibt.
vielen, vielen Dank
mfg
Silvia Heitmann
und zusammen sind wir das internet
Hallo Silvia,
Kann mir einer von euch Perlhackern sagen welches Modul man dafür nimmt und vielleicht auch sagen ob das gut geht oder obs da Probleme gibt.
Access-Datenbanken kannst Du über die ODBC-Module ansprechen. Da gibt's eigentlich zwei nennenswerte:
DBD::ODBC in verbindung mit DBI
und
Win32::ODBC
Wenn Du neuere Activestate-Versionen (ab Perl 5.005) verwendest, dann kannst Du die Module mit dem PPM-Tool installieren
entweder
ppm install DBD-ODBC
oder
ppm install Win32-ODBC
Bei beiden ist eine ausführliche HTML-Dokumentation dabei.
Sollte die nicht reichen, dann schau mal in das Buch 'Programming the Perl DBI' vom O'Reilly-Verlag
Grüße
Klaus
Hi,
danke! Ach und ich Dödel hab nach einem Modul gesucht was irgendwo "Access" drin stehen hat...
mfg
Silvia
Hallo Silvia,
Ich bin der Dödel. Ich hab wieder mal nicht genau genug Deine Frage gelesen.
Unter Linux wird schwierig sein, eine Access-Datenbank zu benutzen, da die von mir genannten Module für Win32 geschrieben wurden.
Es gibt zwar noch eine Möglichkeit, das ganze zu erledigen, die ist aber aufwendig.
Da gibts zum einen für Linux einen freien ODBC-Port. Ob und wie der von PErl unterstützt wird, kann ich nicht sagen.
Zum anderen gibts noch DBI::ProxyServer und DBD::Proxy.
Damit kann man auf Datenbanken zugreifen, _ohne_ das entsprechende Clients zur Verfügung stehen.
Dazu muß aber trotzdem eine Maschine vorhanden sein , welche auf diese Datenbank zugreift, in Deinem Falle also eine Win32-Maschine.
das würde dann so aussehen:
Du hast zwei Rechner, einen unter Linux und einen unter Win32 (NT vorzugsweise)
Auf dem Win32-Rechner ist Deine Datenbank und Perl mit den DBI-Modulen, DBI und DBI::ProxyServer und dem DBD::ODBC Modul.
Entsprechend der Dokumenation läßt Du eine DBI-Proxyserver darauf laufen.
Auf dem Linuxrechner wird neben DBI noch das DBD::Proxy-Modul installiert.
Dann kanst Du mit
$dsn = "DBI:Proxy:hostname=Win32Maschine;port=3334;dsn=DBI:ODBC:mydb";
$dbh = DBI->connect($dsn, "joe", "hello");
Die Datenbank ansprechen.
Ist aber ziemlich aufwendig.
Alternativ könntest Du natürlich auch auf eine MySQL-Datenbank ausweichen. Das funktioniert unter Linux super.
Grüße
Klaus
Hi,
uiuiui das sieht wirklich kompliziert aus... aber ich werde mal schaun. Vielleicht können wir ja auch auf SQL zurückgreifen. Vielen Dank auf jeden Fall für deine Mühe mit den Antworten!!!
mfg
Silvia Heitmann