Axel: DBI, ODBC oder was?

Hallo,

habe mal eine Frage zum Abfragen von Datenbanken unter Perl. Mein Auftrag:
ich soll aus sehr verschiedenen Datenbanken (DB2, etc.) Daten herauslesen, in bestimmter Weise bearbeiten und in eine bestehende Excel-Datei schreiben.

Was Datenbanken betrifft, habe ich mit MySQL gute Erfahrungen und kann diese mit Perl-Skripten auch mittlerweile vorwärts und rückwärts ausquetschen, bzw. mittels CGI dynamisch im Internet abrufen lassen. Das Anzapfen anderer Datenbanken habe ich bisher noch nicht gemacht. Ist alles genauso.

Welches Modul soll man da eigentlich benutzen:
DBI (was ich kenne) oder ODBC

oder sind das gar keine Alternativen, braucht man vielleicht sogar beide?

Und um in die Excel-Datei zu schreiben, brauche ich doch wohl ODBC oder?

Ihr seht: eine Menge Beratungsbedarf. Hoffe, Ihr könnt mir helfen.
Gleich vorab: komplette Alternativlösungen (Ausgabe statt in Excel als Html oder so) kommen nicht in Betracht, da mein Auftraggeber das nicht will.

Vielen Dank!

Axel

  1. Hallo,

    Welches Modul soll man da eigentlich benutzen:
    DBI (was ich kenne) oder ODBC

    eine kleine Hilfestellung
    http://perlbase.xwolf.de/cgi-bin/perlbase.cgi?display=16&id=3

    oder sind das gar keine Alternativen, braucht man vielleicht sogar beide?

    ODBC gibts einmal als Layer für DBI und auch als Win32::ODBC Modul.

    Es kommt ggf. auf die Datenquelle an was du nimmst. Für ne db2 kannst du auch einen lokalen DSN erstellen und darauf entweder mit DBI::ODBC oder mit Win32::ODBC drauf zugreifen.

    Und um in die Excel-Datei zu schreiben, brauche ich doch wohl ODBC oder?

    Nicht unbedingt. Wenn du jedoch eine Excel-Datei in eine Access-DB einbettest (Verknüpfung!), da kannst du mit ODBC Daten lesen und schreiben. Alternative: Das Ole-Modul (siehe PERLDoku).

    Gruss, Rolf

    --
    KnowHow veröffentlichen statt Patentieren!
  2. Hallo,

    Welches Modul soll man da eigentlich benutzen:
    DBI (was ich kenne) oder ODBC

    Es gibt zwar ein DBD-Modul für DB2, ob DU das aber so einfach unter Windows zum Laufen bekommst, ist fraglich. Wenn nicht bleibt immer noch ODBC als ausweg, wobei ich hier auf DBD::ODBC und DBI setzen würde, als Win32::ODBC, da letzeres Modul doch einige Nachteile mit sich bringt (anderes Interface, man kann nicht mehrere Query-Statements innerhalb einer Connection gleichzeitig offen halten usw.).

    Und um in die Excel-Datei zu schreiben, brauche ich doch wohl ODBC oder?

    Nicht unbedingt. Ich habe schon vor längerer ZEit einmal mit den Modulen Spreadsheet::WriteExcel und Spreadsheet::ParseExcel gearbeitet und recht gute Erfahrungen damit gemacht.

    Grüße
      Klaus