Michael Peppler
Sybase Consulting
Sybase on Linux
Install Guide for Sybase on Linux
General Sybase Resources
General Perl Resources
BCP Tool
Bug Tracker
Mailing List Archive
Downloads Directory
Sybase on Linux FAQ
Sybperl FAQ
Michael Peppler's resume

sybperl-l Archive

Up    Prev    Next    

From: Michael Peppler <mpeppler at peppler dot org>
Subject: Re: Transactions errors with DBD-Sybase-1.05
Date: Mar 22 2005 7:12PM

On Tue, 2005-03-22 at 20:04, David Barnwell wrote:
> Hi,
> I've hit some problems executing transactions and rollbacks with
> DBD-Sybase-1.05 and FreeTDS 0.63RC10. My client system runs Red Hat
> Enterprise Linux 3 and perl-5.8.0-88.4, and the server is SQL Server 2000.
> The code I use is based on the example in The central part is:
>    $dbh->{AutoCommit} = 0;
>    $dbh->{RaiseError} = 1;
>    eval {
>       my $sth = $dbh->prepare($sql);
>       $sth->execute;
>       $sth->finish;

Why do you call finish() here?

>       $dbh->commit;
>    };
>    if ($@) {
>       eval { $dbh->rollback };
>    }
> The SQL statement executes a stored procedure that updates a table. This
> works fine with DBD-Sybase-1.04 and FreeTDS 0.63RC10. The procedure is
> executed OK and the table is updated.
> However, the program fails with DBD-Sybase-1.05. The SQL is executed and
> the table is updated, but the transaction fails with the following error
> message:
>    Attempt to initiate a new SQL Server operation with results pending

Please post (or send me) a trace with DBI->trace(5).

Michael Peppler  -  -
Sybase DBA/Developer
Sybase on Linux FAQ: