|
|
sybperl-l Archive
Up Prev Next
From: Michael Peppler <mpeppler at peppler dot org>
Subject: RE: return status in last ct_fetch
Date: Feb 11 2004 4:10PM
On Wed, 2004-02-11 at 08:06, Wechsler, Steven wrote:
> Sorry, should have been more specific.
>
> I'm using ct_fetch in an array context, exactly as in your example below.
> The last ct_fetch (i.e. before an undef is returned) returns a 0 in the
> first column (probably the only column; haven't checked too carefully).
Are you fetching the results from a stored procedure?
My guess is that you are doing this:
while($dbh->ct_results($restype) == CS_SUCCEED) {
next unless $dbh->ct_fetchable($restype);
while(@data = $dbh->ct_fetch) {
...
}
}
A stored proc that includes a SELECT will return at least two result
sets, the first one being the SELECT, and the second (last) one is the
return status from the proc ($restype == CS_STATUS_RESULT).
Michael
> -----Original Message-----
> From: Michael Peppler [mailto:mpeppler@peppler.org]
>
> On Wed, 2004-02-11 at 07:20, Wechsler, Steven wrote:
> > Is there an easy fix for this? The last retrieval from ct_fetch always
> gives
> > me a 0.
>
> How do you mean that it gives you a 0?
>
> A normal fetch loop goes like this:
>
> while(@data = $dbh->ct_fetch) {
> ...
> }
> This exits when ct_fetch returns either an undef or a zero length array.
> Are you perhaps using "@data" in a scalar context?
>
> Michael
--
Michael Peppler Data Migrations, Inc.
mpeppler@peppler.org http://www.mbay.net/~mpeppler
Sybase T-SQL/OpenClient/OpenServer/C/Perl developer available for short
or long term contract positions - http://www.peppler.org/resume.html
|