<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Wild Web Works Blogs &#187; Boolean Values</title>
	<atom:link href="http://www.wildwebworks.com/blogs/tag/boolean-values/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.wildwebworks.com/blogs</link>
	<description>Programming</description>
	<lastBuildDate>Wed, 15 Apr 2009 21:41:49 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Actionscript vs Postgres &#8211; Boolean Values</title>
		<link>http://www.wildwebworks.com/blogs/2009/04/actionscript-vs-postgres-boolean-values/</link>
		<comments>http://www.wildwebworks.com/blogs/2009/04/actionscript-vs-postgres-boolean-values/#comments</comments>
		<pubDate>Thu, 02 Apr 2009 23:27:59 +0000</pubDate>
		<dc:creator>spidee</dc:creator>
				<category><![CDATA[Adobe Flex - Actionscript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[Boolean Values]]></category>
		<category><![CDATA[zend AMF]]></category>

		<guid isPermaLink="false">http://www.wildwebworks.com/blogs/?p=31</guid>
		<description><![CDATA[Actionscript does not send boolean values that Postgres can take.  You need to work a little magic on the way over.

For VO records coming in from Postgres via PHP we use the following class.

package utility
&#123;
	public class BooleanConverter
	&#123;
		public static function convertBool&#40;pgBool:String&#41;:Boolean&#123;
			var newBool:Boolean = new Boolean;
			if&#40;pgBool == &#34;t&#34; &#124;&#124; pgBool == &#34;T&#34; &#124;&#124; pgBool == &#34;1&#34; [...]]]></description>
			<content:encoded><![CDATA[<p>Actionscript does not send boolean values that Postgres can take.  You need to work a little magic on the way over.</p>
<p><span id="more-31"></span></p>
<p>For VO records coming in from Postgres via PHP we use the following class.</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;">package utility
<span style="color: #66cc66;">&#123;</span>
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">class</span> BooleanConverter
	<span style="color: #66cc66;">&#123;</span>
		<span style="color: #0066CC;">public</span> <span style="color: #0066CC;">static</span> <span style="color: #000000; font-weight: bold;">function</span> convertBool<span style="color: #66cc66;">&#40;</span>pgBool:<span style="color: #0066CC;">String</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">Boolean</span><span style="color: #66cc66;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">var</span> newBool:<span style="color: #0066CC;">Boolean</span> = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #0066CC;">Boolean</span>;
			<span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span>pgBool == <span style="color: #ff0000;">&quot;t&quot;</span> <span style="color: #66cc66;">||</span> pgBool == <span style="color: #ff0000;">&quot;T&quot;</span> <span style="color: #66cc66;">||</span> pgBool == <span style="color: #ff0000;">&quot;1&quot;</span> <span style="color: #66cc66;">||</span> pgBool == <span style="color: #ff0000;">&quot;true&quot;</span><span style="color: #66cc66;">&#41;</span>
			<span style="color: #66cc66;">&#123;</span>
				newBool = <span style="color: #000000; font-weight: bold;">true</span>;
			<span style="color: #66cc66;">&#125;</span><span style="color: #b1b100;">else</span><span style="color: #66cc66;">&#123;</span>
				newBool = <span style="color: #000000; font-weight: bold;">false</span>;
			<span style="color: #66cc66;">&#125;</span>
&nbsp;
			<span style="color: #b1b100;">return</span> newBool;
		<span style="color: #66cc66;">&#125;</span>
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>Then we use getter/setter on the VO calling the class.</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;">	<span style="color: #66cc66;">&#91;</span>Bindable<span style="color: #66cc66;">&#93;</span>
	<span style="color: #66cc66;">&#91;</span>RemoteClass<span style="color: #66cc66;">&#40;</span>alias=<span style="color: #ff0000;">&quot;valueObjects.OwnerVO&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#93;</span>
&nbsp;
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">class</span> OwnerVO
	<span style="color: #66cc66;">&#123;</span>
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">var</span> pk_id:uint;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">var</span> owner_company:<span style="color: #0066CC;">String</span>;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> _owner_active:<span style="color: #0066CC;">Boolean</span>;
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #0066CC;">get</span> owner_active<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">Boolean</span>
		<span style="color: #66cc66;">&#123;</span>
			<span style="color: #b1b100;">return</span> _owner_active;
		<span style="color: #66cc66;">&#125;</span> 
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #0066CC;">set</span> owner_active<span style="color: #66cc66;">&#40;</span>value:<span style="color: #66cc66;">*</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
		<span style="color: #66cc66;">&#123;</span>
			_owner_active = BooleanConverter.<span style="color: #006600;">convertBool</span><span style="color: #66cc66;">&#40;</span>value<span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>You have to convert the other direction, too.  Saving from Actionscript to Postgres requires PHP to step in and perform some magic.  Here&#8217;s the PHP function, which we have on &#8216;conversions.php&#8217;.</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;">	<span style="color: #000000; font-weight: bold;">function</span> boolConversion<span style="color: #66cc66;">&#40;</span>$input<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
&nbsp;
		<span style="color: #b1b100;">switch</span><span style="color: #66cc66;">&#40;</span>$input<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
			<span style="color: #b1b100;">case</span> <span style="color: #ff0000;">'t'</span>:
				$output = <span style="color: #cc66cc;">1</span>;
				<span style="color: #b1b100;">break</span>;
			<span style="color: #b1b100;">case</span> <span style="color: #ff0000;">'1'</span>:
				$output = <span style="color: #cc66cc;">1</span>;
				<span style="color: #b1b100;">break</span>;
			<span style="color: #b1b100;">case</span> <span style="color: #ff0000;">'f'</span>:
				$output = <span style="color: #cc66cc;">0</span>;
				<span style="color: #b1b100;">break</span>;
			<span style="color: #b1b100;">case</span> <span style="color: #ff0000;">''</span>:
				$output = <span style="color: #cc66cc;">0</span>;
				<span style="color: #b1b100;">break</span>;
		<span style="color: #66cc66;">&#125;</span>
		<span style="color: #b1b100;">return</span> $output;
	<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>Here&#8217;s the PHP page receiving the VO from Flex and sending it over to Postgres.</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;">require_once<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;conversions.php&quot;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
<span style="color: #000000; font-weight: bold;">class</span> Owners
<span style="color: #66cc66;">&#123;</span>
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> saveOwner<span style="color: #66cc66;">&#40;</span>$record<span style="color: #66cc66;">&#41;</span>
	<span style="color: #66cc66;">&#123;</span>
		global $db;
&nbsp;
		$record-<span style="color: #66cc66;">&gt;</span>owner_active = boolConversion<span style="color: #66cc66;">&#40;</span>$record-<span style="color: #66cc66;">&gt;</span>owner_active<span style="color: #66cc66;">&#41;</span>;
&nbsp;
		$sql = <span style="color: #ff0000;">&quot;SELECT * FROM owner_save((
		'$record-&gt;pk_id',
		'$record-&gt;owner_company',
		'$record-&gt;owner_active'))&quot;</span>;
&nbsp;
		$db-<span style="color: #66cc66;">&gt;</span>query<span style="color: #66cc66;">&#40;</span>$sql<span style="color: #66cc66;">&#41;</span>;
		<span style="color: #b1b100;">return</span> $db-<span style="color: #66cc66;">&gt;</span>fetchObject<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'OwnerVO'</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>Once this is set up, it works really well.  Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wildwebworks.com/blogs/2009/04/actionscript-vs-postgres-boolean-values/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
