On Tue, 2006-09-05 at 12:34 -0600, Reidy, Ron wrote:
> So, which is it - errors at 3.8M rows, or 350K rows?  When you get
> errors at 350K, are you array fetching or row-at-a-time fetching?  What
> does -1 mean in the error message?

I can't tell what driver Peter is using because it has not inserted its
name into the error - this is a bug in itself - it should appear in [ ]
after [unixODBC]. The -1 is SQL_ERROR and there should be a native error
too - that is also missing. I've no idea why it shows "SQL-" - this also
seems incorrect.

This probably does not help much other than to clarify that this driver
is not fully ODBC complaint in its error reporting.

Martin
-- 
Martin J. Evans
Easysoft Limited
http://www.easysoft.com

> -----Original Message-----
> From: Loo, Peter # PHX [mailto:[EMAIL PROTECTED] 
> Sent: Tuesday, September 05, 2006 12:15 PM
> To: Loo, Peter # PHX; Reidy, Ron; DBI-Users
> Subject: RE: :ODBC::st execute failed: [unixODBC]ERROR: crossed reserve
> : Out of memory
> 
> 
> Now I am getting the following error after fetching approximately
> 350,000 rows.
> 
> DBD::ODBC::st fetch failed: [unixODBC] (SQL-)(DBD: st_fetch/SQLFetch
> err=-1) at /usr/local/apps/ppv/devl/bin/sdl.pl line 228, <FH> line 53. 
> 
> Peter
> 
> -----Original Message-----
> From: Loo, Peter # PHX [mailto:[EMAIL PROTECTED] 
> Sent: Tuesday, September 05, 2006 10:45 AM
> To: Reidy, Ron; DBI-Users
> Subject: RE: :ODBC::st execute failed: [unixODBC]ERROR: crossed reserve
> : Out of memory
> 
> 
> Hi Ron,
> 
> I am returning approximately 3.8 million rows.  Here is the code:
> 
>   $sqlString = qq{ select   distinct x.ptnt_gid, x.prdct_gid,
> x.rx_fill_dte,
>                                      x.claim_gid, x.ovrd_days_sply_nbr,
>                                      x.clfsn_grace_prd_nbr, 'N',
>                                      x.rx_fill_dte +
> x.ovrd_days_sply_nbr,
>                                      x.rx_fill_dte -
> to_date('1980-01-01', 'YYYY-MM-DD'),
>                                      x.rx_fill_dte +
> (x.ovrd_days_sply_nbr * 2)
>                    from     p_dlvrb_rx_claim_extract x,
> p_dlvrb_ptnt_list y
>                    where    x.dlvrb_gid = y.dlvrb_gid
>                    and      x.ptnt_gid = y.ptnt_gid
>                    order by x.ptnt_gid, x.prdct_gid, x.rx_fill_dte,
> x.claim_gid };
>   $sqlString =~ s/\s+/ /g;
>   print STDERR "sqlString is: $sqlString\n";
>   $sth = sub_prepare($driver, $dbh, $sqlString);
>   $sth = sub_execute($driver, $dbh, $sth);
>   my ($ptnt, $prdct, $fill_dte, $claim, $days_sply, $grace, $class,
> $cted, $since);
>   $sth->bind_columns( undef, \$ptnt, \$prdct, \$fill_dte, \$claim,
> \$days_sply, \$grace, \$class, \$cted, \$since, \$twice ); 
> 
> 
> LINE 88 of GlobalRoutines.pm
> 
>   sub sub_execute($$$) {
>     print STDERR "\n***** sub_execute() *****\n\n";
>     my ($dbDriver, $dbh, $sth) = @_;
>     print STDERR "DATABASE DRIVER IS:         $dbDriver\n";
>     print STDERR "DATABASE HANDLE IS:         $dbh\n";
>     print STDERR "STATEMENT HANDLE IS:        $sth\n";
>     eval { $sth->execute(); };                <<<<<<<<<<<<<<<<<<<<<<
>     if ($@) {
>       $MESSAGE = "sub_execute() - $@";
>       $STATUS = $FAILURE;
>       sub_exit();
>       }
>     print STDERR "RETURN STATEMENT HANDLE IS: $sth\n\n";
>     return($sth);
>     } #<=== (End of sub_execute)
> 
>  
> Peter
> 
> -----Original Message-----
> From: Reidy, Ron [mailto:[EMAIL PROTECTED]
> Sent: Tuesday, September 05, 2006 10:41 AM
> To: Loo, Peter # PHX; DBI-Users
> Subject: RE: :ODBC::st execute failed: [unixODBC]ERROR: crossed reserve
> : Out of memory
> 
> Sure,
> 
> What are you doing in GlabalRoutines.pm at line 88?  Are you fetching a
> large result set into memory (hash or array)?
> 
> --
> Ron Reidy
> Lead DBA
> Array BioPharma, Inc.
> 
> -----Original Message-----
> From: Loo, Peter # PHX [mailto:[EMAIL PROTECTED]
> Sent: Tuesday, September 05, 2006 11:38 AM
> To: DBI-Users
> Subject: DBD::ODBC::st execute failed: [unixODBC]ERROR: crossed reserve
> : Out of memory
> 
> Hi,
>  
> Will you kindly tell me what this error message is talking about?
>  
> DBD::ODBC::st execute failed: [unixODBC]ERROR:  crossed reserve : Out of
> memory
>  (SQL-HY000)(DBD: st_execute/SQLExecute err=-1) at
> /usr/local/apps/common/devl/bin/GlobalRoutines.pm line 88, <FH> line 53.
>  
> Thanks.
>  
> Peter
> 
> This electronic message transmission is a PRIVATE communication which
> contains information which may be confidential or privileged. The
> information is intended to be for the use of the individual or entity
> named above. If you are not the intended recipient, please be aware that
> any disclosure, copying, distribution or use of the contents of this
> information is prohibited. Please notify the sender  of the delivery
> error by replying to this message, or notify us by telephone
> (877-633-2436, ext. 0), and then delete it from your system.
> 
> 
> 
> This E-mail message is for the sole use of the intended recipient(s) and
> may contain confidential and privileged information.  Any unauthorized
> review, use, disclosure or distribution is prohibited.  If you are not
> the intended recipient, please contact the sender by reply E-mail, and
> destroy all copies of the original message.
> 
> 
> This E-mail message is for the sole use of the intended recipient(s) and
> may contain confidential and privileged information.  Any unauthorized
> review, use, disclosure or distribution is prohibited.  If you are not
> the intended recipient, please contact the sender by reply E-mail, and
> destroy all copies of the original message.
> 
> 


Reply via email to