Manuel Burghammer: disconnect und Fehlermeldung unter PERL

tagchen,

folgendes:

my $dbh = DBI->connect($data_source, $username, $password) die "Connect zu $data_source fehlgeschlagen: $DBI::errstr";
my $sth = $dbh->prepare(q{SELECT * FROM members}) die "Anweisung kann nicht vorbereitet werden: $DBI::errstr";
my $rc = $sth->execute() die "Anweisung kann nicht ausgefuehrt werden: $DBI::errstr";

($user_id) = $sth->fetchrow_array;

$rc = $dbh->disconnect;

an sich funktioniert das ganze wunderbar bis auf die zeile mit 'disconnect'...die verursacvht folgenden fehler:

DBI::db=HASH(0x1ae52bc)->disconnect invalidates 1 active statement handle (either destroy statement handles or call finish on them before disconnecting) at script line 26.

leider hab ich keine ahnung an was das liegen koennte, nur wenn ich das disconnect weglasse krieg ich immer die meldung das die verbindung abgebrochen ist :o(

versucht hab ich das ganze auf Win98 mit Perlbuilder und unter Linux mit Apache

thx 4 hlp

SoLong M.

  1. hallo,

    DBI::db=HASH(0x1ae52bc)->disconnect invalidates 1 active statement handle (either destroy statement handles or call finish on them before disconnecting) at script line 26.
    leider hab ich keine ahnung an was das liegen koennte, nur wenn ich das disconnect weglasse krieg ich immer die meldung das die verbindung abgebrochen ist :o(

    Das ist eigentlich keine Fehlermeldung, sondern eine Warnung. Es zeigt nur an, daß Du noch nicht alle Datensätze gelesen hast, welche Du mit deinem Select-Statement angefordert hast.

    verwende
    $sth-finish();
    um der Datenbank bzw. DBI mitzuteilen, daß Du keine weiteren Datensätze zu lesen wünscht, dann taucht diese Warnung auch nicht mehr auf.

    Grüße
       Klaus

    1. tagchen,

      verwende
      $sth-finish();

      sorry aber da bekomm ich nen internal server error und das serverlog sagt:

      Premature end of script headers: ....

      aber wenns nix macht ignorier ich die meldung halt :o)

      danke trotzdem

      1. $sth-finish();

        Es muss heissen:

        $sth->finish;

        Peter

        1. tagchen,

          gut....versuch ich das mal.....
          wenns nicht klappt ignorier ich die warnung einfach :o)