Re: DBD::ODBC Destroy bug?

"Martin J. Evans" <[email protected]>
Newsgroups gmane.comp.lang.perl.modules.dbi.general
Message-ID <[email protected]>
On 31/03/15 06:04, Joel Plotkin wrote:
> Hi,
>
> I've attached the sample test8.pl <http://test8.pl> script (smallest one possible that creates the problem) and a trace file at level 15.
>
> Thanks for any insight,
>
> Joel
>
>
     -dbd_st_execute(ac3cb0)=-1
     <- execute= -1 at test8.pl line 74 via  at test8.pl line 53
     -> DESTROY for DBD::ODBC::st (DBI::st=HASH(0xac3818)~INNER) thr#974010
     SQLFreeHandle(stmt)=-1
     !!dbd_error2(err_rc=-1, what=st_destroy/SQLFreeHandle(stmt), handles=(c2abd0,c2b1c0,c802c0)
     ** No error found -1 **
     !! ERROR: 1 '    Unable to fetch information about the error' (err#1)
     <- DESTROY= undef at test8.pl line 54 via  at test8.pl line 54
     !! ERROR: 1 CLEARED by call to fetchall_arrayref method

This is suspicious - SQLFreeHandle failed and then the error was cleared.

I cannot reproduce and we need further clues.

Instead of starting tracing in the script could you rerun with DBI_TRACE=DBD=x.log

e.g.,
set DBI_TRACE=DBD=x.log
perl myscript.pl

This will put in the x.log file a load of ODBC info for the driver etc - could you send me the whole log file.

Another thing well worth doing is enabling tracing at the ODBC level as then we can try and find out why SQLFreeHandle is failing. You can do this by going to the ODBC administrator (make sure you pick the right one 32 bit or 64 bit depending on what your perl is) and selecting the tracing tab, enter a file and click on start then run your script.

Martin
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.