Yes, AutoCommit => 0
when I switch the order:
$sth->rollback;
$sth->finish;
I get this error @ ->rollback :
DBD::Sybase::db rollback failed: OpenClient message: LAYER = (1) ORIGIN = (1) SEVERITY = (1) NUMBER = (49)
Server ETMA_NYDEV_DS, database
Message String: ct_send(): user api layer: external error: This routine cannot be called because another command structure has results pending.
Now the code looks like this:
my %attr = ( 'RaiseError' => 1,
'PrintError' => 1,
'ChopBlanks' => 1,
'AutoCommit' => 0,
);
print "establishingh connection\n";
my $dbh = DBI->connect("dbi:Sybase:server=ETMA_NYDEV_DS;database=tss_d
+s_dev2","uid","******", \%attr);
print "preparing call to PerlTest sp\n";
my $sth = $dbh->prepare("exec PerlTest2 \@RetVal = ? OUTPUT, \@SomePar
+am = ? ");
$sth->bind_param(1, undef, SQL_INTEGER);
$sth->bind_param(2, "val1", SQL_VARCHAR);
print "executing...\n";
$sth->execute;
$sth->bind_param(1, undef);
$sth->bind_param(2, "val22");
$sth->execute; # exec again...
print "rolling back...\n";
# lets rollback
$dbh->rollback;
$sth->finish;
print "finishing...\n";
$dbh->disconnect;
close dbh;
print "----disconnected------\n";
exit 0;
|