This is part of The Pile, a partial archive of some open source mailing lists and newsgroups.
Subject: RE: fetchrow_array within while loop problem From: Doug Wilson <dougw@safeguard.net> Date: Thu, 8 Jun 2000 14:26:24 -0700 Ilya Sterin <ideas_pc@usa.com> wrote: > >Can anyone help me. When I run this script it seems to > >execute fine when I fetch each row separately, but when I > >put in a while loop it dies with no error messages. The > >program just stops executing at that point. I couldn't > >fit the whole script on here but the use DBI; and the > >$stmt assignment are all there before the connect. For > >some reason it doesn't like the while loop. > > > >$db = DBI->connect($data_source, $loginID, $password, > 'Oracle', {AutoCommit > >=> 0, RaiseError => 1}) or die $DBI::errstr; > >$db->quote($stmt); > >$sth = $db->prepare($stmt) > >or die $DBI::errstr; > >$sth->execute() or die $DBI::errstr; > > > >@code_value_list = (); > >@code_description_list = (); > >$number = 0; > > > >while(($code_value, $code_description) = > $sth->fetchrow_array() or die > >$DBI::errstr) { > >$code_value =~ s/ *$//; > >$code_description =~ s/ *$//; > >$code_value_list[$number] = $code_value; > >$code_description_list[$number] = $code_description; > >$number = $number + 1; > > > >} Alan Sparks" <asparks@cpd.harris.com> wrote: > I think you have major problems with the "or die" stuff > you're enclosing in > the while condition. Highly suggest you remove this and test again. Ilya Sterin [mailto:ideas_pc@usa.com] wrote: > I've ran the script without it too earlier, it did the > same thing. I thought I would add this to see the > problem, it then printed the error "died at line #96". So > either way it died at that point. Thanks for the reply, > does any one have any more suggestions?? With the 'RaiseError' set, you should not need the 'or die' clauses on the DBI related lines; the die's would not even be executed in that case. Also, the connect statement has 'Oracle' in between the password and the attribute arguments; is that a problem, or just something I don't know about? ===