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: "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
porting 
> 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::Sybase. 
> 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? 

Yves