<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.0.4" -->
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
	<title>Comments on: AIR Cairngorm 2.0</title>
	<link>http://www.ericfeminella.com/blog/2008/06/22/air-cairngorm-20/</link>
	<description></description>
	<pubDate>Thu, 20 Nov 2008 14:28:56 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.0.4</generator>

	<item>
		<title>by: mark</title>
		<link>http://www.ericfeminella.com/blog/2008/06/22/air-cairngorm-20/#comment-104350</link>
		<pubDate>Sat, 30 Aug 2008 03:23:33 +0000</pubDate>
		<guid>http://www.ericfeminella.com/blog/2008/06/22/air-cairngorm-20/#comment-104350</guid>
					<description>how to use "create table" to define fields type and fields in air caingorm?

Thanks

M</description>
		<content:encoded><![CDATA[<p>how to use &#8220;create table&#8221; to define fields type and fields in air caingorm?</p>
<p>Thanks</p>
<p>M
</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: mark</title>
		<link>http://www.ericfeminella.com/blog/2008/06/22/air-cairngorm-20/#comment-104346</link>
		<pubDate>Sat, 30 Aug 2008 03:10:14 +0000</pubDate>
		<guid>http://www.ericfeminella.com/blog/2008/06/22/air-cairngorm-20/#comment-104346</guid>
					<description>I have fixed the error.

I have many tables in the SQlite database , how to define all the table names.

Thanks

Mark</description>
		<content:encoded><![CDATA[<p>I have fixed the error.</p>
<p>I have many tables in the SQlite database , how to define all the table names.</p>
<p>Thanks</p>
<p>Mark
</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: mark</title>
		<link>http://www.ericfeminella.com/blog/2008/06/22/air-cairngorm-20/#comment-104180</link>
		<pubDate>Fri, 29 Aug 2008 21:29:26 +0000</pubDate>
		<guid>http://www.ericfeminella.com/blog/2008/06/22/air-cairngorm-20/#comment-104180</guid>
					<description>I get  the following error:

Unable to resolve resource bundle "queries" for locale "en_US".

How to fix this.

Thanks

M</description>
		<content:encoded><![CDATA[<p>I get  the following error:</p>
<p>Unable to resolve resource bundle &#8220;queries&#8221; for locale &#8220;en_US&#8221;.</p>
<p>How to fix this.</p>
<p>Thanks</p>
<p>M
</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: Jason</title>
		<link>http://www.ericfeminella.com/blog/2008/06/22/air-cairngorm-20/#comment-103479</link>
		<pubDate>Thu, 28 Aug 2008 20:21:03 +0000</pubDate>
		<guid>http://www.ericfeminella.com/blog/2008/06/22/air-cairngorm-20/#comment-103479</guid>
					<description>Hey Eric - I just upgraded from your initial blog post version which I had been tweaking.  It was pretty smooth update and I'm happy to be back on the official version.  My AbstractAIRDelegate is acting as an adapter, implements ISQLResponder and handles the result/fault events internally, converts them to regular mx.rpc Events and passed those back to the initial command/responder.  I find this nice and clean so only the delegate communicates with AIRCairngorm and my command and responder classes only deal with VOs and rpc Events.  If felt like the command/responder was tightly coupled with AIRCairngorm otherwise, but maybe it's just me?!

Anyway I have one question regarding execute and executeAsync.  Since this behavior is set when the connection is opened - do you think it would be a good idea to keep track of the connection type and throw an exception if execute is called when openAsync was specified, or vice versa?  I don't see in the code where this would be handled.

Thanks for providing this little API, it's extremely handy.</description>
		<content:encoded><![CDATA[<p>Hey Eric - I just upgraded from your initial blog post version which I had been tweaking.  It was pretty smooth update and I&#8217;m happy to be back on the official version.  My AbstractAIRDelegate is acting as an adapter, implements ISQLResponder and handles the result/fault events internally, converts them to regular mx.rpc Events and passed those back to the initial command/responder.  I find this nice and clean so only the delegate communicates with AIRCairngorm and my command and responder classes only deal with VOs and rpc Events.  If felt like the command/responder was tightly coupled with AIRCairngorm otherwise, but maybe it&#8217;s just me?!</p>
<p>Anyway I have one question regarding execute and executeAsync.  Since this behavior is set when the connection is opened - do you think it would be a good idea to keep track of the connection type and throw an exception if execute is called when openAsync was specified, or vice versa?  I don&#8217;t see in the code where this would be handled.</p>
<p>Thanks for providing this little API, it&#8217;s extremely handy.
</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: eric</title>
		<link>http://www.ericfeminella.com/blog/2008/06/22/air-cairngorm-20/#comment-77116</link>
		<pubDate>Wed, 23 Jul 2008 03:42:44 +0000</pubDate>
		<guid>http://www.ericfeminella.com/blog/2008/06/22/air-cairngorm-20/#comment-77116</guid>
					<description>Hey Marcel.

In regards to the SQLStatementHelper I have not had any injection issues because of this therefore I haven't changed the implementation in this release. With that being said I do plan to make some changes to this implementation in a future update.

In regards to the item class it is a non-issue in the executeAsync method as the SQLStatement object is being re-instantiated in every call. However it is not being re-instantiated in the execute method so I will add an update to this soon.

- Eric</description>
		<content:encoded><![CDATA[<p>Hey Marcel.</p>
<p>In regards to the SQLStatementHelper I have not had any injection issues because of this therefore I haven&#8217;t changed the implementation in this release. With that being said I do plan to make some changes to this implementation in a future update.</p>
<p>In regards to the item class it is a non-issue in the executeAsync method as the SQLStatement object is being re-instantiated in every call. However it is not being re-instantiated in the execute method so I will add an update to this soon.</p>
<p>- Eric
</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: eric</title>
		<link>http://www.ericfeminella.com/blog/2008/06/22/air-cairngorm-20/#comment-77102</link>
		<pubDate>Wed, 23 Jul 2008 03:23:20 +0000</pubDate>
		<guid>http://www.ericfeminella.com/blog/2008/06/22/air-cairngorm-20/#comment-77102</guid>
					<description>Hey Marcel,

Typically for Web Services (WSDL, REST, XML over HTTP, etc) I define a separate Service on the the ServiceLocator as well as a separate Business Delegate for each service. 

For AIR applications utilizing local databases there are two ways to implement this:

A.) Define one Service (for connecting / accessing the database) on the ServiceLocator and then separate Business Delegates for each table. 
- or -
B.) Define a separate Service and Business Delegate for each table.

Personally I suggest having one Service for each database as it simplifies debugging the connections as there will only be one connection to manage per database. As far as organizing is concerned this is best achieved by having separate Business Delegates for each table, these delegates would then define all of the operations which can be performed on the respective table.

If conceptually it makes more sense to you to define a separate SQLService object for each Service you could always just sub class SQLService and then define an instance of the sub class for each specific service, thus utilizing the same connection and database while separating the SQLService by function.

Hope that helps,
Eric</description>
		<content:encoded><![CDATA[<p>Hey Marcel,</p>
<p>Typically for Web Services (WSDL, REST, XML over HTTP, etc) I define a separate Service on the the ServiceLocator as well as a separate Business Delegate for each service. </p>
<p>For AIR applications utilizing local databases there are two ways to implement this:</p>
<p>A.) Define one Service (for connecting / accessing the database) on the ServiceLocator and then separate Business Delegates for each table.<br />
- or -<br />
B.) Define a separate Service and Business Delegate for each table.</p>
<p>Personally I suggest having one Service for each database as it simplifies debugging the connections as there will only be one connection to manage per database. As far as organizing is concerned this is best achieved by having separate Business Delegates for each table, these delegates would then define all of the operations which can be performed on the respective table.</p>
<p>If conceptually it makes more sense to you to define a separate SQLService object for each Service you could always just sub class SQLService and then define an instance of the sub class for each specific service, thus utilizing the same connection and database while separating the SQLService by function.</p>
<p>Hope that helps,<br />
Eric
</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: Marcel Overdijk</title>
		<link>http://www.ericfeminella.com/blog/2008/06/22/air-cairngorm-20/#comment-76851</link>
		<pubDate>Tue, 22 Jul 2008 13:53:19 +0000</pubDate>
		<guid>http://www.ericfeminella.com/blog/2008/06/22/air-cairngorm-20/#comment-76851</guid>
					<description>Well I figured out myself. I'm just using 1 SQLService and for the rest some delegates.

I dived a little bit into the code and have some questions.

In SQLStatementHelper you are using StringUtil.substitute to create the sql statement. I don't think this safe related to SQL injection. Shouldn't you use ? or named parameters instead?

I also noticed that in the execute method the itemClass is only set when it provided (not null). In case statements are reused (and this is the case for the sych executed method!!) then it could happen that a previously set itemClass is used in the query. I don't know if this could cause any problem, but why not set always the itemClass?



Cheers,
Marcel</description>
		<content:encoded><![CDATA[<p>Well I figured out myself. I&#8217;m just using 1 SQLService and for the rest some delegates.</p>
<p>I dived a little bit into the code and have some questions.</p>
<p>In SQLStatementHelper you are using StringUtil.substitute to create the sql statement. I don&#8217;t think this safe related to SQL injection. Shouldn&#8217;t you use ? or named parameters instead?</p>
<p>I also noticed that in the execute method the itemClass is only set when it provided (not null). In case statements are reused (and this is the case for the sych executed method!!) then it could happen that a previously set itemClass is used in the query. I don&#8217;t know if this could cause any problem, but why not set always the itemClass?</p>
<p>Cheers,<br />
Marcel
</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: Marcel Overdijk</title>
		<link>http://www.ericfeminella.com/blog/2008/06/22/air-cairngorm-20/#comment-73728</link>
		<pubDate>Thu, 17 Jul 2008 21:07:29 +0000</pubDate>
		<guid>http://www.ericfeminella.com/blog/2008/06/22/air-cairngorm-20/#comment-73728</guid>
					<description>Really nice. Just in time as Í'm currently experimenting a little bit with both AIR and Cairngorm.

One question. 
In your AIRCairngormSyncExample you have specified an userService.
The example seems to indicatie that a SQL service maps to a database file.

When you have multiple services (like an productService, orderService, customerService etc.) do they have to map to multiple database files. I currently have 1 database file containing all my tables. But I want multiple service to organise everything. 

How should I do this? Is it just opening referencing to the same database filename? That would also mean multiple opened connections? Will this have some drawbacks?
How do you do this in your projects?

Cheers,
Marcel</description>
		<content:encoded><![CDATA[<p>Really nice. Just in time as Í&#8217;m currently experimenting a little bit with both AIR and Cairngorm.</p>
<p>One question.<br />
In your AIRCairngormSyncExample you have specified an userService.<br />
The example seems to indicatie that a SQL service maps to a database file.</p>
<p>When you have multiple services (like an productService, orderService, customerService etc.) do they have to map to multiple database files. I currently have 1 database file containing all my tables. But I want multiple service to organise everything. </p>
<p>How should I do this? Is it just opening referencing to the same database filename? That would also mean multiple opened connections? Will this have some drawbacks?<br />
How do you do this in your projects?</p>
<p>Cheers,<br />
Marcel
</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: Wojciech Ptak</title>
		<link>http://www.ericfeminella.com/blog/2008/06/22/air-cairngorm-20/#comment-62796</link>
		<pubDate>Mon, 30 Jun 2008 08:51:22 +0000</pubDate>
		<guid>http://www.ericfeminella.com/blog/2008/06/22/air-cairngorm-20/#comment-62796</guid>
					<description>Thanks Eric,
All of your work effort for Flex / AIR community is amazing. Thanks for posting this one up.

Cheers,
W.</description>
		<content:encoded><![CDATA[<p>Thanks Eric,<br />
All of your work effort for Flex / AIR community is amazing. Thanks for posting this one up.</p>
<p>Cheers,<br />
W.
</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: Augie</title>
		<link>http://www.ericfeminella.com/blog/2008/06/22/air-cairngorm-20/#comment-58318</link>
		<pubDate>Mon, 23 Jun 2008 04:42:33 +0000</pubDate>
		<guid>http://www.ericfeminella.com/blog/2008/06/22/air-cairngorm-20/#comment-58318</guid>
					<description>Eric,
Nice Work buddy. You should have added all the cell phone minutes that have been eaten up by me for update requests. Yet again you come through for the community.
Nice work,
-Augie</description>
		<content:encoded><![CDATA[<p>Eric,<br />
Nice Work buddy. You should have added all the cell phone minutes that have been eaten up by me for update requests. Yet again you come through for the community.<br />
Nice work,<br />
-Augie
</p>
]]></content:encoded>
				</item>
</channel>
</rss>
