Silvia: Zugriff auf Access Datenbank möglich? Welches Modul?

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

  1. und zusammen sind wir das internet

  2. 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

    1. Hi,

      danke! Ach und ich Dödel hab nach einem Modul gesucht was irgendwo "Access" drin stehen hat...

      mfg
      Silvia

      1. 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

        1. 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