On 1/2/07, Jim Winstead <[EMAIL PROTECTED]> wrote:
i'm trying to handle a bug report filed against DBD::mysql about getting this error using the exampe code below. (http://bugs.mysql.com/24244) but as far as i can tell, we are handling the AutoCommit attribute properly, and basically the same as other drivers. looking at the DBI.xs code, i see this comment: /* driver should have intercepted this and either handled it */ /* or set valuesv to either the 'magic' on or off value. */ but i can't find any documentation of these magic on and off values, and the other DBD drivers i've looked at don't appear to be doing anything special.
DBD::Informix does have to handle AutoCommit rather extensively - it is extremely painful but necessary. Some parts of the handling are in dbdimp.ec, others in dbdattr.ec. Whether what it does is relevant to MySQL is more debatable. However, some Informix databases have transaction support and others do not (logged vs unlogged databases). Further, some of those with transaction support implicitly do autocommit unless you explicitly start a multi-statement transaction (a simple logged database), and others implicitly start a transaction and it continues until you explicitly terminate it (a mode ANSI database). As you can imagine, dealing with autocommit correctly for all of these is hard. For example, if someone connects to an unlogged database with AutoCommit => 0, DBD::Informix generates an error -- the DB has no transactions so AutoCommit can only be on. -- Jonathan Leffler <[EMAIL PROTECTED]> #include <disclaimer.h> Guardian of DBD::Informix - v2005.02 - http://dbi.perl.org "I don't suffer from insanity - I enjoy every minute of it."
