<?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>CrisDev - Cristian Medeiros &#187; Banco de Dados</title>
	<atom:link href="http://crisdev.eti.br/category/banco-de-dados/feed" rel="self" type="application/rss+xml" />
	<link>http://crisdev.eti.br</link>
	<description>Desenvolvedor Web</description>
	<lastBuildDate>Wed, 01 Sep 2010 02:12:25 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Tutorial MongoDB</title>
		<link>http://crisdev.eti.br/tutorial-mongodb.html</link>
		<comments>http://crisdev.eti.br/tutorial-mongodb.html#comments</comments>
		<pubDate>Tue, 18 May 2010 12:59:28 +0000</pubDate>
		<dc:creator>cristianmedeiros</dc:creator>
				<category><![CDATA[Banco de Dados]]></category>
		<category><![CDATA[NoSQL]]></category>
		<category><![CDATA[MongoDB]]></category>

		<guid isPermaLink="false">http://crisdev.eti.br/?p=81</guid>
		<description><![CDATA[Esta no ar o tutorial do MongoDB em português, para consulta-lo na integridade basta acessar este link: http://www.mongodb.org/display/DOCSPT/Tutorial
Vou deixar aqui a explicação de como instala-lo em ambiente Linux, e nos próximos posts vou comentando o tutorial para quem tiver alguma dificuldade.

Instale as dependencias &#8211; Veja abaixo de acordo com sua plataforma
Pegue os fontes
git clone git://github.com/mongodb/mongo.git
Complie
scons [...]]]></description>
			<content:encoded><![CDATA[<p>Esta no ar o tutorial do MongoDB em português, para consulta-lo na integridade basta acessar este link: http://www.mongodb.org/display/DOCSPT/Tutorial</p>
<p>Vou deixar aqui a explicação de como instala-lo em ambiente Linux, e nos próximos posts vou comentando o tutorial para quem tiver alguma dificuldade.</p>
<ol>
<li>Instale as dependencias &#8211; Veja abaixo de acordo com sua plataforma</li>
<li>Pegue os fontes</li>
<p><code>git clone git://github.com/mongodb/mongo.git</code></p>
<li>Complie</li>
<p><code>scons all</code></p>
<li>Instale</li>
<p><code>scons --prefix=/opt/mongo install</code></ol>
<p><strong>Observações sobre Spider Monkey</strong></p>
<p>Geralmente os binarios instalados do spider monkey não possuem o suporte a UTF8. Além disso, o ubuntu vem com uma versão &#8220;estranha&#8221; do spider monkey, que não suporta tudo o que usamos. Se você receber mensagens de &#8220;Warning&#8221; ou erros durante o processo de compilação, recomendamos que compile o spider monkey diretamente do fonte. Veja Compilando Spider Monkey para mais informações.</p>
<p>Suportamos o spider monkey 1.6 e 1.7, no entanto a versão 1.6 é um pouco deficiente, recomendamos o uso da versão 1.7. Não testamos a versão 1.8, mas iremos assim que for oficialmente lançada.</p>
<p>A instação pode ser realizada em um Ubuntu 9.10 sem nenhuma dificuldade, seguindo apenas as instruções desta página</p>
<p><strong>Dependências</strong></p>
<p><em>Fedora</em></p>
<p><em>Fedora 8 or 10</em></p>
<p><code>sudo yum -y install git tcsh scons gcc-c++ glibc-devel</code><br />
<code>sudo yum -y install boost-devel pcre-devel js-devel readline-devel</code><br />
#for release builds:<br />
<code>sudo yum -y install boost-devel-static readline-static ncurses-static</code></p>
<p><strong>Ubuntu</strong></p>
<p>See spider monkey note above.<br />
<em> Ubuntu 8.04</em></p>
<p><code>apt-get -y install tcsh git-core scons g++</code><br />
<code>apt-get -y install libpcre++-dev libboost-dev libreadline-dev xulrunner-1.9-dev</code><br />
<code>apt-get -y install libboost-program-options-dev libboost-thread-dev libboost-filesystem-dev libboost-date-time-dev</code></p>
<p><em>Ubuntu 9.04 and 9.10</em></p>
<p><code>apt-get -y install tcsh git-core scons g++</code><br />
<code>apt-get -y install libpcre++-dev libboost-dev libreadline-dev xulrunner-1.9.1-dev</code></p>
]]></content:encoded>
			<wfw:commentRss>http://crisdev.eti.br/tutorial-mongodb.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PDO e MySQL com UTF-8</title>
		<link>http://crisdev.eti.br/pdo-e-mysql-com-utf-8.html</link>
		<comments>http://crisdev.eti.br/pdo-e-mysql-com-utf-8.html#comments</comments>
		<pubDate>Thu, 13 Nov 2008 11:49:31 +0000</pubDate>
		<dc:creator>cristianmedeiros</dc:creator>
				<category><![CDATA[Banco de Dados]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[pdo]]></category>
		<category><![CDATA[unicode]]></category>

		<guid isPermaLink="false">http://crisdev.eti.br/?p=47</guid>
		<description><![CDATA[Se voc&#234; esta usando PDO, esta tendo dificuldades com UTF-8 no seu MySQL, mesmo com tudo setado para UTF-8, voc&#234; pode tentar isso:
$pdo = new PDO(
&#160;&#160;&#160; &#8216;mysql:host=localhost;dbname=nomedobanco&#8217;,
&#160;&#160;&#160; &#34;user&#34;,
&#160;&#160;&#160; &#34;pass&#34;,
&#160;&#160;&#160; array(PDO::MYSQL_ATTR_INIT_COMMAND =&#62; &#34;SET NAMES utf8&#34;));
&#160;
O &#250;ltimo parametro do construtor do PDO &#233; um array com as op&#231;&#245;es espec&#237;ficas do driver, no caso, do driver od MySQL. [...]]]></description>
			<content:encoded><![CDATA[<p>Se voc&ecirc; esta usando PDO, esta tendo dificuldades com UTF-8 no seu MySQL, mesmo com tudo setado para UTF-8, voc&ecirc; pode tentar isso:</p>
<p>$pdo = new PDO(<br />
&nbsp;&nbsp;&nbsp; &#8216;mysql:host=localhost;dbname=nomedobanco&#8217;,<br />
&nbsp;&nbsp;&nbsp; &quot;user&quot;,<br />
&nbsp;&nbsp;&nbsp; &quot;pass&quot;,<br />
&nbsp;&nbsp;&nbsp; array(PDO::MYSQL_ATTR_INIT_COMMAND =&gt; &quot;SET NAMES utf8&quot;));</p>
<p>&nbsp;</p>
<p>O &uacute;ltimo parametro do construtor do PDO &eacute; um array com as op&ccedil;&otilde;es espec&iacute;ficas do driver, no caso, do driver od MySQL. Este parametro &eacute; alimentado no velho estilo &quot;array&quot; chave=&gt;valor. </p>
<p>Observem que o parametro (PDO::MYSQL_ATTR_INIT_COMMAND) n&atilde;o se trata de uma configura&ccedil;&atilde;o de charset, mas sim de um comando que &eacute; executado todas as vezes que voc&ecirc; conecta no banco. Neste caso, todas as vezes que ele se conecta no banco, ele executa a query &quot;SET NAMES utf8&quot; (acho que &eacute; espec&iacute;fica do MySQL) que diz para o MySQL utilizar UTF-8 como charset para nossa conex&atilde;o.</p>
<p>Para saber mais:</p>
<ul>
<li><a href="http://crisdev.eti.br/pdo-e-bean-no-php.html">PDO e BEAN no PHP</a></li>
<li><a target="_blank" href="http://dev.mysql.com/doc/refman/5.0/en/charset-connection.html" onclick="urchinTracker('/outgoing/dev.mysql.com/doc/refman/5.0/en/charset-connection.html?referer=');">MySQL &ldquo;Connection Character Sets and Collation&rdquo; documentation</a></li>
<li><a target="_blank" href="http://www.php.net/manual/en/pdo.construct.php" onclick="urchinTracker('/outgoing/www.php.net/manual/en/pdo.construct.php?referer=');">PDO constructor documentation</a></li>
<li><a target="_blank" href="http://www.php.net/manual/en/ref.pdo-mysql.php" onclick="urchinTracker('/outgoing/www.php.net/manual/en/ref.pdo-mysql.php?referer=');">PDO MySQL driver documentation</a></li>
</ul>
<p>
Fonte:<br />
<a target="_blank" href="http://www.laszlo.nu/post/34159352/how-to-use-utf-8-with-mysql-and-php-data-objects-pdo" onclick="urchinTracker('/outgoing/www.laszlo.nu/post/34159352/how-to-use-utf-8-with-mysql-and-php-data-objects-pdo?referer=');">http://www.laszlo.nu/post/34159352/how-to-use-utf-8-with-mysql-and-php-data-objects-pdo</a></p>
<p>Tags BlogBlogs: <a href="http://blogblogs.com.br/tag/php" rel="external" target="_Blank" onclick="urchinTracker('/outgoing/blogblogs.com.br/tag/php?referer=');">php</a>, <a href="http://blogblogs.com.br/tag/pdo" rel="external" target="_Blank" onclick="urchinTracker('/outgoing/blogblogs.com.br/tag/pdo?referer=');">pdo</a>, <a href="http://blogblogs.com.br/tag/mysql" rel="external" target="_Blank" onclick="urchinTracker('/outgoing/blogblogs.com.br/tag/mysql?referer=');">mysql</a>, <a href="http://blogblogs.com.br/tag/utf8" rel="external" target="_Blank" onclick="urchinTracker('/outgoing/blogblogs.com.br/tag/utf8?referer=');">utf8</a>, <a href="http://blogblogs.com.br/tag/unicode" rel="external" target="_Blank" onclick="urchinTracker('/outgoing/blogblogs.com.br/tag/unicode?referer=');">unicode</a></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://crisdev.eti.br/pdo-e-mysql-com-utf-8.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>On duplicate key update</title>
		<link>http://crisdev.eti.br/on-duplicate-key-update.html</link>
		<comments>http://crisdev.eti.br/on-duplicate-key-update.html#comments</comments>
		<pubDate>Wed, 30 Jul 2008 12:43:13 +0000</pubDate>
		<dc:creator>cristianmedeiros</dc:creator>
				<category><![CDATA[Banco de Dados]]></category>
		<category><![CDATA[constraints]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://crisdev.eti.br/?p=24</guid>
		<description><![CDATA[T&#225; ai um recurso que achei magnifico no MySQL 5, talvez n&#227;o seja mais novidade para nigu&#233;m, mas para mim foi bem interessante descobrir que n&#227;o preciso mais fazer um update na minha abstra&#231;&#227;o de dados, posso fazer tudo com insert e caso uma das chaves j&#225; esteja cadastrada o MySQL dispara um update.
O procedimento [...]]]></description>
			<content:encoded><![CDATA[<p>T&aacute; ai um recurso que achei magnifico no MySQL 5, talvez n&atilde;o seja mais novidade para nigu&eacute;m, mas para mim foi bem interessante descobrir que n&atilde;o preciso mais fazer um update na minha abstra&ccedil;&atilde;o de dados, posso fazer tudo com insert e caso uma das chaves j&aacute; esteja cadastrada o MySQL dispara um update.</p>
<p>O procedimento &eacute; muito simples, basta que voc&ecirc; tenha uma primary key ou um index &uacute;nico e voc&ecirc; poder&aacute; utilizar esta t&eacute;cnica.</p>
<p>Exemplo:</p>
<pre class="programlisting">
INSERT INTO table (a,b,c) VALUES (1,2,3) ON DUPLICATE KEY UPDATE c=c+1;
</pre>
<p>O comando acima ir&aacute; atualizar a coluna c com o valor de c+1 quando a primary ou o index for duplicado.</p>
<p>Voc&ecirc; pode indicar outros campos para serem atualizados tamb&eacute;m.</p>
<p>Exemplo:</p>
<pre class="programlisting">
INSERT INTO table (a,b,c) VALUES (1,2,3) ON DUPLICATE KEY UPDATE c=c+1, b=now();
</pre>
<p>&Eacute; uma t&eacute;cnica simples, mas que pode ganhar muito tempo de projeto dependendo da sua aplica&ccedil;&atilde;o.</p>
<p>Para saber mais:<br />
&nbsp;</p>
<ul>
<li><a href="http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html" target="_blank" onclick="urchinTracker('/outgoing/dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html?referer=');">http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html</a></li>
</ul>
<pre class="programlisting">
</pre>
<p>Tags BlogBlogs: <a href="http://blogblogs.com.br/tag/mysq" rel="external" target="_Blank" onclick="urchinTracker('/outgoing/blogblogs.com.br/tag/mysq?referer=');">mysq</a>, <a href="http://blogblogs.com.br/tag/banco+de+dados" rel="external" target="_Blank" onclick="urchinTracker('/outgoing/blogblogs.com.br/tag/banco+de+dados?referer=');">banco de dados</a>, <a href="http://blogblogs.com.br/tag/duplicate+key" rel="external" target="_Blank" onclick="urchinTracker('/outgoing/blogblogs.com.br/tag/duplicate+key?referer=');">duplicate key</a></p>
]]></content:encoded>
			<wfw:commentRss>http://crisdev.eti.br/on-duplicate-key-update.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Deadlock no Postgres</title>
		<link>http://crisdev.eti.br/deadlock-no-postgres.html</link>
		<comments>http://crisdev.eti.br/deadlock-no-postgres.html#comments</comments>
		<pubDate>Mon, 23 Jun 2008 20:14:33 +0000</pubDate>
		<dc:creator>cristianmedeiros</dc:creator>
				<category><![CDATA[Banco de Dados]]></category>
		<category><![CDATA[postgres]]></category>
		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false">http://crisdev.eti.br/?p=17</guid>
		<description><![CDATA[Caros, algumas vezes uma de minhas aplica&#231;&#245;es que roda na madrugada, me envia uma mensagem de deadlock no banco, &#233; uma aplica&#231;&#227;o em VB (i&#233;ca  ) e suas mensagens s&#227;o geradas pelo ODBC (i&#233;ca de novo) sendo assim eu n&#227;o tenho 100% de certeza que &#233; um deadlock real.
Para saber isso eu fiz um [...]]]></description>
			<content:encoded><![CDATA[<p>Caros, algumas vezes uma de minhas aplica&ccedil;&otilde;es que roda na madrugada, me envia uma mensagem de deadlock no banco, &eacute; uma aplica&ccedil;&atilde;o em VB (i&eacute;ca <img src='http://crisdev.eti.br/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> ) e suas mensagens s&atilde;o geradas pelo ODBC (i&eacute;ca de novo) sendo assim eu n&atilde;o tenho 100% de certeza que &eacute; um deadlock real.</p>
<p>Para saber isso eu fiz um sistema de log que armazena as tabelas que est&atilde;o com algum n&iacute;vel de lock quando a aplica&ccedil;&atilde;o dispara, a query para saber isso &eacute;:</p>
<p>select relname, mode from pg_locks, pg_class where relation = pg_class.oid</p>
<p>Estou compartilhando aqui porque achei dificil de acha-la.</p>
<p>&nbsp;</p>
<p>abs</p>
<p>&nbsp;<p>Tags BlogBlogs: <a href="http://blogblogs.com.br/tag/postgres" rel="external" target="_Blank" onclick="urchinTracker('/outgoing/blogblogs.com.br/tag/postgres?referer=');">postgres</a>, <a href="http://blogblogs.com.br/tag/deadlock" rel="external" target="_Blank" onclick="urchinTracker('/outgoing/blogblogs.com.br/tag/deadlock?referer=');">deadlock</a>, <a href="http://blogblogs.com.br/tag/lock" rel="external" target="_Blank" onclick="urchinTracker('/outgoing/blogblogs.com.br/tag/lock?referer=');">lock</a>, <a href="http://blogblogs.com.br/tag/query" rel="external" target="_Blank" onclick="urchinTracker('/outgoing/blogblogs.com.br/tag/query?referer=');">query</a>, <a href="http://blogblogs.com.br/tag/banco+de+dados" rel="external" target="_Blank" onclick="urchinTracker('/outgoing/blogblogs.com.br/tag/banco+de+dados?referer=');">banco de dados</a>, <a href="http://blogblogs.com.br/tag/db" rel="external" target="_Blank" onclick="urchinTracker('/outgoing/blogblogs.com.br/tag/db?referer=');">db</a></p>
]]></content:encoded>
			<wfw:commentRss>http://crisdev.eti.br/deadlock-no-postgres.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
