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: "Orton, Yves" <yves dot orton at de dot mci dot com>
Subject: RE: About prepared statements asnd transactions....
Date: Oct 12 2005 9:10AM

Edward J. Sabol wrote on Wednesday, October 12, 2005 1:01 AM
> Yves Orton wrote:
> > The main issue for me is that currently prepared handles +
> > transasctions are dangerous.
> They are? How so exactly? I've used prepare_cached() within 
> transactions in several Web applications in a mod_perl environment for a 
> couple years now and I haven't encountered any problems.
> Do you mean "*active* statement handles"? Like when you have an active
> statement handle and then you prepare/execute another 
> statement handle which transparently opens up a separate DBI connection? 

Yes this is precisely the issue I mean.  Dangerous as a description is
perhaps a touch drammatic, but not wrong.

> Because that can lead to inconsistent transactional behavior. 

Yep. And if you've missed the bit of the docs that explains this behaviour
extremely perplexing. :-)

> It would be really nice if DBD::Sybase could better support multiple
active sth's over 
> a single dbh. I know this is still one of the problems preventing easy
> of Bugzilla to Sybase.

This is exactly what I was trying to address. 

> While, it's arguably poor program design to need multiple 
> active statement handles, most every DBD supports it *except* for
> DBD::Mysql and DBD::Pg (for older versions of PostgreSQL only) emulate the

> capability of having multiple active sth's per dbh by reading all the data
from an
> unfinished sth into memory when a second sth is executed. I 
> suggested adding similar emulation of this capability to DBD::Sybase to 
> Michael in February 2004, but nothing came of it, AFAIK.

And I guess that's exactly what I want. I think tho I misunderstood the
problem and therefore suggested the incorrect remedy. I thought that you
could have multiple active statements so long as they don't use
placeholders, so avoiding them seemed the solution, I guess im wrong there?