db2-abfrage mittels perl-skript
[ ruban.de ] [ Antworten ] [ Forum ]
Geschrieben von Karsten on Oktober 25, 2002 um 10:40:
Hallo allerseits, Ich habe folgendes Problem: Ich habe eine html-Datei in der durch ein Buttonklick ein Perl-Skript aufgerufen wird, welches eine db2-Abfrage realisieren soll. Starte ich nur das Perl-Skript von der Kommandozeile aus, dann funktioniert die Abfrage. (System ist AIX Version 4.3.3) Wird das Skript jedoch durch den Buttonclick gestartet, dann werden die db2-Umgebungsvariablen nicht gesetzt, ich erhalte folgende Fehlermeldung: Total environment allocation failure! Did you set up your db2 Client Environment? Die Abfrage ist: use DBI; use DBD::DB2::Constants; my $database='DBI:DB2:sysperf'; my $user='nobody'; my $password='nobody'; my $dbh = DBI->connect($database, $user, $password) #Beim connect tritt der Fehler auf or die "Can't connect to database: $DBI::errstr\n"; $stmt .= "SELECT hostname "; $stmt .= "FROM db2inst.konf "; my $sth = $dbh->prepare($stmt); my $rc = $sth->execute or die "Can't execute statement: $DBI::errstr\n"; $i = 0; while( ($hostname) = $sth->fetchrow() ) { $array[$i] = $hostname; $i++; } $sth->finish; $dbh->disconnect(); Der httpd erhält standardmässig den nobody-User. Deswegen die Einträge bei $user und $password. Ist dies auch der User, wenn ich z.B. per Internet Explorer auf diesen Rechner zugreife und die Abfrage gestartet wird? Warum wird die db2-Umgebung nicht gesetzt? Wo bzw. für welchen User muss die db2-Umgebung gesetzt werden, oder anders warum funktioniert die Abfrage nicht? Wie gesagt, wenn ich nur das Skript starte ( z.B. bin ich dann User db2inst, lass die Einträge in $user und $password leer und die Umgebung ist eingerichtet) dann läuft es. Am Code liegt es also nicht. Bin euch dankbar für jeden Tipp.
Schreibe eine Antwort
|