[freetds] TODO reviewed
mpeppler at peppler.org
Mon Apr 11 13:07:43 EDT 2005
On Mon, 2005-04-11 at 18:16, Lowden, James K wrote:
> > From: Thompson, Bill D (London)
> > Sent: Monday, April 11, 2005 8:42 AM
> > > . ct_dynamic and friends needed for DBD::Sybase placeholder support
> > > Done?? Someone did accurate testing ??
> > yes, done and tested (to the best of my ability).
> > There is a ctlib/unittest for this functionality.
> > I haven't tested with DBD::Sybase, although I *think* I asked Michael
> > Peppler to do so if/when he had time.
> Hi Bill,
> I have CVS HEAD installed and the DBD::Sybase test t/exec.t fails. Did
> it ever work?
> I noticed two things:
> 1. DBD::Sybase seems to send "COMMIT TRANSACTION" with no corresponding
> BEGIN TRAN. It uses ct_options to set CS_OPT_CHAINXACTS (0x07) but
> ct_options is a one big noop:
You can build it to not use CS_OPT_CHAINXACTS and to use explicit
transactions (for AutoCommit OFF mode) instead.
You probably want to get the latest 1.05_01 for this - it fixes a couple
of problems with this specific issue.
> 2. The placeholder logic seems not to pass valid SQL to the server.
> Look at this code from t/exec.t:
> my $sth = $dbh->prepare("exec sp_helpindex \@objname = ?");
> ok(defined($sth), 'Prepare sp_helpindex');
> my $rc;
> $rc = $sth->execute("sysusers");
There are two placeholder uses in DBD::Sybase. The one that is exercised
by t/exec.t is actually using the RPC functionality
(ct_command(CS_RPC_CMD) and ct_param()).
The one exercised by t/place.t is the "real" ct_dynamic() functionality
(i.e. "select ... from foo where bar = ?").
Michael Peppler - mpeppler at peppler.org - http://www.peppler.org/
Sybase on Linux FAQ: http://www.peppler.org/FAQ/linux.html
More information about the FreeTDS