freetds AT lists.ibiblio.org
Subject: FreeTDS Development Group
List archive
[freetds] Results returned differently - change in driver?
- From: System Administrator <tech AT vircom.com.au>
- To: freetds AT lists.ibiblio.org
- Cc: devteam AT vircom.com.au
- Subject: [freetds] Results returned differently - change in driver?
- Date: Tue, 28 Oct 2003 14:59:02 +0800
Hi,
I have been using FreeTDS 0.51 with a bunch of Perl scripts to query a
number of MS SQL Server databases. Some time ago, I discovered that
certain queries did not return the correct results, and upgraded to
version 0.61 of the driver. This fixed that problem, but has introduced
another.
Previously, I could do something like this:
while (($one, $two, $three, $four, $five, $six, $seven) =
$sth->fetchrow_array())
{
print "$one \t$two \t$three \t$four \t$five \t$six \t$seven\n";
}
and, if the query did not return any results, the while loop would not
be entered. This is as I would expect. With version 0.61 of the driver, the
while loop is now entered, (it runs once), and the value of $one is set to 0.
This means that if I want to handle the case where queries may not
return any results, I now have to do something like this:
while ($sth->{syb_more_results})
{
while (($one, $two, $three, $four, $five, $six, $seven) =
$sth->fetchrow_array())
{
print "$one \t$two \t$three \t$four \t$five \t$six
\t$seven\n";
}
}
which is a huge pain, because there are hundreds of scripts that I would
have to modify. Is there any way that I can change the behaviour of the
driver so that empty result sets are handled like they used to be?
Regards,
Adam.
ps - I have tried using several different versions of DBD::Sybase, but
all versions behave the same.
- [freetds] Results returned differently - change in driver?, System Administrator, 10/28/2003
Archive powered by MHonArc 2.6.24.