<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: REAL Studio:  Is AutoCommit False by Default Bad?</title>
	<atom:link href="http://www.bkeeneybriefs.com/2010/02/real-studio-autocommit-false-by-default/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.bkeeneybriefs.com/2010/02/real-studio-autocommit-false-by-default/</link>
	<description>Software Development Using REAL Studio</description>
	<lastBuildDate>Tue, 07 Feb 2012 02:33:11 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: Nakiloe</title>
		<link>http://www.bkeeneybriefs.com/2010/02/real-studio-autocommit-false-by-default/comment-page-1/#comment-222</link>
		<dc:creator>Nakiloe</dc:creator>
		<pubDate>Mon, 01 Mar 2010 13:30:05 +0000</pubDate>
		<guid isPermaLink="false">http://www.bkeeneybriefs.com/?p=564#comment-222</guid>
		<description>Thanks for this article... I&#039;ve just discovered this change this morning... I&#039;m moving my project from RB 2008r3 to 2010r1 and didn&#039;t understand why my tables wasn&#039;t created anymore &#039;-_-. Then I&#039;ve read about this commit thing in forums and feared about the 2 hundreds sqlExecute that would need a db.Commit... By chance, I remembered that there was something like an &quot;autocommit&quot; boolean :P . 

Moving a project from a not so old version of RB is really a pain this time... :( (not talking about the fact that a recordset with no record is no longer EOF but nil... I&#039;ve had to change a ton of &quot;if&quot; statements)</description>
		<content:encoded><![CDATA[<p>Thanks for this article&#8230; I&#8217;ve just discovered this change this morning&#8230; I&#8217;m moving my project from RB 2008r3 to 2010r1 and didn&#8217;t understand why my tables wasn&#8217;t created anymore &#8216;-_-. Then I&#8217;ve read about this commit thing in forums and feared about the 2 hundreds sqlExecute that would need a db.Commit&#8230; By chance, I remembered that there was something like an &#8220;autocommit&#8221; boolean <img src='http://www.bkeeneybriefs.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' />  . </p>
<p>Moving a project from a not so old version of RB is really a pain this time&#8230; <img src='http://www.bkeeneybriefs.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  (not talking about the fact that a recordset with no record is no longer EOF but nil&#8230; I&#8217;ve had to change a ton of &#8220;if&#8221; statements)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Seth</title>
		<link>http://www.bkeeneybriefs.com/2010/02/real-studio-autocommit-false-by-default/comment-page-1/#comment-192</link>
		<dc:creator>Seth</dc:creator>
		<pubDate>Tue, 16 Feb 2010 14:35:17 +0000</pubDate>
		<guid isPermaLink="false">http://www.bkeeneybriefs.com/?p=564#comment-192</guid>
		<description>Prior to 5.1, REALSQLDatabase automatically did a commit when the program closed. I can kind of see how that isn’t 100% consistent with the documentation for AutoCommit, but my advice to REAL (if they had asked) would have been to add a line to the documentation explaining that that was the case instead of making a behind the scenes change that potentially causes people’s programs to “lose” data.

Of course, it&#039;s not too hard to simulate the old behavior if you have a global database object, you can just add a gDb.Commit to Application Close. I also try to always commit after a logical task in the program is complete, but there’s always the chance I missed a spot.</description>
		<content:encoded><![CDATA[<p>Prior to 5.1, REALSQLDatabase automatically did a commit when the program closed. I can kind of see how that isn’t 100% consistent with the documentation for AutoCommit, but my advice to REAL (if they had asked) would have been to add a line to the documentation explaining that that was the case instead of making a behind the scenes change that potentially causes people’s programs to “lose” data.</p>
<p>Of course, it&#8217;s not too hard to simulate the old behavior if you have a global database object, you can just add a gDb.Commit to Application Close. I also try to always commit after a logical task in the program is complete, but there’s always the chance I missed a spot.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: S-Copinger</title>
		<link>http://www.bkeeneybriefs.com/2010/02/real-studio-autocommit-false-by-default/comment-page-1/#comment-191</link>
		<dc:creator>S-Copinger</dc:creator>
		<pubDate>Mon, 15 Feb 2010 17:39:24 +0000</pubDate>
		<guid isPermaLink="false">http://www.bkeeneybriefs.com/?p=564#comment-191</guid>
		<description>Once again it is a sensible move that is not adequately flagged/explained by RS causing unneccessary confusion to users.

Most of my database projects use a standard DB object that deals with transactions and multiple database types, and has Autocommit set to false anyway. I only noticed when I loaded in an existing &quot;quick and dirty&quot; project which doesn&#039;t use it, and it took a few minutes to work out what was wrong -but of course I knew the code worked previously, and what Commit/Autocommit is all about anyway.

What the default should be is fairly arbitrary - good practice database is for Autocommit to be false, so it is fine for RB to default to that _providing this is made clear to users_. So IMO the fault is in the Language Reference and examples in not making clear to users what the implications are; and in RS not highlighting this as a &quot;major change&quot; for upgrading users. 

From RS&#039;s point of view it would not appear a major change (AIUI it will be one switch in the compilation of the SQLite code) but the change of almost any default will affect a lot of users. Likewise with the introduction of Foreign Key constraints in SQLite (yipee!) the SQLite default is having this off, and if RB shipped with this on, this would need to be highlighted even though it would affect hardly any upgrading users. (Incidentally, to switch it on using a Pragma command, you cannot be in a multistatement transaction, so having Autocommit true by default would simplify switching Foreign Key constraints on  ;-)  )</description>
		<content:encoded><![CDATA[<p>Once again it is a sensible move that is not adequately flagged/explained by RS causing unneccessary confusion to users.</p>
<p>Most of my database projects use a standard DB object that deals with transactions and multiple database types, and has Autocommit set to false anyway. I only noticed when I loaded in an existing &#8220;quick and dirty&#8221; project which doesn&#8217;t use it, and it took a few minutes to work out what was wrong -but of course I knew the code worked previously, and what Commit/Autocommit is all about anyway.</p>
<p>What the default should be is fairly arbitrary &#8211; good practice database is for Autocommit to be false, so it is fine for RB to default to that _providing this is made clear to users_. So IMO the fault is in the Language Reference and examples in not making clear to users what the implications are; and in RS not highlighting this as a &#8220;major change&#8221; for upgrading users. </p>
<p>From RS&#8217;s point of view it would not appear a major change (AIUI it will be one switch in the compilation of the SQLite code) but the change of almost any default will affect a lot of users. Likewise with the introduction of Foreign Key constraints in SQLite (yipee!) the SQLite default is having this off, and if RB shipped with this on, this would need to be highlighted even though it would affect hardly any upgrading users. (Incidentally, to switch it on using a Pragma command, you cannot be in a multistatement transaction, so having Autocommit true by default would simplify switching Foreign Key constraints on  <img src='http://www.bkeeneybriefs.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />   )</p>
]]></content:encoded>
	</item>
</channel>
</rss>

