Weiter Zurück [Inhalt] Online Suche im Handbuch

33.4 ODBC mit PERL

ODBC-Treiber können selbstverständlich mit verschiedensten Programmiersprachen angesprochen werden. Diese heißt unter Microsoft Windows Win32::ODBC. Die :: stehen für eine Klassenbibliothek in PERL.

Unter http://www.bitmechanic.com/mail-archives/dbi-users/ findet man ein Mail-Archiv für das PERL DBI (DataBase Interface) mit unzähligen Beispielen und Tips.

Hier ein kleines Beispiel für das Ansprechen von MySQL mit PERL32.EXE und Win32::ODBC unter Microsoft Windows 95/98/NT:

use Win32::ODBC;

    Third you open a connection to your database with (note that this
example checks for failure):

        $DSN = "My DSN";
        if (!($db = new Win32::ODBC($DSN))){
            print "Error connecting to $DSN\n";
            print "Error: " . Win32::ODBC::Error() . "\n";
            exit;
        }

    Fourth you execute your SQL command (NOTE: due to backward compatibility
with NT::ODBC the Sql()
    method returns undef if it was successful and a non zero integer error
number if it fails):

        $SqlStatement = "SELECT * FROM Foo";
        if ($db->Sql($SqlStatement)){
            print "SQL failed.\n";
            print "Error: " . $db->Error() . "\n";
            $db->Close();
            exit;
        }

    Fifth you fetch the next row of data until there are no more left to
fetch. For each row you retrieve data and
    process it:

        while($db->FetchRow()){
            undef %Data;
            %Data = $db->DataHash();
            ...process the data...
        }

    Sixth you close the connection to the database:

        $db->Close();
Das Beispiel stammt von David Roth, der auch die PERL ODBC-Treiber für UNIX geschrieben hat, und der eine sehr lesenswerte ODBC-Homepage anbietet:

http://www.roth.net/perl/odbc/faq/. Bei irgendwelchen Problemen mit ODBC-Treibern sollte man sich unbedingt zuerst hier umschauen.

Hier ein ähnliches Beispiel unter LINUX mit PERL:

#!/usr/bin/perl 
use DBI(); 
$dbh=DBI->connect("DBI:mysql:database=test;host=host","user","password") or 
print "$DBI::db_errstr\n"; 
Selbstverständlich können die Beispiele alle auch mit Embedded PERL, E-PERL u.s.w. zusammen mit dem APACHE-HTML-Server eingesetzt werden. Hierbei ändert sich die Schreibweise eventuell geringfügig.

Eine Referenz-Liste von Namhaften Unternehmen und Sites (Deutsche Bank, Siemens und www.deja.com) kann man auf http://perl.apache.org/embperl/Sites.pod.1.html#http_www_webpersonals_com_St einsehen.

Wer weitere Tips und Hinweise zu PERL such, der ist auf http://www.cgi-resources.com oder auf http://www.perl-archiv.de genau richtig.


Weiter Zurück [Inhalt] Online Suche im Handbuch