PEPPLER.ORG
Michael Peppler
Sybase Consulting
Menu
Home
Sybase on Linux
Install Guide for Sybase on Linux
General Sybase Resources
General Perl Resources
Freeware
Sybperl
Sybase::Simple
DBD::Sybase
BCP Tool
Bug Tracker
Mailing List Archive
Downloads Directory
FAQs
Sybase on Linux FAQ
Sybperl FAQ
Personal
Michael Peppler's resume

sybperl-l Archive

Up    Prev    Next    

From: "Avis, Ed" <avised at kbcfp dot com>
Subject: Bizarre ASE bug triggered by latest test DBD::Sybase
Date: Apr 25 2005 4:32PM

I believe the current (1.05.xx) test release of DBD::Sybase has changed
to use 'chained mode' if AutoCommit is off.  This has tickled a Sybase
bug which didn't appear with earlier DBD::Sybase versions.  Here's the
test program:

use warnings;
use strict;
use DBI;

my $dbh = DBI->connect('dbi:Sybase:server=IT_LN;database=fdenterprise_test', 'myuser', 'mypassword',
        { RaiseError => 1, AutoCommit => 0 });
#$dbh->do('set chained off');
my $sql = "SELECT
             sc.name,st.name,sc.length, CASE WHEN (sc.status & 8 = 8) THEN 1 ELSE 0 END
        FROM
             syscolumns sc,systypes st
        WHERE
             id = (select id from sysobjects where type='U' and name='addr')
        AND
             st.usertype = sc.usertype
        ORDER BY
             colid";
$dbh->do($sql);
disconnect $dbh;

This gives the error

DBD::Sybase::db do failed: Server message number=7713 severity=16 state=2 line=1 server=IT_LN text=Stored procedure '*ss1492368299_0739474268ss*' may be run only in unchained transaction mode. The 'SET CHAINED OFF' command will cause the current session to use unchained transaction mode.

Bizarre - I didn't call any stored procedure.  What is odder still is
that any change to the SQL text, even adding a newline on the end, stops
the error happening.  So I suspect some horrible memory trampling inside
Sybase.

Sure enough if I call 'set chained off' the problem goes away - but it
also subsides with an explicit 'set chained on'...

This isn't a bug in the new DBD::Sybase but it is a symptom of the
proposed behaviour change.  Has anyone else seen anything similar?

BTW, @@version contains

Adaptive Server Enterprise/12.5.3/EBF 12143/P/Sun_svr4/OS 5.8/ase125x/1883/32-bit/FBO/Fri Nov 12 03:23:21 2004

and the client machine is Linux RHEL3 with OCS-12.5.

-- 
Ed Avis