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.



Antworten:


Schreibe eine Antwort

Name:   
E-Mail:  

Thema:

Kommentar:

Optionale Link URL:   
Link Titel:                  
Optionale Image URL:


[ Antworten ] [ Forum ]