Skip to Content.
Sympa Menu

freetds - [freetds] Results returned differently - change in driver?

freetds AT lists.ibiblio.org

Subject: FreeTDS Development Group

List archive

Chronological Thread  
  • 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.

Top of Page