Paul,

FYI this is now fixed in my as yet unreleased 1.02.

Thanks!

Jeff

> 
> This is the situation in which I've found the finish() method 
> to be required using DBD::ODBC. It appears that every second 
> execute statement is dying.  I am using: WinXP Perl 5.8.0 
> (ActiveState) DBI 1.30 (from ActiveState) DBD::ODBC 0.43 
> (from ActiveState)
> 
> Paul
> 
> ### CODE ##########
> use strict;
> use DBI;
> 
> my $dbh = DBI->connect("dbi:ODBC:test_data");
> 
> my $sql1 = "select daughter from daughters";
> my $sql2 = "select count(*) from spot_assignment where 
> daughter = ?"; my $sth1 = $dbh->prepare($sql1); my $sth2 = 
> $dbh->prepare($sql2);
> 
> $sth1->execute();
> 
> while (my $daughter = $sth1->fetchrow_array()) {
>       $sth2->execute($daughter);
>       my $count = $sth2->fetchrow_array();
> 
>       if ($count) {
>               print "$daughter\t$count\n";
>               }
> 
>       # $sth2->finish() # if this is uncommented runs smoothly
>       }
> 
> ### Output ########
> H3006D11        1
> DBD::ODBC::st execute failed: [Microsoft][ODBC Driver 
> Manager] Invalid cursor state (SQL-24000)(DBD: 
> st_execute/SQLExecute err=-1) at test.pl line 15.
> H3006E01        7
> DBD::ODBC::st execute failed: [Microsoft][ODBC Driver 
> Manager] Invalid cursor state (SQL-24000)(DBD: 
> st_execute/SQLExecute err=-1) at test.pl line 15.
> 
> 
> 


Reply via email to