<P><STRONG>THIS HAS CHANGED IN VERSION 0.21!</STRONG></P>
<P>DBD::Sybase has the ability to handle multi-statement SQL commands
in a single batch. For example, you could insert several rows in
a single batch like this:</P>
<PRE>
$sth = $dbh->prepare("
insert foo(one, two, three) values(1, 2, 3)
insert foo(one, two, three) values(4, 5, 6)
insert foo(one, two, three) values(10, 11, 12)
insert foo(one, two, three) values(11, 12, 13)
");
$sth->execute;</PRE>
<P>If anyone of the above inserts fails for any reason then $sth->execute
will return <A HREF="../../../lib/Pod/perlfunc.html#item_undef"><CODE>undef</CODE></A>, <STRONG>HOWEVER</STRONG> the inserts that didn't fail will still
be in the database, unless <CODE>AutoCommit</CODE> is off.</P>
<P>It's also possible to write a statement like this:</P>
<PRE>
$sth = $dbh->prepare("
insert foo(one, two, three) values(1, 2, 3)
select * from bar
insert foo(one, two, three) values(10, 11, 12)
");
$sth->execute;</PRE>
<P>If the second <CODE>insert</CODE> is the one that fails, then $sth->execute will
<STRONG>NOT</STRONG> return <A HREF="../../../lib/Pod/perlfunc.html#item_undef"><CODE>undef</CODE></A>. The error will get flagged after the rows
from <CODE>bar</CODE> have been fetched.</P>
<P>I know that this is not as intuitive as it could be, but I am
constrained by the Sybase API here.</P>
<P>As an aside, I know that the example above doesn't really make sense,
but I need to illustrate this particular sequence... You can also see the
t/fail.t test script which shows this particular behavior.</P>
<P>
<HR>
<H1><A NAME="sybase specific attributes">Sybase Specific Attributes</A></H1>
<P>There are a number of handle attributes that are specific to this driver.
These attributes all start with <STRONG>syb_</STRONG> so as to not clash with any