<?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>Andreano Lanusse Blog em Português &#187; Delphi (Win32)</title>
	<atom:link href="http://www.andreanolanusse.com/blogpt/tag/delphi/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.andreanolanusse.com/blogpt</link>
	<description>O propósito do meu blog é compartilhar assuntos relacionados a desenvolvimento de software, assim como belos lugares para que visitei e recomendo, filmes que assisti e gostei, jogos que realmente curto (sou fã do PS3), fotos de lugares legais e muito mais.</description>
	<lastBuildDate>Thu, 09 Sep 2010 12:43:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1-alpha</generator>
		<item>
		<title>Utilizando expressões regulares para validar endereço IP no Delphi XE</title>
		<link>http://www.andreanolanusse.com/blogpt/utilizando-expressoes-regulares-para-validar-endereco-ip-no-delphi-xe/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=utilizando-expressoes-regulares-para-validar-endereco-ip-no-delphi-xe</link>
		<comments>http://www.andreanolanusse.com/blogpt/utilizando-expressoes-regulares-para-validar-endereco-ip-no-delphi-xe/#comments</comments>
		<pubDate>Thu, 09 Sep 2010 06:46:26 +0000</pubDate>
		<dc:creator>Andreano Lanusse</dc:creator>
				<category><![CDATA[Delphi (Win32)]]></category>
		<category><![CDATA[Destaque]]></category>
		<category><![CDATA[Embarcadero]]></category>

		<guid isPermaLink="false">http://www.andreanolanusse.com/blogpt/?p=1025</guid>
		<description><![CDATA[Umas das novidades no Delphi XE e o suporte a expressões regulares (unit RegularExpressions) na RTL, esse recursos nos permite fazer diversos tipos de validação, abaixo um exemplo de como utilizar este recurso para validar se o valor em uma string é realmente um endereço IP. program RegExpIP; {$APPTYPE CONSOLE} uses SysUtils, RegularExpressions; var ipRegExp [...]]]></description>
			<content:encoded><![CDATA[<p>Umas das novidades no Delphi XE e o suporte a expressões regulares (unit RegularExpressions) na RTL, esse recursos nos permite fazer diversos tipos de validação, abaixo um exemplo de como utilizar este recurso para validar se o valor em uma string é realmente um endereço IP.</p>
<pre class="brush: delphi">program RegExpIP;

{$APPTYPE CONSOLE}

uses
  SysUtils,
  RegularExpressions;

var
 ipRegExp : String;
begin
  try

    ipRegExp := '\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b';

  if TRegEx.IsMatch(paramstr(1), ipRegExp) then
    Writeln('Text DOES match the regular expression')
  else
    Writeln('Text DOES NOT match the regular expression');

  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;
end.</pre>
<p>Para validar basta executar o programa e passar como parâmetro o endereço IP</p>
<p>Neste caso o IP é válido<br />
<strong>RegExpIP 200.100.2.21<br />
Text DOES match the regular expression<br />
</strong></p>
<p>Neste caso o IP não é valido, pois 263 está fora do intervalo permitido<br />
<strong>RegExpIP 200.100.2.263<br />
Text DOES match the regular expression<br />
</strong></p>
<p>No repositório de <a href="https://radstudiodemos.svn.sourceforge.net/svnroot/radstudiodemos/branches/RadStudio_XE/Delphi/RTL/RegExpression/" target="_blank">exemplos do RAD Studio</a> você pode encontrar um exemplo com outros tipos de expressões regulares.</p>
<p>Faça o download da versão trial do Delphi XE <a href="http://www.embarcadero.com/products/delphi" target="_blank"><strong>aqui</strong></a></p>
<h2  class="related_post_title">Posts relacionados</h2><ul class="related_post"><li><a href="http://www.andreanolanusse.com/blogpt/ao-comprar-delphi-xe-aka-delphi-2011-voce-recebe-as-versoes-do-delphi-7-2007-2009-e-2010/" title="Ao comprar Delphi XE (aka Delphi 2011) você recebe as versões do Delphi 7, 2007, 2009 e 2010">Ao comprar Delphi XE (aka Delphi 2011) você recebe as versões do Delphi 7, 2007, 2009 e 2010</a></li><li><a href="http://www.andreanolanusse.com/blogpt/teste-nosso-servidor-datasnap-xe-instalado-no-amazon-cloud/" title="Teste nosso servidor DataSnap XE instalado no Amazon Cloud">Teste nosso servidor DataSnap XE instalado no Amazon Cloud</a></li><li><a href="http://www.andreanolanusse.com/blogpt/disponibilizada-nova-versao-do-delphi-xe-cbuilder-xe-delphi-prism-xe-e-radphp-xe/" title="Disponibilizada nova versão do Delphi XE, C++Builder XE, Delphi Prism XE e RadPHP XE">Disponibilizada nova versão do Delphi XE, C++Builder XE, Delphi Prism XE e RadPHP XE</a></li><li><a href="http://www.andreanolanusse.com/blogpt/datasnap-xe-e-windows-azure-preview-3/" title="DataSnap XE e Windows Azure &#8211; RAD Studio XE Preview #3">DataSnap XE e Windows Azure &#8211; RAD Studio XE Preview #3</a></li><li><a href="http://www.andreanolanusse.com/blogpt/desenvolvimento-agil-delphi-xe-cbuilder-xe-delphi-prism-xe-radphp-xe/" title="Desenvolvimento Ágil = Delphi XE + C++Builder XE + Delphi Prism XE + RadPHP XE">Desenvolvimento Ágil = Delphi XE + C++Builder XE + Delphi Prism XE + RadPHP XE</a></li><li><a href="http://www.andreanolanusse.com/blogpt/rad-studio-xe-agora-com-delphi-xe-cbuilder-xe-delphi-prism-xe-e-radphp-xe/" title="RAD Studio XE agora com Delphi XE, C++Builder XE, Delphi Prism XE e RadPHP XE">RAD Studio XE agora com Delphi XE, C++Builder XE, Delphi Prism XE e RadPHP XE</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.andreanolanusse.com/blogpt/utilizando-expressoes-regulares-para-validar-endereco-ip-no-delphi-xe/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ao comprar Delphi XE (aka Delphi 2011) você recebe as versões do Delphi 7, 2007, 2009 e 2010</title>
		<link>http://www.andreanolanusse.com/blogpt/ao-comprar-delphi-xe-aka-delphi-2011-voce-recebe-as-versoes-do-delphi-7-2007-2009-e-2010/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=ao-comprar-delphi-xe-aka-delphi-2011-voce-recebe-as-versoes-do-delphi-7-2007-2009-e-2010</link>
		<comments>http://www.andreanolanusse.com/blogpt/ao-comprar-delphi-xe-aka-delphi-2011-voce-recebe-as-versoes-do-delphi-7-2007-2009-e-2010/#comments</comments>
		<pubDate>Wed, 08 Sep 2010 10:43:25 +0000</pubDate>
		<dc:creator>Andreano Lanusse</dc:creator>
				<category><![CDATA[Delphi (Win32)]]></category>
		<category><![CDATA[Delphi Prism (.NET)]]></category>
		<category><![CDATA[C++Builder]]></category>
		<category><![CDATA[Destaque]]></category>
		<category><![CDATA[Embarcadero]]></category>

		<guid isPermaLink="false">http://www.andreanolanusse.com/blogpt/?p=1023</guid>
		<description><![CDATA[As últimas 2 semanas tem sido bem corridas, começamos o RAD Studio XE World Tour, estive fazendo o lançamento em Los Angeles, Orange County, Guadalajara e amanhã será na Cidade do México, isso é só o começo. As centenas de desenvolvedores que até aqui participaram dos eventos e conheceram na prática tudo sobre o novo [...]]]></description>
			<content:encoded><![CDATA[<p>As últimas 2 semanas tem sido bem corridas, começamos o RAD Studio XE World Tour, estive fazendo o lançamento em Los Angeles, Orange County, Guadalajara e amanhã será na Cidade do México, isso é só o começo. As centenas de desenvolvedores que até aqui participaram dos eventos e conheceram na prática tudo sobre o novo RAD Studio XE só tem elogios.</p>
<p>Uma das novidades do Delphi XE está relacionada a licenças anteriores, ao comprar seu Delphi XE você irá receber uma licença para o mesmo desenvolvedor das versões anteriores: Delphi 7, Delphi 2007, Delphi 2009 e Delphi 2010. O mesmo se aplica para C++Builder e Delphi Prism, ficando assim:</p>
<ul>
<li>C++Builder XE -&gt; C++Builder 2010, C++Builder 2009, C++Builder 2007 e C++Builder 6</li>
<li>Delphi Prism XE -&gt; Delphi Prism 2011, 2010 e 2009</li>
<li>RAD Studio XE -&gt; todas acima</li>
</ul>
<p>Porque não incluímos Delphi 2006 nesta lista? Não o incluímos porque Delphi 2006 usa algumas tecnologias de terceiro que já não estão mais disponíveis, o mesmo se aplica ao C++Builder 5. No caso do RAD Studio 2007 não incluímos a personalidade Delphi .NET visto que está é uma tecnologia antiga e oferecemos o Delphi Prism que traz suporte as últimas versões de .NET.</p>
<p>Ao comprar sua licença você terá de acessar nosso site para gerar o serial number para uma das versões anteriores, caso você já tenha uma das versões anteriores registradas você não irá receber o mesmo serial number registrado anteriormente, ou seja, você não terá uma segunda licença de uma versão já registrada.</p>
<p>O prazo para solicitar as licenças anteriores é de 180 dias e deve ser feito através do link <a href="http://www.embarcadero.com/xe-earlier-versions">http://www.embarcadero.com/xe-earlier-versions</a></p>
<p>Vale lembrar que estas licenças estão registradas ao seu usuário e não poderão ser repassadas a outros.</p>
<h2  class="related_post_title">Posts relacionados</h2><ul class="related_post"><li><a href="http://www.andreanolanusse.com/blogpt/disponibilizada-nova-versao-do-delphi-xe-cbuilder-xe-delphi-prism-xe-e-radphp-xe/" title="Disponibilizada nova versão do Delphi XE, C++Builder XE, Delphi Prism XE e RadPHP XE">Disponibilizada nova versão do Delphi XE, C++Builder XE, Delphi Prism XE e RadPHP XE</a></li><li><a href="http://www.andreanolanusse.com/blogpt/datasnap-xe-e-windows-azure-preview-3/" title="DataSnap XE e Windows Azure &#8211; RAD Studio XE Preview #3">DataSnap XE e Windows Azure &#8211; RAD Studio XE Preview #3</a></li><li><a href="http://www.andreanolanusse.com/blogpt/desenvolvimento-agil-delphi-xe-cbuilder-xe-delphi-prism-xe-radphp-xe/" title="Desenvolvimento Ágil = Delphi XE + C++Builder XE + Delphi Prism XE + RadPHP XE">Desenvolvimento Ágil = Delphi XE + C++Builder XE + Delphi Prism XE + RadPHP XE</a></li><li><a href="http://www.andreanolanusse.com/blogpt/rad-studio-xe-agora-com-delphi-xe-cbuilder-xe-delphi-prism-xe-e-radphp-xe/" title="RAD Studio XE agora com Delphi XE, C++Builder XE, Delphi Prism XE e RadPHP XE">RAD Studio XE agora com Delphi XE, C++Builder XE, Delphi Prism XE e RadPHP XE</a></li><li><a href="http://www.andreanolanusse.com/blogpt/utilizando-expressoes-regulares-para-validar-endereco-ip-no-delphi-xe/" title="Utilizando expressões regulares para validar endereço IP no Delphi XE">Utilizando expressões regulares para validar endereço IP no Delphi XE</a></li><li><a href="http://www.andreanolanusse.com/blogpt/teste-nosso-servidor-datasnap-xe-instalado-no-amazon-cloud/" title="Teste nosso servidor DataSnap XE instalado no Amazon Cloud">Teste nosso servidor DataSnap XE instalado no Amazon Cloud</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.andreanolanusse.com/blogpt/ao-comprar-delphi-xe-aka-delphi-2011-voce-recebe-as-versoes-do-delphi-7-2007-2009-e-2010/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Teste nosso servidor DataSnap XE instalado no Amazon Cloud</title>
		<link>http://www.andreanolanusse.com/blogpt/teste-nosso-servidor-datasnap-xe-instalado-no-amazon-cloud/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=teste-nosso-servidor-datasnap-xe-instalado-no-amazon-cloud</link>
		<comments>http://www.andreanolanusse.com/blogpt/teste-nosso-servidor-datasnap-xe-instalado-no-amazon-cloud/#comments</comments>
		<pubDate>Thu, 02 Sep 2010 23:39:56 +0000</pubDate>
		<dc:creator>Andreano Lanusse</dc:creator>
				<category><![CDATA[Delphi (Win32)]]></category>
		<category><![CDATA[DataSnap]]></category>
		<category><![CDATA[Destaque]]></category>
		<category><![CDATA[Embarcadero]]></category>

		<guid isPermaLink="false">http://www.andreanolanusse.com/blogpt/?p=1019</guid>
		<description><![CDATA[Funciona assim, instalamos InterBase e uma aplicação DataSnap Server no Amazon EC2 e disponibilizamos a aplicação DataSnap client desenvolvidade em Delphi. Se você quer usar um cliente DataSnap e ver na prática como é rápido o DataSnap XE, faça o download da aplicação cliente desenvolvida em Delphi e navegue pelas opções disponíveis na aplicação. O [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.andreanolanusse.com/blogen/wp-content/uploads/2010/08/datasnapoverall_2814.png"><img class="alignleft size-medium wp-image-342" title="DataSnap XE" src="http://www.andreanolanusse.com/blogen/wp-content/uploads/2010/08/datasnapoverall_2814-300x227.png" alt="" width="300" height="227" /></a>Funciona assim, instalamos InterBase e uma aplicação DataSnap Server no Amazon EC2 e disponibilizamos a aplicação DataSnap client desenvolvidade em Delphi.</p>
<p>Se você quer usar um cliente DataSnap e ver na prática como é rápido o DataSnap XE, faça o download da aplicação cliente desenvolvida em Delphi e navegue pelas opções disponíveis na aplicação. O servidor estará disponível durante as próximas 24 horas.</p>
<p>Aqui algumas orientações sobre a aplicação que irá lhe ajudar a entender o que acontece quando você executa alguns dos server methods:</p>
<p><strong>Tab Server Methods</strong></p>
<ul>
<li>Button Get Server DateTime &#8211; retorna a data e hora a partir do servidor Amazon</li>
<li>Jobs available &#8211; lista os registros a partir de um ClientDataSet, você pode editar, deletar e inserir dados</li>
</ul>
<p><strong>Using ClientDataSet (Master-Detail)</strong></p>
<ul>
<li>ClientDataSet usando modelo Master-Detail (somente leitura)</li>
</ul>
<p><strong>Reading Data from DBXReader</strong></p>
<ul>
<li>Essa tab tem 3 botoões, o primeiro lista os departamentos, o segundo diz ao objeto no server que a próxima requisição deverá ser ordernada por ID, o próximo botão irá ordernar por NOME. Este objeto no servidor é singleton, ou seja, tem apenas uma instância, se quando você solicitar a lista de departamento e esta não vier ordenada pelo item que você solicitou é porque alguém fez uma solicitação ao server para ordenar por outro campo. Este é um exemplo simples mostrando como funciona a gerenciamento de objetos.</li>
</ul>
<p><strong>Using DBX framework to send TParams</strong></p>
<ul>
<li>Adiciona registros na tabela Department passando os dados como um objeto TParams</li>
</ul>
<p><strong>Object Transfer</strong></p>
<ul>
<li>Recebe objetos do servidor</li>
</ul>
<p>Faça o download da aplicacão cliente para DataSnap  <a href="http://www.andreanolanusse.com/blogen/wp-content/uploads/2010/08/DelphiDataSnapClient.zip"><strong>aqui</strong></a>, unzip, clique e execute.</p>
<p>Este é um pequeno exemplo que mostra alguma das funcionalidades do DataSnap, Anders <img src='http://www.andreanolanusse.com/blogpt/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  foi responsável pelo processo de teste <img src='http://www.andreanolanusse.com/blogpt/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<h2  class="related_post_title">Posts relacionados</h2><ul class="related_post"><li><a href="http://www.andreanolanusse.com/blogpt/datasnap-xe-e-windows-azure-preview-3/" title="DataSnap XE e Windows Azure &#8211; RAD Studio XE Preview #3">DataSnap XE e Windows Azure &#8211; RAD Studio XE Preview #3</a></li><li><a href="http://www.andreanolanusse.com/blogpt/delphi-tour-2010-slides-e-exemplos-disponibilizados-para-download/" title="Delphi Tour 2010 – slides e exemplos disponibilizados para download">Delphi Tour 2010 – slides e exemplos disponibilizados para download</a></li><li><a href="http://www.andreanolanusse.com/blogpt/utilizando-expressoes-regulares-para-validar-endereco-ip-no-delphi-xe/" title="Utilizando expressões regulares para validar endereço IP no Delphi XE">Utilizando expressões regulares para validar endereço IP no Delphi XE</a></li><li><a href="http://www.andreanolanusse.com/blogpt/ao-comprar-delphi-xe-aka-delphi-2011-voce-recebe-as-versoes-do-delphi-7-2007-2009-e-2010/" title="Ao comprar Delphi XE (aka Delphi 2011) você recebe as versões do Delphi 7, 2007, 2009 e 2010">Ao comprar Delphi XE (aka Delphi 2011) você recebe as versões do Delphi 7, 2007, 2009 e 2010</a></li><li><a href="http://www.andreanolanusse.com/blogpt/disponibilizada-nova-versao-do-delphi-xe-cbuilder-xe-delphi-prism-xe-e-radphp-xe/" title="Disponibilizada nova versão do Delphi XE, C++Builder XE, Delphi Prism XE e RadPHP XE">Disponibilizada nova versão do Delphi XE, C++Builder XE, Delphi Prism XE e RadPHP XE</a></li><li><a href="http://www.andreanolanusse.com/blogpt/desenvolvimento-agil-delphi-xe-cbuilder-xe-delphi-prism-xe-radphp-xe/" title="Desenvolvimento Ágil = Delphi XE + C++Builder XE + Delphi Prism XE + RadPHP XE">Desenvolvimento Ágil = Delphi XE + C++Builder XE + Delphi Prism XE + RadPHP XE</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.andreanolanusse.com/blogpt/teste-nosso-servidor-datasnap-xe-instalado-no-amazon-cloud/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Disponibilizada nova versão do Delphi XE, C++Builder XE, Delphi Prism XE e RadPHP XE</title>
		<link>http://www.andreanolanusse.com/blogpt/disponibilizada-nova-versao-do-delphi-xe-cbuilder-xe-delphi-prism-xe-e-radphp-xe/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=disponibilizada-nova-versao-do-delphi-xe-cbuilder-xe-delphi-prism-xe-e-radphp-xe</link>
		<comments>http://www.andreanolanusse.com/blogpt/disponibilizada-nova-versao-do-delphi-xe-cbuilder-xe-delphi-prism-xe-e-radphp-xe/#comments</comments>
		<pubDate>Tue, 31 Aug 2010 04:53:08 +0000</pubDate>
		<dc:creator>Andreano Lanusse</dc:creator>
				<category><![CDATA[Delphi (Win32)]]></category>
		<category><![CDATA[Delphi Prism (.NET)]]></category>
		<category><![CDATA[RadPHP (Delphi for PHP)]]></category>
		<category><![CDATA[C++Builder]]></category>
		<category><![CDATA[Delphi Prism]]></category>
		<category><![CDATA[Destaque]]></category>
		<category><![CDATA[Embarcadero]]></category>

		<guid isPermaLink="false">http://www.andreanolanusse.com/blogpt/?p=1016</guid>
		<description><![CDATA[Acabamos de anunciar a disponibilidade das novas versões XE do RAD Studio, Delphi, C++Builder, Delphi Prism e do mais novo RadPHP agora parte do RAD Studio. Aproveita a promoção de upgrade para o RAD Studio XE e obtenha tenha acesso a todas as ferramentas Embarcadero. Todas as informações sobre os produtos já estão disponíveis em [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.andreanolanusse.com/blogpt/wp-content/uploads/2010/08/RADStudio_XE_WorldTour.jpg"><img class="aligncenter size-full wp-image-1017" title="RAD Studio XE World Tour" src="http://www.andreanolanusse.com/blogpt/wp-content/uploads/2010/08/RADStudio_XE_WorldTour.jpg" alt="" width="679" height="140" /></a>Acabamos de anunciar a disponibilidade das novas versões XE do RAD Studio, Delphi, C++Builder, Delphi Prism e do mais novo RadPHP agora parte do RAD Studio.</p>
<p>Aproveita a <a href="http://www.embarcadero.com/br/offers/the-ultimate-rad-upgrade" target="_blank"><strong>promoção de upgrade</strong></a> para o RAD Studio XE e obtenha tenha acesso a todas as ferramentas Embarcadero.</p>
<p>Todas as informações sobre os produtos já estão disponíveis em nosso website, aqui alguns links:</p>
<ul>
<li>Informação sobre os <a href="http://www.embarcadero.com/br/products" target="_blank">produtos</a></li>
<li>Versões <a href="http://www.embarcadero.com/downloads" target="_blank"><strong>trial</strong></a></li>
</ul>
<p>O RAD Studio XE Tour começa essa semana e irá percorrer 70 cidades no mundo todo, além de eventos online.</p>
<p>O primeiro evento online para o Brasil será da 15 de setembro das 14:00 às 16:00 (Horário de Brasilia). Em breve as inscrições estarão abertas.</p>
<p>Estarei pessoalmente nas seguintes cidades:</p>
<ul>
<li>1 de Setembro &#8211; 7:00pm-9:00pm &#8211; Orange Co., CA</li>
<li>2 de Setembro &#8211; 7:00pm-9:00pm &#8211; Los Angeles, CA</li>
<li>7 de Setembro &#8211; 8:30am-1:00pm &#8211; Guadalajara, MX</li>
<li>9 de Setembro &#8211; 8:30am-1:00pm &#8211; Mexico D.F., MX</li>
</ul>
<p>Enquanto isso faça o <a href="http://www.embarcadero.com/downloads" target="_blank"><strong>download</strong></a> do trial e conheça na prática as novidades.</p>
<h2  class="related_post_title">Posts relacionados</h2><ul class="related_post"><li><a href="http://www.andreanolanusse.com/blogpt/rad-studio-xe-agora-com-delphi-xe-cbuilder-xe-delphi-prism-xe-e-radphp-xe/" title="RAD Studio XE agora com Delphi XE, C++Builder XE, Delphi Prism XE e RadPHP XE">RAD Studio XE agora com Delphi XE, C++Builder XE, Delphi Prism XE e RadPHP XE</a></li><li><a href="http://www.andreanolanusse.com/blogpt/ao-comprar-delphi-xe-aka-delphi-2011-voce-recebe-as-versoes-do-delphi-7-2007-2009-e-2010/" title="Ao comprar Delphi XE (aka Delphi 2011) você recebe as versões do Delphi 7, 2007, 2009 e 2010">Ao comprar Delphi XE (aka Delphi 2011) você recebe as versões do Delphi 7, 2007, 2009 e 2010</a></li><li><a href="http://www.andreanolanusse.com/blogpt/datasnap-xe-e-windows-azure-preview-3/" title="DataSnap XE e Windows Azure &#8211; RAD Studio XE Preview #3">DataSnap XE e Windows Azure &#8211; RAD Studio XE Preview #3</a></li><li><a href="http://www.andreanolanusse.com/blogpt/desenvolvimento-agil-delphi-xe-cbuilder-xe-delphi-prism-xe-radphp-xe/" title="Desenvolvimento Ágil = Delphi XE + C++Builder XE + Delphi Prism XE + RadPHP XE">Desenvolvimento Ágil = Delphi XE + C++Builder XE + Delphi Prism XE + RadPHP XE</a></li><li><a href="http://www.andreanolanusse.com/blogpt/delphi-tour-2010-slides-e-exemplos-disponibilizados-para-download/" title="Delphi Tour 2010 – slides e exemplos disponibilizados para download">Delphi Tour 2010 – slides e exemplos disponibilizados para download</a></li><li><a href="http://www.andreanolanusse.com/blogpt/utilizando-expressoes-regulares-para-validar-endereco-ip-no-delphi-xe/" title="Utilizando expressões regulares para validar endereço IP no Delphi XE">Utilizando expressões regulares para validar endereço IP no Delphi XE</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.andreanolanusse.com/blogpt/disponibilizada-nova-versao-do-delphi-xe-cbuilder-xe-delphi-prism-xe-e-radphp-xe/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>DataSnap XE e Windows Azure &#8211; RAD Studio XE Preview #3</title>
		<link>http://www.andreanolanusse.com/blogpt/datasnap-xe-e-windows-azure-preview-3/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=datasnap-xe-e-windows-azure-preview-3</link>
		<comments>http://www.andreanolanusse.com/blogpt/datasnap-xe-e-windows-azure-preview-3/#comments</comments>
		<pubDate>Tue, 24 Aug 2010 09:06:34 +0000</pubDate>
		<dc:creator>Andreano Lanusse</dc:creator>
				<category><![CDATA[Delphi (Win32)]]></category>
		<category><![CDATA[Delphi Prism (.NET)]]></category>
		<category><![CDATA[RadPHP (Delphi for PHP)]]></category>
		<category><![CDATA[C++Builder]]></category>
		<category><![CDATA[DataSnap]]></category>
		<category><![CDATA[Destaque]]></category>
		<category><![CDATA[Embarcadero]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[RadPHP]]></category>

		<guid isPermaLink="false">http://www.andreanolanusse.com/blogpt/?p=1012</guid>
		<description><![CDATA[Uma das grandes novidades no RAD Studio XE é o suporte a Cloud Computing, neste mostramos como acessar serviços no Microsoft Azure através de servidores DataSnap. Além disso o DataSnap XE traz várias novidades nesta versão, como por exemplo o suporte a autenticação e acesso a métodos a partir de grupo de usuários. Neste vídeo [...]]]></description>
			<content:encoded><![CDATA[<p>Uma das grandes novidades no RAD Studio XE é o suporte a Cloud Computing, neste mostramos como acessar serviços no Microsoft Azure através de servidores DataSnap. Além disso o DataSnap XE traz várias novidades nesta versão, como por exemplo o suporte a autenticação e acesso a métodos a partir de grupo de usuários.</p>
<p>Neste vídeo você irá conhecer a integração com Cloud Computing, divirta-se.</p>
<p style="text-align: center;"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/wqDW8QtKSqA?fs=1&amp;hl=en_US" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="480" height="385" src="http://www.youtube.com/v/wqDW8QtKSqA?fs=1&amp;hl=en_US" allowfullscreen="true" allowscriptaccess="always"></embed></object></p>
<p>Agora acesse a página do <strong><a href="http://www.embarcadero.com/rad-studio-xe-preview" target="_blank">RAD Studio XE Preview</a></strong> e conheça mais sobre outras novidades do Delphi XE, C++Builder XE, Delphi Prism XE e RadPHP XE.</p>
<h2  class="related_post_title">Posts relacionados</h2><ul class="related_post"><li><a href="http://www.andreanolanusse.com/blogpt/desenvolvimento-agil-delphi-xe-cbuilder-xe-delphi-prism-xe-radphp-xe/" title="Desenvolvimento Ágil = Delphi XE + C++Builder XE + Delphi Prism XE + RadPHP XE">Desenvolvimento Ágil = Delphi XE + C++Builder XE + Delphi Prism XE + RadPHP XE</a></li><li><a href="http://www.andreanolanusse.com/blogpt/rad-studio-xe-agora-com-delphi-xe-cbuilder-xe-delphi-prism-xe-e-radphp-xe/" title="RAD Studio XE agora com Delphi XE, C++Builder XE, Delphi Prism XE e RadPHP XE">RAD Studio XE agora com Delphi XE, C++Builder XE, Delphi Prism XE e RadPHP XE</a></li><li><a href="http://www.andreanolanusse.com/blogpt/ao-comprar-delphi-xe-aka-delphi-2011-voce-recebe-as-versoes-do-delphi-7-2007-2009-e-2010/" title="Ao comprar Delphi XE (aka Delphi 2011) você recebe as versões do Delphi 7, 2007, 2009 e 2010">Ao comprar Delphi XE (aka Delphi 2011) você recebe as versões do Delphi 7, 2007, 2009 e 2010</a></li><li><a href="http://www.andreanolanusse.com/blogpt/teste-nosso-servidor-datasnap-xe-instalado-no-amazon-cloud/" title="Teste nosso servidor DataSnap XE instalado no Amazon Cloud">Teste nosso servidor DataSnap XE instalado no Amazon Cloud</a></li><li><a href="http://www.andreanolanusse.com/blogpt/disponibilizada-nova-versao-do-delphi-xe-cbuilder-xe-delphi-prism-xe-e-radphp-xe/" title="Disponibilizada nova versão do Delphi XE, C++Builder XE, Delphi Prism XE e RadPHP XE">Disponibilizada nova versão do Delphi XE, C++Builder XE, Delphi Prism XE e RadPHP XE</a></li><li><a href="http://www.andreanolanusse.com/blogpt/delphi-tour-2010-slides-e-exemplos-disponibilizados-para-download/" title="Delphi Tour 2010 – slides e exemplos disponibilizados para download">Delphi Tour 2010 – slides e exemplos disponibilizados para download</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.andreanolanusse.com/blogpt/datasnap-xe-e-windows-azure-preview-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Desenvolvimento Ágil = Delphi XE + C++Builder XE + Delphi Prism XE + RadPHP XE</title>
		<link>http://www.andreanolanusse.com/blogpt/desenvolvimento-agil-delphi-xe-cbuilder-xe-delphi-prism-xe-radphp-xe/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=desenvolvimento-agil-delphi-xe-cbuilder-xe-delphi-prism-xe-radphp-xe</link>
		<comments>http://www.andreanolanusse.com/blogpt/desenvolvimento-agil-delphi-xe-cbuilder-xe-delphi-prism-xe-radphp-xe/#comments</comments>
		<pubDate>Tue, 17 Aug 2010 18:02:43 +0000</pubDate>
		<dc:creator>Andreano Lanusse</dc:creator>
				<category><![CDATA[Delphi (Win32)]]></category>
		<category><![CDATA[Delphi Prism (.NET)]]></category>
		<category><![CDATA[RadPHP (Delphi for PHP)]]></category>
		<category><![CDATA[C++Builder]]></category>
		<category><![CDATA[Destaque]]></category>
		<category><![CDATA[Embarcadero]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.andreanolanusse.com/blogpt/?p=1010</guid>
		<description><![CDATA[Acaba de ser publicado o segundo preview do RAD Studio XE, que inclui as novas versões Delphi, C++Builder, Delphi Prism e RadPHP (anteriormente Delphi for PHP), neste vídeo demonstramos como você pode acelerar seu processo de desenvolvimento e melhorar a qualidade das suas aplicações usando algumas das ferramentas de terceiro que acompanha o RAD Studio [...]]]></description>
			<content:encoded><![CDATA[<p>Acaba de ser publicado o segundo preview do RAD Studio XE, que inclui as novas versões Delphi, C++Builder, Delphi Prism e RadPHP (anteriormente Delphi for PHP), neste vídeo demonstramos como você pode acelerar seu processo de desenvolvimento e melhorar a qualidade das suas aplicações usando algumas das ferramentas de terceiro que acompanha o RAD Studio XE.</p>
<p>Este vídeo mostra:</p>
<ul>
<li>FinalBuilder (nas versões Enterprise e Architect) para automatizar o processo de build</li>
<li>Linha de comando para auditórias, métricas e geração de documentação trazendo mais funcionalidades a automatização de builds</li>
<li>Recursos do AQTime profiling que lhe permite distribuir aplicações de alta performance</li>
<li>CodeSite para registros avançados de log, melhorando a qualidade das suas aplicações</li>
</ul>
<p>Assista o vídeo:</p>
<p style="text-align: center;"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/GJ79Nu6HQys&amp;hl=en&amp;fs=1" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/GJ79Nu6HQys&amp;hl=en&amp;fs=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p style="text-align: left;">Semana que vem teremos mais previews, enquanto isso você pode ir visitando a página do <a href="www.embarcadero.com/rad-studio-xe-preview" target="_blank"><strong>RAD Studio XE Preview</strong></a></p>
<h2  class="related_post_title">Posts relacionados</h2><ul class="related_post"><li><a href="http://www.andreanolanusse.com/blogpt/datasnap-xe-e-windows-azure-preview-3/" title="DataSnap XE e Windows Azure &#8211; RAD Studio XE Preview #3">DataSnap XE e Windows Azure &#8211; RAD Studio XE Preview #3</a></li><li><a href="http://www.andreanolanusse.com/blogpt/ao-comprar-delphi-xe-aka-delphi-2011-voce-recebe-as-versoes-do-delphi-7-2007-2009-e-2010/" title="Ao comprar Delphi XE (aka Delphi 2011) você recebe as versões do Delphi 7, 2007, 2009 e 2010">Ao comprar Delphi XE (aka Delphi 2011) você recebe as versões do Delphi 7, 2007, 2009 e 2010</a></li><li><a href="http://www.andreanolanusse.com/blogpt/disponibilizada-nova-versao-do-delphi-xe-cbuilder-xe-delphi-prism-xe-e-radphp-xe/" title="Disponibilizada nova versão do Delphi XE, C++Builder XE, Delphi Prism XE e RadPHP XE">Disponibilizada nova versão do Delphi XE, C++Builder XE, Delphi Prism XE e RadPHP XE</a></li><li><a href="http://www.andreanolanusse.com/blogpt/rad-studio-xe-agora-com-delphi-xe-cbuilder-xe-delphi-prism-xe-e-radphp-xe/" title="RAD Studio XE agora com Delphi XE, C++Builder XE, Delphi Prism XE e RadPHP XE">RAD Studio XE agora com Delphi XE, C++Builder XE, Delphi Prism XE e RadPHP XE</a></li><li><a href="http://www.andreanolanusse.com/blogpt/utilizando-expressoes-regulares-para-validar-endereco-ip-no-delphi-xe/" title="Utilizando expressões regulares para validar endereço IP no Delphi XE">Utilizando expressões regulares para validar endereço IP no Delphi XE</a></li><li><a href="http://www.andreanolanusse.com/blogpt/teste-nosso-servidor-datasnap-xe-instalado-no-amazon-cloud/" title="Teste nosso servidor DataSnap XE instalado no Amazon Cloud">Teste nosso servidor DataSnap XE instalado no Amazon Cloud</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.andreanolanusse.com/blogpt/desenvolvimento-agil-delphi-xe-cbuilder-xe-delphi-prism-xe-radphp-xe/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>RAD Studio XE agora com Delphi XE, C++Builder XE, Delphi Prism XE e RadPHP XE</title>
		<link>http://www.andreanolanusse.com/blogpt/rad-studio-xe-agora-com-delphi-xe-cbuilder-xe-delphi-prism-xe-e-radphp-xe/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=rad-studio-xe-agora-com-delphi-xe-cbuilder-xe-delphi-prism-xe-e-radphp-xe</link>
		<comments>http://www.andreanolanusse.com/blogpt/rad-studio-xe-agora-com-delphi-xe-cbuilder-xe-delphi-prism-xe-e-radphp-xe/#comments</comments>
		<pubDate>Tue, 10 Aug 2010 08:07:12 +0000</pubDate>
		<dc:creator>Andreano Lanusse</dc:creator>
				<category><![CDATA[Delphi (Win32)]]></category>
		<category><![CDATA[Delphi Prism (.NET)]]></category>
		<category><![CDATA[RadPHP (Delphi for PHP)]]></category>
		<category><![CDATA[C++Builder]]></category>
		<category><![CDATA[Delphi Prism]]></category>
		<category><![CDATA[Destaque]]></category>
		<category><![CDATA[Embarcadero]]></category>
		<category><![CDATA[RadPHP]]></category>

		<guid isPermaLink="false">http://www.andreanolanusse.com/blogpt/?p=995</guid>
		<description><![CDATA[Amigos desenvolvedores, agora não é mais segredo, durante as próximas 3 semanas vocês irão conhecer algumas das novidades do próximo RAD Studio XE, você esperava algo como RAD Studio 2011 ou Delphi 2011 o que não deixa de ser, mas a nova versão do RAD Studio, Delphi, C++Builder, Delphi Prism e RadPHP se chama  XE, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.andreanolanusse.com/blogpt/wp-content/uploads/2010/08/Sneak-Video_Header.jpg"><img class="aligncenter size-full wp-image-997" title="Sneak Preview RAD Studio XE Header" src="http://www.andreanolanusse.com/blogpt/wp-content/uploads/2010/08/Sneak-Video_Header.jpg" alt="" width="582" height="120" /></a></p>
<p>Amigos desenvolvedores, agora não é mais segredo, durante as próximas 3 semanas vocês irão conhecer algumas das novidades do próximo RAD Studio XE, você esperava algo como RAD Studio 2011 ou Delphi 2011 o que não deixa de ser, mas a nova versão do RAD Studio, Delphi, C++Builder, Delphi Prism e RadPHP se chama  XE, uma mudança de nome que traz maior consistência as versões dos nossos produtos, entretanto as versões XE dos nossos produtos trazem:</p>
<ul>
<li>Suporte heterogêneo a vários bancos de dados incluído no produto sem custo adicional</li>
<li>Suporte ao ToolCloud, nossa solução para gerenciamento e distribuição de licenças para as empresas</li>
<li>Os produtos XE oferecem upgrade para o All-Access XE, onde você pode ter todas ferramentas para desenvolvimento e banco de dados da Embarcadero.</li>
</ul>
<p>E além disso outras novidades, como:</p>
<ol>
<li>RAD Studio XE é o conjunto de ferramentas da Embarcadero para desenvolvimento nativo, .NET e WEB que acompanha Delphi XE, C++Builder XE, Delphi Prism XE e RadPHP XE</li>
<li>RadPHP anteriormente conhecido como Delphi for PHP vem em nova versão e com várias novidades para o desenvolvimento de aplicações PHP</li>
<li>Integração completa com Subversion no Delphi XE, C++Builder XE e Delphi Prism XE</li>
<li>Agilidade no processo de desenvolvimento automatizando builds com FinalBuilder e algumas das funcionalidades do RAD Studio através de linha de comando</li>
<li>Geração de Diagramas de Sequência a partir de código Delphi</li>
<li>AQTime integrado e parte do RAD Studio XE melhorando a qualidade das aplicações através do Performance Profiler.</li>
</ol>
<p>Assista o vídeo abaixo e conheça alguma das novidades na prática.</p>
<p style="text-align: center;"> </p>
<p style="text-align: center;"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/cLX3KCNimic&amp;hl=en_US&amp;fs=1" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="480" height="385" src="http://www.youtube.com/v/cLX3KCNimic&amp;hl=en_US&amp;fs=1" allowfullscreen="true" allowscriptaccess="always"></embed></object></p>
<p>Isso é só o começo, durante as próximas 3 semanas estaremos comentando as novidades e trazendo novos vídeos.</p>
<p>Aproveita para visitar a página do <a href="http://www.embarcadero.com/rad-studio-xe-preview" target="_blank">RAD Studio Sneak Preview</a></p>
<p>Até breve.</p>
<h2  class="related_post_title">Posts relacionados</h2><ul class="related_post"><li><a href="http://www.andreanolanusse.com/blogpt/disponibilizada-nova-versao-do-delphi-xe-cbuilder-xe-delphi-prism-xe-e-radphp-xe/" title="Disponibilizada nova versão do Delphi XE, C++Builder XE, Delphi Prism XE e RadPHP XE">Disponibilizada nova versão do Delphi XE, C++Builder XE, Delphi Prism XE e RadPHP XE</a></li><li><a href="http://www.andreanolanusse.com/blogpt/datasnap-xe-e-windows-azure-preview-3/" title="DataSnap XE e Windows Azure &#8211; RAD Studio XE Preview #3">DataSnap XE e Windows Azure &#8211; RAD Studio XE Preview #3</a></li><li><a href="http://www.andreanolanusse.com/blogpt/ao-comprar-delphi-xe-aka-delphi-2011-voce-recebe-as-versoes-do-delphi-7-2007-2009-e-2010/" title="Ao comprar Delphi XE (aka Delphi 2011) você recebe as versões do Delphi 7, 2007, 2009 e 2010">Ao comprar Delphi XE (aka Delphi 2011) você recebe as versões do Delphi 7, 2007, 2009 e 2010</a></li><li><a href="http://www.andreanolanusse.com/blogpt/desenvolvimento-agil-delphi-xe-cbuilder-xe-delphi-prism-xe-radphp-xe/" title="Desenvolvimento Ágil = Delphi XE + C++Builder XE + Delphi Prism XE + RadPHP XE">Desenvolvimento Ágil = Delphi XE + C++Builder XE + Delphi Prism XE + RadPHP XE</a></li><li><a href="http://www.andreanolanusse.com/blogpt/delphi-tour-2010-slides-e-exemplos-disponibilizados-para-download/" title="Delphi Tour 2010 – slides e exemplos disponibilizados para download">Delphi Tour 2010 – slides e exemplos disponibilizados para download</a></li><li><a href="http://www.andreanolanusse.com/blogpt/utilizando-expressoes-regulares-para-validar-endereco-ip-no-delphi-xe/" title="Utilizando expressões regulares para validar endereço IP no Delphi XE">Utilizando expressões regulares para validar endereço IP no Delphi XE</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.andreanolanusse.com/blogpt/rad-studio-xe-agora-com-delphi-xe-cbuilder-xe-delphi-prism-xe-e-radphp-xe/feed/</wfw:commentRss>
		<slash:comments>27</slash:comments>
		</item>
		<item>
		<title>Como trabalhar com multiplas transações utilizando dbExpress Framework</title>
		<link>http://www.andreanolanusse.com/blogpt/como-trabalhar-com-multiplas-transacoes-utilizando-dbexpress-framework/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=como-trabalhar-com-multiplas-transacoes-utilizando-dbexpress-framework</link>
		<comments>http://www.andreanolanusse.com/blogpt/como-trabalhar-com-multiplas-transacoes-utilizando-dbexpress-framework/#comments</comments>
		<pubDate>Mon, 12 Jul 2010 00:04:42 +0000</pubDate>
		<dc:creator>Andreano Lanusse</dc:creator>
				<category><![CDATA[Delphi (Win32)]]></category>
		<category><![CDATA[dbExpress]]></category>
		<category><![CDATA[Destaque]]></category>
		<category><![CDATA[Embarcadero]]></category>

		<guid isPermaLink="false">http://www.andreanolanusse.com/blogpt/?p=980</guid>
		<description><![CDATA[Olá pessoal, mais um post sobre dbExpress Framework, desta vez vamos focar em controle de transações. É comum termos situações onde precisamos ter mais de uma transação em uma mesma conexão ao banco de dados, essa tarefa no dbExpress é bem simples. O método TDBXConnection.BeginTransaction inicia uma transação no banco de dados, o tipo desta transação [...]]]></description>
			<content:encoded><![CDATA[<p>Olá pessoal, mais um post sobre dbExpress Framework, desta vez vamos focar em controle de transações. É comum termos situações onde precisamos ter mais de uma transação em uma mesma conexão ao banco de dados, essa tarefa no dbExpress é bem simples.</p>
<p>O método TDBXConnection.BeginTransaction inicia uma transação no banco de dados, o tipo desta transação irá depender do parâmetro a ser passado durante a criação da transação, estes tipos podem ser:</p>
<ul>
<li>TDBXIsolations.ReadCommitted</li>
<li>TDBXIsolations.RepeatableRead</li>
<li>TDBXIsolations.DirtyRead</li>
<li>TDBXIsolations.Serializable</li>
<li>TDBXIsolations.SnapShot</li>
</ul>
<p>Você pode consultar a documentação do RAD Studio online e entender cada tipo de isolamente transacional <strong><a href="http://docwiki.embarcadero.com/VCL/en/DBXCommon.TDBXIsolations" target="_self">aqui</a></strong>. Importante lembrar que o isolamento transacional irá variar de banco para banco, verifica quais o seu banco de dados suporta.</p>
<p>Ao iniciar uma transação o método BeginTransaction retornará um objeto do tipo TDBXTransaction onde você poderá efetuar o Commit e Rollback da transação.</p>
<p>No exemplo abaixo temos duas transações onde através de uma efetuamos 5 inserts, o resultado da query mostra que os registros estão no banco de dados e não comitados ainda, a partir dai iniciamos outra transação com o nível de isolamento ReadCommited, que quer dizer trazer todos os registrados que estejam efetivamente &#8220;comitados&#8221; no banco, como ainda não fizemos o commit, o resultados do select virá fazio, ao final efetuamos o Rollback para que os registros não sejam efetivamente gravados na base de dados e depois efetuamos um commit na transação de consulta.</p>
<p>O código ficaria assim:</p>
<pre class="brush: delphi">program MultipleTransaction;
{$APPTYPE CONSOLE}

uses
  SysUtils,
  DBXDynalink,
  DBXCommon,
  DBXInterbase;

Const
  InsertSQL : String = 'Insert Into Country Values ( ''%s'', ''%s'' )';

var
  ConnName: string;
  Conn: TDBXConnection;
  TransSelect,
  TransInsert  : TDBXTransaction;
  Cmd: TDBXCommand;
  Reader: TDBXReader;
  i : integer;

begin

  Conn := TDBXConnectionFactory.GetConnectionFactory.GetConnection
    ('employee ib', 'sysdba', 'masterkey');

  if Conn &lt;&gt; nil then
  begin

    Cmd := Conn.CreateCommand;

    // Start transaction - only inserts
    TransInsert := Conn.BeginTransaction(TDBXIsolations.ReadCommitted);

    for I := 1 to 5 do
    begin
      Cmd.Text := Format(InsertSQL, [ 'Record ' + IntToStr(I), IntToStr(I)]);
      Cmd.Prepare;
      Cmd.ExecuteUpdate;
    end;

    // Prepare and execute the SQL Statement
    Cmd.Text := 'SELECT * FROM Country Where Country Like ''Rec%''';
    Cmd.Prepare;

    Reader := Cmd.ExecuteQuery;

    Writeln('========== First Select including the new 5 records');
    while Reader.Next do
      Writeln(Reader.Value['Country'].GetAnsiString);

    // Start new transaction - doesn't include the inserted record
    TransSelect := Conn.BeginTransaction(TDBXIsolations.DirtyRead);

    Writeln('====================================================');
    Writeln('');

    Reader := Cmd.ExecuteQuery;

    Writeln('========== Second Select based on new transaction');
    while Reader.Next do
      Writeln(Reader.Value['Country'].GetAnsiString);

    // Commit Select transaction and Rollback the Insert transaction
    Conn.CommitFreeAndNil(TransSelect);
    Conn.RollbackFreeAndNil(TransInsert);

    Readln;
    Reader.Free;
    Cmd.Free;
    Conn.Free;

  end;

end.</pre>
<p>Ao executar o código acima, temos o seguinte resultado:</p>
<p><a href="http://www.andreanolanusse.com/blogpt/wp-content/uploads/2010/07/DBXCmdResult.jpg"><img class="alignleft size-full wp-image-981" title="dbExpress result" src="http://www.andreanolanusse.com/blogpt/wp-content/uploads/2010/07/DBXCmdResult.jpg" alt="" width="677" height="340" /></a></p>
<h2  class="related_post_title">Posts relacionados</h2><ul class="related_post"><li><a href="http://www.andreanolanusse.com/blogpt/utilizando-expressoes-regulares-para-validar-endereco-ip-no-delphi-xe/" title="Utilizando expressões regulares para validar endereço IP no Delphi XE">Utilizando expressões regulares para validar endereço IP no Delphi XE</a></li><li><a href="http://www.andreanolanusse.com/blogpt/ao-comprar-delphi-xe-aka-delphi-2011-voce-recebe-as-versoes-do-delphi-7-2007-2009-e-2010/" title="Ao comprar Delphi XE (aka Delphi 2011) você recebe as versões do Delphi 7, 2007, 2009 e 2010">Ao comprar Delphi XE (aka Delphi 2011) você recebe as versões do Delphi 7, 2007, 2009 e 2010</a></li><li><a href="http://www.andreanolanusse.com/blogpt/teste-nosso-servidor-datasnap-xe-instalado-no-amazon-cloud/" title="Teste nosso servidor DataSnap XE instalado no Amazon Cloud">Teste nosso servidor DataSnap XE instalado no Amazon Cloud</a></li><li><a href="http://www.andreanolanusse.com/blogpt/disponibilizada-nova-versao-do-delphi-xe-cbuilder-xe-delphi-prism-xe-e-radphp-xe/" title="Disponibilizada nova versão do Delphi XE, C++Builder XE, Delphi Prism XE e RadPHP XE">Disponibilizada nova versão do Delphi XE, C++Builder XE, Delphi Prism XE e RadPHP XE</a></li><li><a href="http://www.andreanolanusse.com/blogpt/datasnap-xe-e-windows-azure-preview-3/" title="DataSnap XE e Windows Azure &#8211; RAD Studio XE Preview #3">DataSnap XE e Windows Azure &#8211; RAD Studio XE Preview #3</a></li><li><a href="http://www.andreanolanusse.com/blogpt/desenvolvimento-agil-delphi-xe-cbuilder-xe-delphi-prism-xe-radphp-xe/" title="Desenvolvimento Ágil = Delphi XE + C++Builder XE + Delphi Prism XE + RadPHP XE">Desenvolvimento Ágil = Delphi XE + C++Builder XE + Delphi Prism XE + RadPHP XE</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.andreanolanusse.com/blogpt/como-trabalhar-com-multiplas-transacoes-utilizando-dbexpress-framework/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Delphi Tour 2010 – slides e exemplos disponibilizados para download</title>
		<link>http://www.andreanolanusse.com/blogpt/delphi-tour-2010-slides-e-exemplos-disponibilizados-para-download/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=delphi-tour-2010-slides-e-exemplos-disponibilizados-para-download</link>
		<comments>http://www.andreanolanusse.com/blogpt/delphi-tour-2010-slides-e-exemplos-disponibilizados-para-download/#comments</comments>
		<pubDate>Fri, 25 Jun 2010 20:26:49 +0000</pubDate>
		<dc:creator>Andreano Lanusse</dc:creator>
				<category><![CDATA[Delphi (Win32)]]></category>
		<category><![CDATA[Delphi Prism (.NET)]]></category>
		<category><![CDATA[DataSnap]]></category>
		<category><![CDATA[Delphi Prism]]></category>
		<category><![CDATA[Destaque]]></category>
		<category><![CDATA[Embarcadero]]></category>
		<category><![CDATA[Eventos]]></category>
		<category><![CDATA[SQL Tunning]]></category>

		<guid isPermaLink="false">http://www.andreanolanusse.com/blogpt/?p=955</guid>
		<description><![CDATA[Estimados desenvolvedores Delphi, primeiramente obrigado a todos que participaram do Delphi Tour 2010, foram 2 semanas por várias cidades conversando frente a frente com a comunidade Delphi, compartilhando conhecimento e anotando as inúmeras sugestões para fazer o Delphi cada vez melhor. Como prometido, estou disponibilizando os slides e exemplos utilizados nas apresentações, somente a apresentação [...]]]></description>
			<content:encoded><![CDATA[<p>Estimados desenvolvedores Delphi, primeiramente obrigado a todos que participaram do Delphi Tour 2010, foram 2 semanas por várias cidades conversando frente a frente com a comunidade Delphi, compartilhando conhecimento e anotando as inúmeras sugestões para fazer o Delphi cada vez melhor.</p>
<p>Como prometido, estou disponibilizando os slides e exemplos utilizados nas apresentações, somente a apresentação sobre o RAD Studio RoadMap será direcionado para o EDN, onde o mesmo é atualizado frequentemente e pode ser acessado através deste <strong><a href="http://edn.embarcadero.com/article/39934" target="_blank">link</a></strong>.</p>
<div id="__ss_4615747" style="width: 425px;"><strong style="display: block; margin: 12px 0 4px;"><a title="Resolvendo problemas de performance em aplicações Delphi e bancos de dados" href="http://www.slideshare.net/andreanolanusse/resolvendo-problemas-de-performance-em-aplicaes-delphi-e-bancos-de-dados">Resolvendo problemas de performance em aplicações Delphi e bancos de dados</a></strong><object id="__sse4615747" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=resolvendoproblemasdeperformanceemaplicaesdelphiebancosdedados-100625140513-phpapp01&amp;stripped_title=resolvendo-problemas-de-performance-em-aplicaes-delphi-e-bancos-de-dados" /><param name="name" value="__sse4615747" /><param name="allowfullscreen" value="true" /><embed id="__sse4615747" type="application/x-shockwave-flash" width="425" height="355" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=resolvendoproblemasdeperformanceemaplicaesdelphiebancosdedados-100625140513-phpapp01&amp;stripped_title=resolvendo-problemas-de-performance-em-aplicaes-delphi-e-bancos-de-dados" name="__sse4615747" allowscriptaccess="always" allowfullscreen="true"></embed></object></div>
<div id="__ss_4615203" style="width: 425px;"><strong style="display: block; margin: 12px 0 4px;"><a title="Testando aplicações DataSnap" href="http://www.slideshare.net/andreanolanusse/testando-aplicaes-data-snap">Testando aplicações DataSnap</a></strong><object id="__sse4615203" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=testandoaplicaesdatasnap-100625133824-phpapp02&amp;stripped_title=testando-aplicaes-data-snap" /><param name="name" value="__sse4615203" /><param name="allowfullscreen" value="true" /><embed id="__sse4615203" type="application/x-shockwave-flash" width="425" height="355" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=testandoaplicaesdatasnap-100625133824-phpapp02&amp;stripped_title=testando-aplicaes-data-snap" name="__sse4615203" allowscriptaccess="always" allowfullscreen="true"></embed></object></div>
<div id="__ss_4614887" style="width: 425px;"><strong style="display: block; margin: 12px 0 4px;"><a title="Integrando Skype em aplicações Delphi" href="http://www.slideshare.net/andreanolanusse/integrando-skype-em-aplicaes-delphi">Integrando Skype em aplicações Delphi</a></strong><object id="__sse4614887" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=integrandoskypeemaplicaesdelphi-100625131923-phpapp01&amp;stripped_title=integrando-skype-em-aplicaes-delphi" /><param name="name" value="__sse4614887" /><param name="allowfullscreen" value="true" /><embed id="__sse4614887" type="application/x-shockwave-flash" width="425" height="355" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=integrandoskypeemaplicaesdelphi-100625131923-phpapp01&amp;stripped_title=integrando-skype-em-aplicaes-delphi" name="__sse4614887" allowscriptaccess="always" allowfullscreen="true"></embed></object></div>
<div id="__ss_4616368" style="width: 425px;"><strong style="display: block; margin: 12px 0 4px;"><a title="Delphi Prism 2011" href="http://www.slideshare.net/andreanolanusse/delphi-prism-2011">Delphi Prism 2011</a></strong><object id="__sse4616368" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=delphiprism2011-100625145602-phpapp01&amp;stripped_title=delphi-prism-2011" /><param name="name" value="__sse4616368" /><param name="allowfullscreen" value="true" /><embed id="__sse4616368" type="application/x-shockwave-flash" width="425" height="355" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=delphiprism2011-100625145602-phpapp01&amp;stripped_title=delphi-prism-2011" name="__sse4616368" allowscriptaccess="always" allowfullscreen="true"></embed></object></div>
<p>O código fonte dos exemplos utilizados nas apresentações sobre DataSnap e Skype, podem ser obtidos através dos links abaixo:</p>
<ul>
<li>Aplicação ASP.NET utilizando AJAX, dbExpress, Themes, Skin e outros recursos, download <strong><a href="http://cc.embarcadero.com/download.aspx?id=27770" target="_blank">aqui</a></strong></li>
<li>Aplicação DataSnap, cliente, servidor e testes unitários, download <strong><a href="http://cc.embarcadero.com/download.aspx?id=27391">aqui</a></strong></li>
<li>Aplicação Delphi integrada a Skype, utillizando Skype API e Skype4COM, download <strong><a href="http://cc.embarcadero.com/download.aspx?id=27742">aqui</a></strong></li>
</ul>
<h2  class="related_post_title">Posts relacionados</h2><ul class="related_post"><li><a href="http://www.andreanolanusse.com/blogpt/delphi-tour-2010-um-resumo-do-que-sera-o-evento/" title="Delphi Tour 2010 – Um resumo do que será o evento">Delphi Tour 2010 – Um resumo do que será o evento</a></li><li><a href="http://www.andreanolanusse.com/blogpt/teste-nosso-servidor-datasnap-xe-instalado-no-amazon-cloud/" title="Teste nosso servidor DataSnap XE instalado no Amazon Cloud">Teste nosso servidor DataSnap XE instalado no Amazon Cloud</a></li><li><a href="http://www.andreanolanusse.com/blogpt/disponibilizada-nova-versao-do-delphi-xe-cbuilder-xe-delphi-prism-xe-e-radphp-xe/" title="Disponibilizada nova versão do Delphi XE, C++Builder XE, Delphi Prism XE e RadPHP XE">Disponibilizada nova versão do Delphi XE, C++Builder XE, Delphi Prism XE e RadPHP XE</a></li><li><a href="http://www.andreanolanusse.com/blogpt/datasnap-xe-e-windows-azure-preview-3/" title="DataSnap XE e Windows Azure &#8211; RAD Studio XE Preview #3">DataSnap XE e Windows Azure &#8211; RAD Studio XE Preview #3</a></li><li><a href="http://www.andreanolanusse.com/blogpt/rad-studio-xe-agora-com-delphi-xe-cbuilder-xe-delphi-prism-xe-e-radphp-xe/" title="RAD Studio XE agora com Delphi XE, C++Builder XE, Delphi Prism XE e RadPHP XE">RAD Studio XE agora com Delphi XE, C++Builder XE, Delphi Prism XE e RadPHP XE</a></li><li><a href="http://www.andreanolanusse.com/blogpt/delphi-tour-2010/" title="Delphi Tour 2010">Delphi Tour 2010</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.andreanolanusse.com/blogpt/delphi-tour-2010-slides-e-exemplos-disponibilizados-para-download/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Delphi Tour 2010 – Um resumo do que será o evento</title>
		<link>http://www.andreanolanusse.com/blogpt/delphi-tour-2010-um-resumo-do-que-sera-o-evento/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=delphi-tour-2010-um-resumo-do-que-sera-o-evento</link>
		<comments>http://www.andreanolanusse.com/blogpt/delphi-tour-2010-um-resumo-do-que-sera-o-evento/#comments</comments>
		<pubDate>Fri, 11 Jun 2010 05:30:30 +0000</pubDate>
		<dc:creator>Andreano Lanusse</dc:creator>
				<category><![CDATA[Delphi (Win32)]]></category>
		<category><![CDATA[DataSnap]]></category>
		<category><![CDATA[dbExpress]]></category>
		<category><![CDATA[Delphi Prism]]></category>
		<category><![CDATA[Embarcadero]]></category>
		<category><![CDATA[Eventos]]></category>

		<guid isPermaLink="false">http://www.andreanolanusse.com/blogpt/?p=949</guid>
		<description><![CDATA[Comunidade, O objeto deste post é comentar um pouco do que pretendo apresentar do Delphi Tour 2010, novidades e muito conteúdo técnico que lhe ajudará a aprimorar seu conhecimento em desenvolvimento Delphi. Vamos começar atualizando vocês sobre a Embarcadero e o novo RoadMap do Delphi, onde trago detalhes em primeira mão dos nossos planos para [...]]]></description>
			<content:encoded><![CDATA[<p>Comunidade, O objeto deste post é comentar um pouco do que pretendo apresentar do Delphi Tour 2010, novidades e muito conteúdo técnico que lhe ajudará a aprimorar seu conhecimento em desenvolvimento Delphi.</p>
<p>Vamos começar atualizando vocês sobre a Embarcadero e o novo RoadMap do Delphi, onde trago detalhes em primeira mão dos nossos planos para o futuro do Delphi.</p>
<p>Em seguinda vamos abordar o novo Delphi Prism 2011, que está prontinho e 100% compatível com .NET 4, são várias as novidades no produto, novos recursos na linguagem, suporte a SilverLight, paralell FX, importar código C# para Delphi, suporte a MonoDevelop que integrado ao MonoTouch nos permite criar aplicações para iPhone com Delphi.</p>
<p><img class="aligncenter size-full wp-image-944" title="Delphi Tour 2010" src="http://www.andreanolanusse.com/blogpt/wp-content/uploads/2010/05/Delphi-Tour-2010.jpg" alt="Delphi Tour 2010 - Brasil" width="623" height="198" /></p>
<p>O próximo tema vai focar em problemas de otimização de SQL em aplicações Delphi, vocês vão ver como otimizar SQL mal escritos nas suas aplicações de forma muito fácil, tudo isso através da integração entre Delphi e DB Optimizer.</p>
<p>Depois um dos temas mais esperados e o meu favorito DataSnap. Nesta apresentação vamos conversar bastante sobre testes em aplicações DataSnap, os ServerMethods nos permite fazer milagres e altamente flexível, isso nos permite trabalhar e automatizar muitos testes. Durante a apresentação vou mostrar algumas exemplos de como fazer isso, assim como as melhores práticas no desenvolvimento.</p>
<p>Pra finalizar, vou mostrar como desenvolver aplicações integradas aos Skype, usar todos os recursos do Skype juntamente com sua aplicação, analisar as API&#8217;s disponíveis, comentar suas vantagens e desvantagens e mostrar na práticas como utilizá-las.</p>
<h3><span style="color: #ff0000;"><span style="text-decoration: underline;">Além disso, aqueles que participarem do Delphi Tour terão descontos especiais. Um aviso muito importante, este mês é a última chance de atualizar suas licenças antigas  (Delphi 1 a Delphi 7) com preço upgrade, se você não fizer agora, irá pagar preço cheio.</span></span></h3>
<p>As inscrições para o Delphi Tour estão abertas, corra e garanta sua vaga já &#8211; Inscrições <strong><a href="http://bit.ly/delphitour" target="_blank">aqui</a></strong></p>
<h2  class="related_post_title">Posts relacionados</h2><ul class="related_post"><li><a href="http://www.andreanolanusse.com/blogpt/delphi-tour-2010-slides-e-exemplos-disponibilizados-para-download/" title="Delphi Tour 2010 – slides e exemplos disponibilizados para download">Delphi Tour 2010 – slides e exemplos disponibilizados para download</a></li><li><a href="http://www.andreanolanusse.com/blogpt/delphi-tour-2010/" title="Delphi Tour 2010">Delphi Tour 2010</a></li><li><a href="http://www.andreanolanusse.com/blogpt/como-utilizar-parametros-em-dbexpress-dbx-framework/" title="Como utilizar parâmetros em dbExpress (DBX) Framework">Como utilizar parâmetros em dbExpress (DBX) Framework</a></li><li><a href="http://www.andreanolanusse.com/blogpt/disponibilizando-metodos-de-uma-classe-como-server-methods-sem-usar-tservermodule-em-datasnap/" title="Disponibilizando métodos de uma classe como Server Methods sem usar TServerModule em DataSnap">Disponibilizando métodos de uma classe como Server Methods sem usar TServerModule em DataSnap</a></li><li><a href="http://www.andreanolanusse.com/blogpt/teste-nosso-servidor-datasnap-xe-instalado-no-amazon-cloud/" title="Teste nosso servidor DataSnap XE instalado no Amazon Cloud">Teste nosso servidor DataSnap XE instalado no Amazon Cloud</a></li><li><a href="http://www.andreanolanusse.com/blogpt/disponibilizada-nova-versao-do-delphi-xe-cbuilder-xe-delphi-prism-xe-e-radphp-xe/" title="Disponibilizada nova versão do Delphi XE, C++Builder XE, Delphi Prism XE e RadPHP XE">Disponibilizada nova versão do Delphi XE, C++Builder XE, Delphi Prism XE e RadPHP XE</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.andreanolanusse.com/blogpt/delphi-tour-2010-um-resumo-do-que-sera-o-evento/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Delphi Tour 2010</title>
		<link>http://www.andreanolanusse.com/blogpt/delphi-tour-2010/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=delphi-tour-2010</link>
		<comments>http://www.andreanolanusse.com/blogpt/delphi-tour-2010/#comments</comments>
		<pubDate>Mon, 31 May 2010 02:37:13 +0000</pubDate>
		<dc:creator>Andreano Lanusse</dc:creator>
				<category><![CDATA[Delphi (Win32)]]></category>
		<category><![CDATA[Delphi Prism (.NET)]]></category>
		<category><![CDATA[DataSnap]]></category>
		<category><![CDATA[Embarcadero]]></category>
		<category><![CDATA[Eventos]]></category>

		<guid isPermaLink="false">http://www.andreanolanusse.com/blogpt/?p=943</guid>
		<description><![CDATA[Comunidade Delphi está chegando o Delphi Tour 2010, as inscrições já foram abertas e serão 8 cidades que receberão este Tour. No mês da copa teremos Delphi Tour no Brasil e a corrida ao HEXA . Serão 2 semanas de Delphi Tour, onde estarei apresentando diversos temas relacionados ao desenvolvimento de aplicações e gostaria de [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-944" title="Delphi Tour 2010" src="http://www.andreanolanusse.com/blogpt/wp-content/uploads/2010/05/Delphi-Tour-2010.jpg" alt="Delphi Tour 2010 - Brasil" width="623" height="198" /></p>
<p>Comunidade Delphi está chegando o Delphi Tour 2010, as inscrições já foram abertas e serão 8 cidades que receberão este Tour. No mês da copa teremos Delphi Tour no Brasil e a corrida ao HEXA <img src='http://www.andreanolanusse.com/blogpt/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>Serão 2 semanas de Delphi Tour, onde estarei apresentando diversos temas relacionados ao desenvolvimento de aplicações e gostaria de convidar toda a comunidade Delphi a participar deste evento, como de sempre 100% técnico e com um conteúdo excelente.</p>
<p>Este Tour trará os seguintes temas:</p>
<ul>
<li><strong>Embarcadero Update e Delphi RoadMap</strong><em> Para começar vamos apresentar os planos atuais e futuras da Embarcadero e o novo Delphi RoadMap</em></li>
<li><strong>Novidades do Delphi Prism 2011</strong><em> Nesta sessão você irá conhecer o novo Delphi Prism 2011 com total suporte a .NET 4.0 e integrado ao Visual Studio Shell 2010, além de diversas outras novidades suporte a SilverLight 4, ASP.NET, MVC, parallel extensions, novos recursos na linguagem e conversão de código C# para Delphi Prism.</em></li>
<li><strong>Resolvendo problemas de performance em aplicações Delphi e bancos de dados</strong><em>Encontrar as causas dos problemas de desempenho em aplicações e banco de dados consome muito tempo e não é uma tarefa simples. Durante esta apresentação através de um cenário real vamos conhecer como a integração entre ER/Studio, RAD Studio e DB Optimizer nos pode ajudar a localizar e resolver os problemas no código, SQL e banco de dados.</em></li>
<li><strong>Testando aplicações DataSnap</strong><em>A nova arquitetura do DataSnap permite disponibilizar regras de negócios através de Server Methods, esta arquitetura facilita a integração com frameworks de testes, com isso podemos automatizar os testes a cada nova versão dos servidores DataSnap, durante esta apresentação vamos aprender como implementar testes em nossos projetos DataSnap.</em></li>
<li><strong>Integrando Skype em aplicações Delphi</strong><em>Skype é um dos meios mais utilizados no mundo para conectar pessoas, milhões de usuários utilizam esta ferramenta diariamente, assim sendo porque não integrar nossas aplicações ao Skype? Através do Skype API podemos efetuar chamadas, receber, encaminhar, criar vídeo conferência e muito mais, praticamente tudo está disponível através desta API. Nesta apresentação vamos aprender na prática como integrar nossas aplicações Delphi ao Skype e utilizar os componentes TMS Smooth Controls para criar interfaces ricas.</em></li>
</ul>
<p>O conteúdo é de primeira, enquanto isso faça sua inscrição <strong><a href="http://www.embarcadero.com/br/delphi-tour-2010" target="_blank">aqui , </a></strong>comente com seus amigos e ajude a divulgar o evento.</p>
<h2  class="related_post_title">Posts relacionados</h2><ul class="related_post"><li><a href="http://www.andreanolanusse.com/blogpt/delphi-tour-2010-slides-e-exemplos-disponibilizados-para-download/" title="Delphi Tour 2010 – slides e exemplos disponibilizados para download">Delphi Tour 2010 – slides e exemplos disponibilizados para download</a></li><li><a href="http://www.andreanolanusse.com/blogpt/delphi-tour-2010-um-resumo-do-que-sera-o-evento/" title="Delphi Tour 2010 – Um resumo do que será o evento">Delphi Tour 2010 – Um resumo do que será o evento</a></li><li><a href="http://www.andreanolanusse.com/blogpt/teste-nosso-servidor-datasnap-xe-instalado-no-amazon-cloud/" title="Teste nosso servidor DataSnap XE instalado no Amazon Cloud">Teste nosso servidor DataSnap XE instalado no Amazon Cloud</a></li><li><a href="http://www.andreanolanusse.com/blogpt/datasnap-xe-e-windows-azure-preview-3/" title="DataSnap XE e Windows Azure &#8211; RAD Studio XE Preview #3">DataSnap XE e Windows Azure &#8211; RAD Studio XE Preview #3</a></li><li><a href="http://www.andreanolanusse.com/blogpt/como-utilizar-parametros-em-dbexpress-dbx-framework/" title="Como utilizar parâmetros em dbExpress (DBX) Framework">Como utilizar parâmetros em dbExpress (DBX) Framework</a></li><li><a href="http://www.andreanolanusse.com/blogpt/copiando-estrutura-e-dados-de-um-dbxreader-para-clientdataset-datasnap-2010/" title="Copiando estrutura e dados de um DBXReader para ClientDataSet – DataSnap 2010">Copiando estrutura e dados de um DBXReader para ClientDataSet – DataSnap 2010</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.andreanolanusse.com/blogpt/delphi-tour-2010/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>Como utilizar parâmetros em dbExpress (DBX) Framework</title>
		<link>http://www.andreanolanusse.com/blogpt/como-utilizar-parametros-em-dbexpress-dbx-framework/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=como-utilizar-parametros-em-dbexpress-dbx-framework</link>
		<comments>http://www.andreanolanusse.com/blogpt/como-utilizar-parametros-em-dbexpress-dbx-framework/#comments</comments>
		<pubDate>Tue, 25 May 2010 18:23:22 +0000</pubDate>
		<dc:creator>Andreano Lanusse</dc:creator>
				<category><![CDATA[Delphi (Win32)]]></category>
		<category><![CDATA[C++Builder]]></category>
		<category><![CDATA[DataSnap]]></category>
		<category><![CDATA[dbExpress]]></category>
		<category><![CDATA[Embarcadero]]></category>

		<guid isPermaLink="false">http://www.andreanolanusse.com/blogpt/?p=941</guid>
		<description><![CDATA[Em reposta a dúvida do Rafael e Carlos Gonzaga sobre como criar consultadas parametrizadas com dbExpress Framework resolvi escrever sobre o tema. Para começar, existe uma pequena diferença ao utilizar parâmetros em SQL com DBX Framework e VCL. Enquanto a VCL utiliza &#8220;:PARAMETRO&#8221; para definir parâmetros em uma query, em DBX Framework parâmetro é representado [...]]]></description>
			<content:encoded><![CDATA[<p>Em reposta a dúvida do Rafael e Carlos Gonzaga sobre como criar consultadas parametrizadas com dbExpress Framework resolvi escrever sobre o tema.</p>
<p>Para começar, existe uma pequena diferença ao utilizar parâmetros em SQL com DBX Framework e VCL. Enquanto a VCL utiliza &#8220;:PARAMETRO&#8221; para definir parâmetros em uma query, em DBX Framework parâmetro é representado pelo sinal de &#8220;?&#8221; e não inclui nome.</p>
<p>Como estamos acostumados com a VCL e certamente é muito mais legível codificar utilizando o nome dos parâmetros, você espera trabalhar da mesma forma com DBX Framework e isso é possível criando uma pequena extensão ao DBX Framework.</p>
<p>Para entender melhor, caso você utilize puramente o framework, seu código seria assim:</p>
<pre class="brush: delphi">program DBX4Example;

{$APPTYPE CONSOLE}

uses
  SysUtils,
  DBXDynalink,
  DBXCommon,
  DBXInterbase;

var

  aDBXConn: TDBXConnection;
  aDBXTrans : TDBXTransaction;
  aCmnd: TDBXCommand;
  aReader: TDBXReader;

begin

    aDBXConn := TDBXConnectionFactory.GetConnectionFactory.GetConnection('employee ib','sysdba','masterkey');

    if aDBXConn &lt;&gt; nil then
    begin

      aCmnd := aDBXConn.CreateCommand;

      // Start transaction
      aDBXTrans:= aDBXConn.BeginTransaction(TDBXIsolations.ReadCommitted);

      // Prepare and execute the SQL Statement
      aCmnd.Text := 'SELECT * FROM Country  Where Country = ?';
      aCmnd.Prepare;
      aCmnd.Parameters.Parameter[0].Value.SetAnsiString('USA');
      aReader := aCmnd.ExecuteQuery;

      while aReader.Next do
      begin
        Writeln( aReader.Value['Country'].GetAnsiString );
      end;

      // Commit transaction
      aDBXConn.CommitFreeAndNil(aDBXTrans);

      Readln;
      aReader.Free;
      aCmnd.Free;
      aDbxConn.Free;
    end;
end.</pre>
<p>Veja que a query utiliza interrogação para definir o parâmetro e após o Prepare a longa linha para definir o valor do parâmetro com posição zero.</p>
<p>Esta primeira parte responderia a pergunta do Rafael e do Carlos, mas podemos tornar esse código mais amigável utilizando Class Helpers, recurso este que foi implementado no Delphi 2006 e nos ajuda a extender classes sem utilizar herança.</p>
<p>Assim sendo vou estender a classe TDBXParameterList, o qual irá permitir que eu nomeie os parâmetros e define seus respectivos valores por nome.</p>
<p>O código abaixo estende a classe utilizando a sintaxe <strong>class helper</strong>, veja bem isso não é herança. Esta extensão define os seguintes métodos:<br />
SetParamatersName: este método irá receber uma lista de nomes, o qual será usado para nomear os parâmetros, você deve passar a quantidade de nomes igual a quantidade de parâmetros;<br />
ByName: método que nos permite acessar os parâmetros através do nome, o DBX Framework traz o método GetOrdinal que permite acessar os parâmetros por nome, o ByName irá simplificar este acesso;</p>
<pre class="brush: delphi">unit DBXParameterListHelper;

interface

uses
  DBXCommon, SysUtils;

type
  TDBXParameterListHelper = class helper for TDBXParameterList

  public
    procedure SetParamatersName(aNames: Array of String);
    function ByName( Name : String ) : TDBXWritableValue;
  end;

implementation

{ TDBXParameterListHelper }

function TDBXParameterListHelper.ByName(Name: String): TDBXWritableValue;
begin
  Result := Self.Parameter[Self.GetOrdinal(Name)].Value;
end;

procedure TDBXParameterListHelper.SetParamatersName(aNames: array of String);
var
  i: Integer;
begin

  if Length(aNames) &lt;&gt; Self.Count then
     raise Exception.Create('aNames should have the same number of parameters');

  for i := 0 to Self.Count - 1 do
  begin
    Self[i].Name := aNames[i];
  end;
end;

end.</pre>
<p>Com está extensão esta parte do código:</p>
<pre class="brush: delphi">      // Prepare and execute the SQL Statement
      aCmnd.Text := 'SELECT * FROM Country  Where Country = ?';
      aCmnd.Prepare;
      aCmnd.Parameters.Parameter[0].Value.SetAnsiString('USA');</pre>
<p>Ficaria assim:</p>
<pre class="brush: delphi">      // Prepare and execute the SQL Statement
      aCmnd.Text := 'SELECT * FROM Country  Where Country = ?';
      aCmnd.Prepare;
      aCmnd.Parameters.SetParamatersName(['COUNTRYNAME']);
      aCmnd.Parameters.ByName('COUNTRYNAME').SetAnsiString('USA');</pre>
<p>Caso a query tenha vários parâmetros, ficaria assim:</p>
<pre class="brush: delphi">      // Prepare and execute the SQL Statement
      aCmnd.Text := 'SELECT * FROM Country  Where Country = ? and Currency = ?';
      aCmnd.Prepare;
      aCmnd.Parameters.SetParamatersName(['COUNTRYNAME', 'CURRENCY']);
      aCmnd.Parameters.ByName('COUNTRYNAME').SetAnsiString('USA');
      aCmnd.Parameters.ByName('CURRENCY').SetAnsiString('Dolar');</pre>
<p>Ao final vimos como utilizar consultas parametrizadas com DBX Framework e como utilizar class helper para estender classes.</p>
<p>Download do código fonte <strong><a href="http://cc.embarcadero.com/download.aspx?id=27740" target="_blank">aqui</a></strong>.</p>
<h2  class="related_post_title">Posts relacionados</h2><ul class="related_post"><li><a href="http://www.andreanolanusse.com/blogpt/datasnap-xe-e-windows-azure-preview-3/" title="DataSnap XE e Windows Azure &#8211; RAD Studio XE Preview #3">DataSnap XE e Windows Azure &#8211; RAD Studio XE Preview #3</a></li><li><a href="http://www.andreanolanusse.com/blogpt/delphi-tour-2010-um-resumo-do-que-sera-o-evento/" title="Delphi Tour 2010 – Um resumo do que será o evento">Delphi Tour 2010 – Um resumo do que será o evento</a></li><li><a href="http://www.andreanolanusse.com/blogpt/disponibilizando-metodos-de-uma-classe-como-server-methods-sem-usar-tservermodule-em-datasnap/" title="Disponibilizando métodos de uma classe como Server Methods sem usar TServerModule em DataSnap">Disponibilizando métodos de uma classe como Server Methods sem usar TServerModule em DataSnap</a></li><li><a href="http://www.andreanolanusse.com/blogpt/ao-comprar-delphi-xe-aka-delphi-2011-voce-recebe-as-versoes-do-delphi-7-2007-2009-e-2010/" title="Ao comprar Delphi XE (aka Delphi 2011) você recebe as versões do Delphi 7, 2007, 2009 e 2010">Ao comprar Delphi XE (aka Delphi 2011) você recebe as versões do Delphi 7, 2007, 2009 e 2010</a></li><li><a href="http://www.andreanolanusse.com/blogpt/teste-nosso-servidor-datasnap-xe-instalado-no-amazon-cloud/" title="Teste nosso servidor DataSnap XE instalado no Amazon Cloud">Teste nosso servidor DataSnap XE instalado no Amazon Cloud</a></li><li><a href="http://www.andreanolanusse.com/blogpt/disponibilizada-nova-versao-do-delphi-xe-cbuilder-xe-delphi-prism-xe-e-radphp-xe/" title="Disponibilizada nova versão do Delphi XE, C++Builder XE, Delphi Prism XE e RadPHP XE">Disponibilizada nova versão do Delphi XE, C++Builder XE, Delphi Prism XE e RadPHP XE</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.andreanolanusse.com/blogpt/como-utilizar-parametros-em-dbexpress-dbx-framework/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Delphi, ER/Studio e DB Optimizer em ação</title>
		<link>http://www.andreanolanusse.com/blogpt/delphi-erstudio-and-db-optimizer-em-acao/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=delphi-erstudio-and-db-optimizer-em-acao</link>
		<comments>http://www.andreanolanusse.com/blogpt/delphi-erstudio-and-db-optimizer-em-acao/#comments</comments>
		<pubDate>Tue, 25 May 2010 00:57:10 +0000</pubDate>
		<dc:creator>Andreano Lanusse</dc:creator>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[Delphi (Win32)]]></category>
		<category><![CDATA[Delphi Prism (.NET)]]></category>
		<category><![CDATA[C++Builder]]></category>
		<category><![CDATA[DB Optimizer]]></category>
		<category><![CDATA[Embarcadero]]></category>
		<category><![CDATA[ER/Studio]]></category>
		<category><![CDATA[Vídeo]]></category>

		<guid isPermaLink="false">http://www.andreanolanusse.com/blogpt/?p=939</guid>
		<description><![CDATA[Recentemente eu comentei aqui sobre 2 promoções tentadoras para os usuários de Delphi e C++Builder, em uma delas você compra RAD Studio Enterprise e leva Architect, que inclui o ER/Studio Developer Edition e o DB Optimizer GRÁTIS. Nada melhor do que assistir um vídeo e ver como estas 3 ferramentas juntas podem lhe ajudar. Obtenha [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://www.andreanolanusse.com/blogpt/wp-content/uploads/2010/03/Icon_DBOptimizer.png"><img class="size-full wp-image-862 alignnone" title="DB Optimizer" src="http://www.andreanolanusse.com/blogpt/wp-content/uploads/2010/03/Icon_DBOptimizer.png" alt="" width="175" height="175" /></a><a href="http://www.andreanolanusse.com/blogpt/wp-content/uploads/2010/03/Icon_Delphi.png"><img class="size-full wp-image-781 alignnone" title="Delphi" src="http://www.andreanolanusse.com/blogpt/wp-content/uploads/2010/03/Icon_Delphi.png" alt="" width="175" height="175" /></a><a href="http://www.andreanolanusse.com/blogpt/wp-content/uploads/2010/05/Icon_ERstudio.png"><img class="size-full wp-image-940 alignnone" title="ER/Studio" src="http://www.andreanolanusse.com/blogpt/wp-content/uploads/2010/05/Icon_ERstudio.png" alt="" width="175" height="175" /></a></p>
<p style="text-align: center;">
<p style="text-align: center;">
<p>Recentemente eu comentei aqui sobre 2 <a href="http://www.andreanolanusse.com/blogpt/duas-promocoes-tentadoras-para-os-usuarios-de-delphi-e-cbuilder/" target="_blank"><strong>promoções tentadoras</strong></a> para os usuários de Delphi e C++Builder, em uma delas você compra RAD Studio Enterprise e leva Architect, que inclui o ER/Studio Developer Edition e o DB Optimizer GRÁTIS.</p>
<p>Nada melhor do que assistir um vídeo e ver como estas 3 ferramentas juntas podem lhe ajudar.</p>
<p style="text-align: center;">
<p style="text-align: center;"><object style="height: 344px; width: 425px;" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="100" height="100" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://www.youtube.com/v/HVTGiR6z7oM" /><param name="allowfullscreen" value="true" /><embed style="height: 344px; width: 425px;" type="application/x-shockwave-flash" width="100" height="100" src="http://www.youtube.com/v/HVTGiR6z7oM" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p style="text-align: left;">Obtenha todas as informações sobre as promoções <a href="http://www.embarcadero.com/radoffer" target="_blank">aqui</a>.</p>
<h2  class="related_post_title">Posts relacionados</h2><ul class="related_post"><li><a href="http://www.andreanolanusse.com/blogpt/ao-comprar-delphi-xe-aka-delphi-2011-voce-recebe-as-versoes-do-delphi-7-2007-2009-e-2010/" title="Ao comprar Delphi XE (aka Delphi 2011) você recebe as versões do Delphi 7, 2007, 2009 e 2010">Ao comprar Delphi XE (aka Delphi 2011) você recebe as versões do Delphi 7, 2007, 2009 e 2010</a></li><li><a href="http://www.andreanolanusse.com/blogpt/disponibilizada-nova-versao-do-delphi-xe-cbuilder-xe-delphi-prism-xe-e-radphp-xe/" title="Disponibilizada nova versão do Delphi XE, C++Builder XE, Delphi Prism XE e RadPHP XE">Disponibilizada nova versão do Delphi XE, C++Builder XE, Delphi Prism XE e RadPHP XE</a></li><li><a href="http://www.andreanolanusse.com/blogpt/datasnap-xe-e-windows-azure-preview-3/" title="DataSnap XE e Windows Azure &#8211; RAD Studio XE Preview #3">DataSnap XE e Windows Azure &#8211; RAD Studio XE Preview #3</a></li><li><a href="http://www.andreanolanusse.com/blogpt/desenvolvimento-agil-delphi-xe-cbuilder-xe-delphi-prism-xe-radphp-xe/" title="Desenvolvimento Ágil = Delphi XE + C++Builder XE + Delphi Prism XE + RadPHP XE">Desenvolvimento Ágil = Delphi XE + C++Builder XE + Delphi Prism XE + RadPHP XE</a></li><li><a href="http://www.andreanolanusse.com/blogpt/rad-studio-xe-agora-com-delphi-xe-cbuilder-xe-delphi-prism-xe-e-radphp-xe/" title="RAD Studio XE agora com Delphi XE, C++Builder XE, Delphi Prism XE e RadPHP XE">RAD Studio XE agora com Delphi XE, C++Builder XE, Delphi Prism XE e RadPHP XE</a></li><li><a href="http://www.andreanolanusse.com/blogpt/como-utilizar-parametros-em-dbexpress-dbx-framework/" title="Como utilizar parâmetros em dbExpress (DBX) Framework">Como utilizar parâmetros em dbExpress (DBX) Framework</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.andreanolanusse.com/blogpt/delphi-erstudio-and-db-optimizer-em-acao/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Duas promoções tentadoras para os usuários de Delphi e C++Builder</title>
		<link>http://www.andreanolanusse.com/blogpt/duas-promocoes-tentadoras-para-os-usuarios-de-delphi-e-cbuilder/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=duas-promocoes-tentadoras-para-os-usuarios-de-delphi-e-cbuilder</link>
		<comments>http://www.andreanolanusse.com/blogpt/duas-promocoes-tentadoras-para-os-usuarios-de-delphi-e-cbuilder/#comments</comments>
		<pubDate>Mon, 03 May 2010 18:25:07 +0000</pubDate>
		<dc:creator>Andreano Lanusse</dc:creator>
				<category><![CDATA[Delphi (Win32)]]></category>
		<category><![CDATA[C++Builder]]></category>
		<category><![CDATA[Embarcadero]]></category>

		<guid isPermaLink="false">http://www.andreanolanusse.com/blogpt/?p=935</guid>
		<description><![CDATA[Desde o dia 26 de Abril até 28 de Junho de 2010 está rolando duas promoções muito interessante para aqueles que desejam atualizar ou adquirir novas licenças de Delphi 2010 ou C++Builder 2010. Promoção 1 &#8211; Você compra Delphi 2010 ou C++Builder 2010 e leva RAD Studio que inclui Delphi, C++Builder e Delphi Prism Promoção [...]]]></description>
			<content:encoded><![CDATA[<p>Desde o dia 26 de Abril até 28 de Junho de 2010 está rolando duas promoções muito interessante para aqueles que desejam atualizar ou adquirir novas licenças de Delphi 2010 ou C++Builder 2010.</p>
<p><strong>Promoção 1</strong> &#8211; Você compra Delphi 2010 ou C++Builder 2010 e leva RAD Studio que inclui Delphi, C++Builder e Delphi Prism</p>
<p><strong>Promoção 2</strong> &#8211; Você compra RAD Studio 2010 Enterprise e leva RAD Studio 2010 Architect e DB Optimizer.</p>
<p>Para quem não conhece o DB Optimizer é uma ferramenta para otimização e tunning de SQL.</p>
<p>Tanto na <strong>Promoção 1 </strong>como na <strong>Promoção 2</strong> você ainda leva o livro Delphi 2010 Handbook e os componentes TMS Smooth Controls, totalmente grátis.</p>
<p>Mais informações <a href="http://www.embarcadero.com/br/radoffer" target="_blank"><strong>aqui</strong></a>.</p>
<h2  class="related_post_title">Posts relacionados</h2><ul class="related_post"><li><a href="http://www.andreanolanusse.com/blogpt/ao-comprar-delphi-xe-aka-delphi-2011-voce-recebe-as-versoes-do-delphi-7-2007-2009-e-2010/" title="Ao comprar Delphi XE (aka Delphi 2011) você recebe as versões do Delphi 7, 2007, 2009 e 2010">Ao comprar Delphi XE (aka Delphi 2011) você recebe as versões do Delphi 7, 2007, 2009 e 2010</a></li><li><a href="http://www.andreanolanusse.com/blogpt/disponibilizada-nova-versao-do-delphi-xe-cbuilder-xe-delphi-prism-xe-e-radphp-xe/" title="Disponibilizada nova versão do Delphi XE, C++Builder XE, Delphi Prism XE e RadPHP XE">Disponibilizada nova versão do Delphi XE, C++Builder XE, Delphi Prism XE e RadPHP XE</a></li><li><a href="http://www.andreanolanusse.com/blogpt/datasnap-xe-e-windows-azure-preview-3/" title="DataSnap XE e Windows Azure &#8211; RAD Studio XE Preview #3">DataSnap XE e Windows Azure &#8211; RAD Studio XE Preview #3</a></li><li><a href="http://www.andreanolanusse.com/blogpt/desenvolvimento-agil-delphi-xe-cbuilder-xe-delphi-prism-xe-radphp-xe/" title="Desenvolvimento Ágil = Delphi XE + C++Builder XE + Delphi Prism XE + RadPHP XE">Desenvolvimento Ágil = Delphi XE + C++Builder XE + Delphi Prism XE + RadPHP XE</a></li><li><a href="http://www.andreanolanusse.com/blogpt/rad-studio-xe-agora-com-delphi-xe-cbuilder-xe-delphi-prism-xe-e-radphp-xe/" title="RAD Studio XE agora com Delphi XE, C++Builder XE, Delphi Prism XE e RadPHP XE">RAD Studio XE agora com Delphi XE, C++Builder XE, Delphi Prism XE e RadPHP XE</a></li><li><a href="http://www.andreanolanusse.com/blogpt/como-utilizar-parametros-em-dbexpress-dbx-framework/" title="Como utilizar parâmetros em dbExpress (DBX) Framework">Como utilizar parâmetros em dbExpress (DBX) Framework</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.andreanolanusse.com/blogpt/duas-promocoes-tentadoras-para-os-usuarios-de-delphi-e-cbuilder/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Copiando estrutura e dados de um DBXReader para ClientDataSet – DataSnap 2010</title>
		<link>http://www.andreanolanusse.com/blogpt/copiando-estrutura-e-dados-de-um-dbxreader-para-clientdataset-datasnap-2010/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=copiando-estrutura-e-dados-de-um-dbxreader-para-clientdataset-datasnap-2010</link>
		<comments>http://www.andreanolanusse.com/blogpt/copiando-estrutura-e-dados-de-um-dbxreader-para-clientdataset-datasnap-2010/#comments</comments>
		<pubDate>Sat, 24 Apr 2010 23:30:31 +0000</pubDate>
		<dc:creator>Andreano Lanusse</dc:creator>
				<category><![CDATA[Delphi (Win32)]]></category>
		<category><![CDATA[DataSnap]]></category>
		<category><![CDATA[Embarcadero]]></category>

		<guid isPermaLink="false">http://www.andreanolanusse.com/blogpt/?p=934</guid>
		<description><![CDATA[Aqueles que estão utilizando DataSnap 2010 passam a utilizar o DBXFramework, o qual recomendo muito para operações onde não existe a necessidade de expor e navegação bi-direcional. Existem casos onde será necessário copiar a estrutura e os dados de um DBXReader para ClientDataSet ou Params, pensando nisso no Delphi foi criada a unit DBXDBReaders.pas que [...]]]></description>
			<content:encoded><![CDATA[<p>Aqueles que estão utilizando DataSnap 2010 passam a utilizar o DBXFramework, o qual recomendo muito para operações onde não existe a necessidade de expor e navegação bi-direcional.</p>
<p>Existem casos onde será necessário copiar a estrutura e os dados de um DBXReader para ClientDataSet ou Params, pensando nisso no Delphi foi criada a unit DBXDBReaders.pas que traz algumas classes que permite essa operação.</p>
<p>A classe TDBXDataSetReader possui dois método que permitem copiar para um ClientDataSet já existente ou retorna um novo ClientDataSet, veja o exemplo abaixo.</p>
<pre class="brush: delphi">var
  Reader: TDBXReader;
  DepClient: TDepartmentClient;
begin
  DepClient := TDepartmentClient.Create(DMClientContainer.MyDSServer.DBXConnection, False);

  try
    Reader := DepClient.GetDepartmentsOrderBy;

    try
      if Assigned(Reader) then
      begin
        TDBXDataSetReader.CopyReaderToClientDataSet(Reader, DMClientContainer.CDSCopy);
      end;
    finally
      FreeAndNil(Reader);
    end;

  finally
    DepClient.Free;
  end;</pre>
<p>O ClientDataSet CDSCopy já existe e é parte do DataModule DMClientContainer, caso o ClientDataSet não existe, utilizar o método TDBXDataSetReader.ToClientDataSet e esta irá retornar um novo ClientDataSet.</p>
<p>Meus exemplos sobre DataSnap 2010 foram atualizados e você pode efetuar o <strong><a href="http://cc.embarcadero.com/Item/27391" target="_blank">download aqui</a></strong>.</p>
<h2  class="related_post_title">Posts relacionados</h2><ul class="related_post"><li><a href="http://www.andreanolanusse.com/blogpt/teste-nosso-servidor-datasnap-xe-instalado-no-amazon-cloud/" title="Teste nosso servidor DataSnap XE instalado no Amazon Cloud">Teste nosso servidor DataSnap XE instalado no Amazon Cloud</a></li><li><a href="http://www.andreanolanusse.com/blogpt/datasnap-xe-e-windows-azure-preview-3/" title="DataSnap XE e Windows Azure &#8211; RAD Studio XE Preview #3">DataSnap XE e Windows Azure &#8211; RAD Studio XE Preview #3</a></li><li><a href="http://www.andreanolanusse.com/blogpt/delphi-tour-2010-slides-e-exemplos-disponibilizados-para-download/" title="Delphi Tour 2010 – slides e exemplos disponibilizados para download">Delphi Tour 2010 – slides e exemplos disponibilizados para download</a></li><li><a href="http://www.andreanolanusse.com/blogpt/delphi-tour-2010-um-resumo-do-que-sera-o-evento/" title="Delphi Tour 2010 – Um resumo do que será o evento">Delphi Tour 2010 – Um resumo do que será o evento</a></li><li><a href="http://www.andreanolanusse.com/blogpt/delphi-tour-2010/" title="Delphi Tour 2010">Delphi Tour 2010</a></li><li><a href="http://www.andreanolanusse.com/blogpt/como-utilizar-parametros-em-dbexpress-dbx-framework/" title="Como utilizar parâmetros em dbExpress (DBX) Framework">Como utilizar parâmetros em dbExpress (DBX) Framework</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.andreanolanusse.com/blogpt/copiando-estrutura-e-dados-de-um-dbxreader-para-clientdataset-datasnap-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Disponibilizado o Hotfix 2 para RAD Studio 2010</title>
		<link>http://www.andreanolanusse.com/blogpt/disponibilizado-o-hotfix-2-para-rad-studio-2010/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=disponibilizado-o-hotfix-2-para-rad-studio-2010</link>
		<comments>http://www.andreanolanusse.com/blogpt/disponibilizado-o-hotfix-2-para-rad-studio-2010/#comments</comments>
		<pubDate>Mon, 12 Apr 2010 21:04:32 +0000</pubDate>
		<dc:creator>Andreano Lanusse</dc:creator>
				<category><![CDATA[Delphi (Win32)]]></category>
		<category><![CDATA[Delphi Prism (.NET)]]></category>
		<category><![CDATA[C++Builder]]></category>
		<category><![CDATA[Embarcadero]]></category>

		<guid isPermaLink="false">http://www.andreanolanusse.com/blogpt/?p=928</guid>
		<description><![CDATA[Já está disponível para download o Hotfix 2 para RAD Studio 2010 (Delphi 2010 e C++Builder 2010) http://cc.embarcadero.com/item/27671 Este hotfix traz os seguintes updates: Retorna as opções do Type Library &#8220;SafeCall function mapping&#8221; e &#8220;Source Refreshing&#8221; &#8211; Delphi Options. Resolve um problema com o CPP32.EXE quando arquivos de fonte C++ estão em minúsculo and nome [...]]]></description>
			<content:encoded><![CDATA[<p>Já está disponível para download o Hotfix 2 para RAD Studio 2010 (Delphi 2010 e C++Builder 2010)  <a href="http://cc.embarcadero.com/item/27671" target="_blank">http://cc.embarcadero.com/item/27671</a></p>
<p>Este hotfix traz os seguintes updates:</p>
<ul>
<li>Retorna as opções do Type Library &#8220;SafeCall function mapping&#8221; e &#8220;Source Refreshing&#8221; &#8211; Delphi Options.</li>
<li>Resolve um problema com o CPP32.EXE quando arquivos de fonte C++ estão em minúsculo and nome contendo mais de 9 caracteres, com este fix o nome do arquivo será preservado.</li>
<li>Resolve problem de comunicação no DataSnap quando utilizando Filters.</li>
</ul>
<p>Para ter acesso ao Readme do RAD Studio 2010 Hotfix 2 acesse o <strong><a href="http://edn.embarcadero.com/article/40537" target="_blank">EDN</a></strong></p>
<h2  class="related_post_title">Posts relacionados</h2><ul class="related_post"><li><a href="http://www.andreanolanusse.com/blogpt/ao-comprar-delphi-xe-aka-delphi-2011-voce-recebe-as-versoes-do-delphi-7-2007-2009-e-2010/" title="Ao comprar Delphi XE (aka Delphi 2011) você recebe as versões do Delphi 7, 2007, 2009 e 2010">Ao comprar Delphi XE (aka Delphi 2011) você recebe as versões do Delphi 7, 2007, 2009 e 2010</a></li><li><a href="http://www.andreanolanusse.com/blogpt/disponibilizada-nova-versao-do-delphi-xe-cbuilder-xe-delphi-prism-xe-e-radphp-xe/" title="Disponibilizada nova versão do Delphi XE, C++Builder XE, Delphi Prism XE e RadPHP XE">Disponibilizada nova versão do Delphi XE, C++Builder XE, Delphi Prism XE e RadPHP XE</a></li><li><a href="http://www.andreanolanusse.com/blogpt/datasnap-xe-e-windows-azure-preview-3/" title="DataSnap XE e Windows Azure &#8211; RAD Studio XE Preview #3">DataSnap XE e Windows Azure &#8211; RAD Studio XE Preview #3</a></li><li><a href="http://www.andreanolanusse.com/blogpt/desenvolvimento-agil-delphi-xe-cbuilder-xe-delphi-prism-xe-radphp-xe/" title="Desenvolvimento Ágil = Delphi XE + C++Builder XE + Delphi Prism XE + RadPHP XE">Desenvolvimento Ágil = Delphi XE + C++Builder XE + Delphi Prism XE + RadPHP XE</a></li><li><a href="http://www.andreanolanusse.com/blogpt/rad-studio-xe-agora-com-delphi-xe-cbuilder-xe-delphi-prism-xe-e-radphp-xe/" title="RAD Studio XE agora com Delphi XE, C++Builder XE, Delphi Prism XE e RadPHP XE">RAD Studio XE agora com Delphi XE, C++Builder XE, Delphi Prism XE e RadPHP XE</a></li><li><a href="http://www.andreanolanusse.com/blogpt/como-utilizar-parametros-em-dbexpress-dbx-framework/" title="Como utilizar parâmetros em dbExpress (DBX) Framework">Como utilizar parâmetros em dbExpress (DBX) Framework</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.andreanolanusse.com/blogpt/disponibilizado-o-hotfix-2-para-rad-studio-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Autenticação utilizando DataSnap 2010 e TCP/IP Transport</title>
		<link>http://www.andreanolanusse.com/blogpt/autenticacao-utilizando-datasnap-2010-e-tcpip-transport/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=autenticacao-utilizando-datasnap-2010-e-tcpip-transport</link>
		<comments>http://www.andreanolanusse.com/blogpt/autenticacao-utilizando-datasnap-2010-e-tcpip-transport/#comments</comments>
		<pubDate>Mon, 29 Mar 2010 06:18:57 +0000</pubDate>
		<dc:creator>Andreano Lanusse</dc:creator>
				<category><![CDATA[Delphi (Win32)]]></category>
		<category><![CDATA[DataSnap]]></category>
		<category><![CDATA[Embarcadero]]></category>

		<guid isPermaLink="false">http://www.andreanolanusse.com/blogpt/?p=909</guid>
		<description><![CDATA[Uma das perguntas mais frequentes em relação ao DataSnap se diz respeito a como implementar autenticação no DataSnap Server utilizando TCP/IP como Transporter (componente TDSTCPServerTransporter), visto que quando utilizamos HTTP temos um componente e método expecifico para tal tarefa. A pergunta é válida, pois sem isso qualquer um poderá conectar a seu servidor DataSnap e [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-908" style="border: 0pt none; margin: 4px;" title="DataSnap Security" src="http://www.andreanolanusse.com/blogpt/wp-content/uploads/2010/03/server-security-300x300.jpg" alt="" width="300" height="300" />Uma das perguntas mais frequentes em relação ao DataSnap se diz respeito a como implementar autenticação no DataSnap Server utilizando TCP/IP como Transporter (componente TDSTCPServerTransporter), visto que quando utilizamos HTTP temos um componente e método expecifico para tal tarefa.</p>
<p>A pergunta é válida, pois sem isso qualquer um poderá conectar a seu servidor DataSnap e executar os Server Methods disponíveis. O objetivo deste post é mostrar como fazer isso de forma bem simples.</p>
<p>Vou assumir aqui que você já tem algum conhecimento do novo DataSnap, em caso contrário recomendo ler os posts e assistir os vídeos <strong><a href="http://www.andreanolanusse.com/blogpt/tag/datasnap/" target="_blank">aqui publicados</a></strong>.</p>
<p>Para começar temos que passar ao servidor o usuário e senha, como o seu caminho de conexão é o componente SQLConnection é nele que estaremos armazenado estas duas informações, utilizando a propriedade Params.</p>
<p>Geralmente utilizamos UserName e Password como parâmetro, o que não é errado, mas eu recomendo você utilizar os parâmetros DSAuthenticationUser e DSAuthenticationPassword, porque em caso de se ter outras aplicações conectando ao seu servidor e utilizando HTTP como parâmetro, você terá que usar estes parâmetros, desta forma sendo HTTP ou TCP padronizamos neste dois parâmetros.</p>
<p>Nosso código no lado cliente ficaria assim:</p>
<pre class="brush: delphi">With SQLConnection1 do begin
  Params.Values['HostName'] := Server;  // Endereço do DataSnap Server
  Params.Values['Port'] := Port; // Porta
  Params.Values['DSAuthenticationUser'] := 'Usuario'; // Login do Usuário
  Params.Values['DSAuthenticationPassword'] := 'Senha'; // Senha Usuário
end;</pre>
<p>Já no lado servidor, faremos a autenticação utilizando o evento OnConnect do componente DSServer.</p>
<p>O evento OnConnect nos fornece o parâmetro DSConnectEventObject o qual nos traz os dados da conexão através da propriedade ConnecProperties, desta forma você terá acesso aos dois parâmeteros enviados pela aplicação cliente e todos os outros valores parte da lista de parâmetros.</p>
<p>No exemplo abaixo as variáveis login e password recebem os valores das propriedades DSAuthenticationUser e DSAuthenticationPassword e em seguinda fazem a validação através da classe TUser, que é uma classe utilizada no exemplo.</p>
<p>Em caso de login ou senha inválido o servidor gera uma Exception, qualquer exception gerada no evento OnConnect inválida a conexão, ou seja, a aplicação cliente não efetuou a conexão ao servidor.</p>
<pre class="brush: delphi">With DSConnectEventObject.ConnectProperties do begin
 login := Properties.Values['DSAuthenticationUser'];
 password := Properties.Values['DSAuthenticationPassword'];
end;

userConn := TUser.Create;
try

  if not userConn.IsValidUser(login, password) then
    raise Exception.Create('Invalid Login/Password');

finally
  userConn.Free;
end;</pre>
<p>Meus exemplos sobre DataSnap foram atualizados com o código acima e já estão disponíveis para <a href="http://cc.embarcadero.com/download.aspx?id=27391" target="_self"><strong>download</strong></a>.</p>
<h2  class="related_post_title">Posts relacionados</h2><ul class="related_post"><li><a href="http://www.andreanolanusse.com/blogpt/teste-nosso-servidor-datasnap-xe-instalado-no-amazon-cloud/" title="Teste nosso servidor DataSnap XE instalado no Amazon Cloud">Teste nosso servidor DataSnap XE instalado no Amazon Cloud</a></li><li><a href="http://www.andreanolanusse.com/blogpt/datasnap-xe-e-windows-azure-preview-3/" title="DataSnap XE e Windows Azure &#8211; RAD Studio XE Preview #3">DataSnap XE e Windows Azure &#8211; RAD Studio XE Preview #3</a></li><li><a href="http://www.andreanolanusse.com/blogpt/delphi-tour-2010-slides-e-exemplos-disponibilizados-para-download/" title="Delphi Tour 2010 – slides e exemplos disponibilizados para download">Delphi Tour 2010 – slides e exemplos disponibilizados para download</a></li><li><a href="http://www.andreanolanusse.com/blogpt/delphi-tour-2010-um-resumo-do-que-sera-o-evento/" title="Delphi Tour 2010 – Um resumo do que será o evento">Delphi Tour 2010 – Um resumo do que será o evento</a></li><li><a href="http://www.andreanolanusse.com/blogpt/delphi-tour-2010/" title="Delphi Tour 2010">Delphi Tour 2010</a></li><li><a href="http://www.andreanolanusse.com/blogpt/como-utilizar-parametros-em-dbexpress-dbx-framework/" title="Como utilizar parâmetros em dbExpress (DBX) Framework">Como utilizar parâmetros em dbExpress (DBX) Framework</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.andreanolanusse.com/blogpt/autenticacao-utilizando-datasnap-2010-e-tcpip-transport/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Adeus Borland Way Office, bem vindo Granite Creek Business Center</title>
		<link>http://www.andreanolanusse.com/blogpt/adeus-borland-way-office-bem-vindo-granite-creek-business-center/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=adeus-borland-way-office-bem-vindo-granite-creek-business-center</link>
		<comments>http://www.andreanolanusse.com/blogpt/adeus-borland-way-office-bem-vindo-granite-creek-business-center/#comments</comments>
		<pubDate>Sun, 28 Mar 2010 22:48:07 +0000</pubDate>
		<dc:creator>Andreano Lanusse</dc:creator>
				<category><![CDATA[Geral]]></category>
		<category><![CDATA[Delphi (Win32)]]></category>
		<category><![CDATA[Embarcadero]]></category>

		<guid isPermaLink="false">http://www.andreanolanusse.com/blogpt/?p=902</guid>
		<description><![CDATA[Já fazem 15 anos desde que eu comecei minha história na Borland, sendo 3 anos aqui em Scotts Valley Enterprise Way, um lugar muito lindo, mas a partir desta segunda-feira começamos um novo capitulo, novo local de trabalho, novo escritório e internet de altíssima velocidade . Granite Creek Business Center, aqui em Scotts Valley passa [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.andreanolanusse.com/blogpt/wp-content/uploads/2010/03/oldborlandoffice.jpg"><img src="http://www.andreanolanusse.com/blogpt/wp-content/uploads/2010/03/oldborlandoffice.jpg" alt="" title="Antigo escritório da Borland" width="200" height="125"  style="border: 0pt none; margin: 4px;" class="alignleft size-medium wp-image-263" /></a>Já fazem 15 anos desde que eu comecei minha história na Borland, sendo 3 anos aqui em Scotts Valley Enterprise Way, um lugar muito lindo, mas a partir desta segunda-feira começamos um novo capitulo, novo local de trabalho, novo escritório e internet de altíssima velocidade <img src='http://www.andreanolanusse.com/blogpt/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>Granite Creek Business Center, aqui em Scotts Valley passa a ser a nossa nova sede, desde aqui nos continuaremos trabalhando para continuar fazendo o Delphi cada vez melhor.</p>
<p>Você pode ver o nosso novo escritório através do Google Maps <iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.com/maps?f=q&amp;source=s_q&amp;hl=en&amp;geocode=&amp;q=5615+Scotts+Valley+Dr.,+Scotts+Valley,+CA,+95066&amp;sll=37.0625,-95.677068&amp;sspn=30.819956,61.435547&amp;ie=UTF8&amp;hq=&amp;hnear=5615+Scotts+Valley+Dr,+Scotts+Valley,+Santa+Cruz,+California+95066&amp;t=h&amp;ll=37.062652,-122.00717&amp;spn=0.001498,0.00228&amp;z=18&amp;output=embed"></iframe><br /><small><a href="http://maps.google.com/maps?f=q&amp;source=embed&amp;hl=en&amp;geocode=&amp;q=5615+Scotts+Valley+Dr.,+Scotts+Valley,+CA,+95066&amp;sll=37.0625,-95.677068&amp;sspn=30.819956,61.435547&amp;ie=UTF8&amp;hq=&amp;hnear=5615+Scotts+Valley+Dr,+Scotts+Valley,+Santa+Cruz,+California+95066&amp;t=h&amp;ll=37.062652,-122.00717&amp;spn=0.001498,0.00228&amp;z=18" style="color:#0000FF;text-align:left">View Larger Map</a></small></p>
<h2  class="related_post_title">Posts relacionados</h2><ul class="related_post"><li><a href="http://www.andreanolanusse.com/blogpt/utilizando-expressoes-regulares-para-validar-endereco-ip-no-delphi-xe/" title="Utilizando expressões regulares para validar endereço IP no Delphi XE">Utilizando expressões regulares para validar endereço IP no Delphi XE</a></li><li><a href="http://www.andreanolanusse.com/blogpt/ao-comprar-delphi-xe-aka-delphi-2011-voce-recebe-as-versoes-do-delphi-7-2007-2009-e-2010/" title="Ao comprar Delphi XE (aka Delphi 2011) você recebe as versões do Delphi 7, 2007, 2009 e 2010">Ao comprar Delphi XE (aka Delphi 2011) você recebe as versões do Delphi 7, 2007, 2009 e 2010</a></li><li><a href="http://www.andreanolanusse.com/blogpt/teste-nosso-servidor-datasnap-xe-instalado-no-amazon-cloud/" title="Teste nosso servidor DataSnap XE instalado no Amazon Cloud">Teste nosso servidor DataSnap XE instalado no Amazon Cloud</a></li><li><a href="http://www.andreanolanusse.com/blogpt/disponibilizada-nova-versao-do-delphi-xe-cbuilder-xe-delphi-prism-xe-e-radphp-xe/" title="Disponibilizada nova versão do Delphi XE, C++Builder XE, Delphi Prism XE e RadPHP XE">Disponibilizada nova versão do Delphi XE, C++Builder XE, Delphi Prism XE e RadPHP XE</a></li><li><a href="http://www.andreanolanusse.com/blogpt/datasnap-xe-e-windows-azure-preview-3/" title="DataSnap XE e Windows Azure &#8211; RAD Studio XE Preview #3">DataSnap XE e Windows Azure &#8211; RAD Studio XE Preview #3</a></li><li><a href="http://www.andreanolanusse.com/blogpt/desenvolvimento-agil-delphi-xe-cbuilder-xe-delphi-prism-xe-radphp-xe/" title="Desenvolvimento Ágil = Delphi XE + C++Builder XE + Delphi Prism XE + RadPHP XE">Desenvolvimento Ágil = Delphi XE + C++Builder XE + Delphi Prism XE + RadPHP XE</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.andreanolanusse.com/blogpt/adeus-borland-way-office-bem-vindo-granite-creek-business-center/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Utilizando generics para transformação genérica de Objetos em DataSnap 2010</title>
		<link>http://www.andreanolanusse.com/blogpt/utilizando-generics-para-transformacao-generica-de-objetos-em-datasnap-2010/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=utilizando-generics-para-transformacao-generica-de-objetos-em-datasnap-2010</link>
		<comments>http://www.andreanolanusse.com/blogpt/utilizando-generics-para-transformacao-generica-de-objetos-em-datasnap-2010/#comments</comments>
		<pubDate>Wed, 24 Mar 2010 01:20:16 +0000</pubDate>
		<dc:creator>Andreano Lanusse</dc:creator>
				<category><![CDATA[Delphi (Win32)]]></category>
		<category><![CDATA[DataSnap]]></category>
		<category><![CDATA[Embarcadero]]></category>
		<category><![CDATA[JSON]]></category>

		<guid isPermaLink="false">http://www.andreanolanusse.com/blogpt/?p=865</guid>
		<description><![CDATA[No meu post anterior &#8220;DataSnap 2010 &#8211; Enviando e Recebendo objetos&#8221; mostrei como transferir objetos através de JSON objects, nos comentários relacionados a este post Rafael Soares fez uma interessante observação com relação a necessidade de se ter que escrever em toda a classes os métodos de conversão de JSON para TObject e TObject para [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-781" style="border: 0pt none; margin: 4px;" title="Delphi" src="http://www.andreanolanusse.com/blogpt/wp-content/uploads/2010/03/Icon_Delphi.png" alt="" width="175" height="175" />No meu post anterior <a href="http://www.andreanolanusse.com/blogpt/datasnap-2010-enviando-e-recebendo-objetos/">&#8220;DataSnap 2010 &#8211; Enviando e Recebendo objetos&#8221;</a> mostrei como transferir objetos através de JSON objects, nos comentários relacionados a este post Rafael Soares fez uma interessante observação com relação a necessidade de se ter que escrever em toda a classes os métodos de conversão de JSON para TObject e TObject para JSON. Na verdade isso não é necessário, você pode utilizar generics e assim ter apenas dois métodos de conversão para qualquer classe.</p>
<p>O exemplo utilizado no post anterior o qual os fontes foram disponibilizados para download, traz a classe TCustomer como exemplo e implementa os método JSONtoCustomer e CustomerToJSON, este fazem referência direta a classe TCustomer, assim sendo fiz algumas modificações onde nos permitirá utilizar estes dois métodos para qualquer classe, primeiro os métodos foram renomeados para JSONtoObject e ObjectToJSON e adicionados a uma nova classe chamada TBaseObject, este métodos foram definidos como class function, desta forma não precisamos instanciar o objeto. Agora TCustomer passa a herdar desta, assim sendo qualquer objeto terá este método implemetado.</p>
<p>Os métodos da classe TBaseObject agora definem &lt;T&gt; como parâmetro de entrada e retorno, ou seja, o tipo que for definido durante a utilização do método é o que será considerado pelo método, aqui estamos utilizando Generics.</p>
<pre class="brush: delphi">
unit BaseObject;

interface

uses DBXJSON, DBXJSONReflect;

type
  TBaseObject = class
  public
    { public declarations }
    class function ObjectToJSON&lt;T : class&gt;(myObject: T): TJSONValue;
    class function JSONToObject&lt;T : class&gt;(json: TJSONValue): T;
  end;

implementation

{ TBaseObject }

class function TBaseObject.JSONToObject&lt;T&gt;(json: TJSONValue): T;
var
  unm: TJSONUnMarshal;
begin
  if json is TJSONNull then
    exit(nil);
  unm := TJSONUnMarshal.Create;
  try
    exit(T(unm.Unmarshal(json)))
  finally
    unm.Free;
  end;

end;

class function TBaseObject.ObjectToJSON&lt;T&gt;(myObject: T): TJSONValue;
var
  m: TJSONMarshal;
begin

  if Assigned(myObject) then
  begin
    m := TJSONMarshal.Create(TJSONConverter.Create);
    try
      exit(m.Marshal(myObject));
    finally
      m.Free;
    end;
  end
  else
    exit(TJSONNull.Create);

end;

end.
</pre>
<p>Já a classe TCustomer herda de TBaseObject.</p>
<pre class="brush: delphi">unit Customer;

interface

uses
   DBXJSON, DBXJSONReflect, SysUtils, BaseObject;

type
   TMaritalStatus = (msMarried, msEngaged, msEligible);

TCustomer = class(TBaseObject)
    private
       FName: string;
       FAge: integer;
       FMaritalStatus: TMaritalStatus;
    public
        property Name: string read FName write FName;
        property Age: integer read FAge write FAge;
        property MaritalStatus: TMaritalStatus read FMaritalStatus write FMaritalStatus;

        function toString : string;override;
  end;</pre>
<p>Agora todos os Server Methods da classe TDSServerMethods passam a utilizar os métodos de conversão de objetos especificando qual o tipo que deverá ser utilizado. O exemplo abaixo retorna uma lista de TJSONArray, cada elemento adicionado ao Array usa a sintaxe TCustomer.ObjectToJSON&lt;TCustomer&gt;.</p>
<p>&lt;TCustomer&gt; define que o tipo do Objeto que está sendo adicionado ao Array.</p>
<pre class="brush: delphi">
function TDSServerMethods.ListofCustomer: TJSONArray;
var
  i: Integer;
  myCustomer: TCustomer;
begin
  Result := TJSONArray.Create;

  for i := 0 to 19 do
  begin
    myCustomer := GetCustomer;
    myCustomer.Name := 'Customer ' + IntToStr(i);
    myCustomer.Age := i;
    Result.AddElement(myCustomer.ObjectToJSON&lt;TCustomer&gt;(myCustomer));
  end;
end;
</pre>
<p>Para ler o retorno no lado Client utilizamos o mesmo princípio com Generics, onde cada item é transformado de JSON para TCustomer conforme o exemplo abaixo:</p>
<pre class="brush: delphi">
var
  proxy: TDSServerMethodsClient;
  mySingleCustomer: TCustomer;
  allCustomers: TJSONArray;
  i: Integer;
begin

  proxy := nil;
  try
    proxy := TDSServerMethodsClient.Create
      (DMClientContainer.MyDSServer.DBXConnection);
    allCustomers := proxy.ListofCustomer;

    for i := 0 to allCustomers.Size - 1 do
    begin
      mySingleCustomer := TCustomer.JSONToObject&lt;TCustomer&gt;(allCustomers.Get(i));
      MMLog.Lines.Add(mySingleCustomer.ToString);
      mySingleCustomer.Free;
    end;

  finally
    proxy.Free;
  end;
</pre>
<p>Vimos aqui como Generics nos auxilia na transformação de objetos em DataSnap.</p>
<p>O exemplo atualizado está disponível no CodeCentral &#8211; Download do <a href="http://cc.embarcadero.com/Download.aspx?id=27361">código fonte</a></p>
<h2  class="related_post_title">Posts relacionados</h2><ul class="related_post"><li><a href="http://www.andreanolanusse.com/blogpt/datasnap-2010-enviando-e-recebendo-array-de-strings-numbers-e-outros-tipos/" title="DataSnap 2010 &#8211; enviando e recebendo ARRAY de strings, numbers e outros tipos">DataSnap 2010 &#8211; enviando e recebendo ARRAY de strings, numbers e outros tipos</a></li><li><a href="http://www.andreanolanusse.com/blogpt/utilizando-callback-em-datasnap-2010/" title="Utilizando callback em DataSnap 2010">Utilizando callback em DataSnap 2010</a></li><li><a href="http://www.andreanolanusse.com/blogpt/datasnap-2010-enviando-e-recebendo-objetos/" title="DataSnap 2010 &#8211; Enviando e recebendo objetos">DataSnap 2010 &#8211; Enviando e recebendo objetos</a></li><li><a href="http://www.andreanolanusse.com/blogpt/teste-nosso-servidor-datasnap-xe-instalado-no-amazon-cloud/" title="Teste nosso servidor DataSnap XE instalado no Amazon Cloud">Teste nosso servidor DataSnap XE instalado no Amazon Cloud</a></li><li><a href="http://www.andreanolanusse.com/blogpt/datasnap-xe-e-windows-azure-preview-3/" title="DataSnap XE e Windows Azure &#8211; RAD Studio XE Preview #3">DataSnap XE e Windows Azure &#8211; RAD Studio XE Preview #3</a></li><li><a href="http://www.andreanolanusse.com/blogpt/delphi-tour-2010-slides-e-exemplos-disponibilizados-para-download/" title="Delphi Tour 2010 – slides e exemplos disponibilizados para download">Delphi Tour 2010 – slides e exemplos disponibilizados para download</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.andreanolanusse.com/blogpt/utilizando-generics-para-transformacao-generica-de-objetos-em-datasnap-2010/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Delphi 2010 Handbook e TMS Smooth Controls Pack GRÁTIS</title>
		<link>http://www.andreanolanusse.com/blogpt/delphi-2010-handbook-e-tms-smooth-controls-pack-gratis/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=delphi-2010-handbook-e-tms-smooth-controls-pack-gratis</link>
		<comments>http://www.andreanolanusse.com/blogpt/delphi-2010-handbook-e-tms-smooth-controls-pack-gratis/#comments</comments>
		<pubDate>Mon, 22 Mar 2010 07:50:29 +0000</pubDate>
		<dc:creator>Andreano Lanusse</dc:creator>
				<category><![CDATA[Delphi (Win32)]]></category>
		<category><![CDATA[C++Builder]]></category>
		<category><![CDATA[Livros]]></category>

		<guid isPermaLink="false">http://www.andreanolanusse.com/blogpt/?p=847</guid>
		<description><![CDATA[Se você possui uma licença de Delphi 2010, C++Builder 2010 ou RAD Studio 2010 a Embarcadero preparou duas surpresas pra você e é grátis. Você pode baixar o livro (eBook) Delphi 2010 Handbook do Marco Cantu, uma excelente literatura pra você se atualizar nos novos recursos do Delphi 2010. Além disso você pode baixar o [...]]]></description>
			<content:encoded><![CDATA[<p>Se você possui uma licença de Delphi 2010, C++Builder 2010 ou RAD Studio 2010 a Embarcadero preparou duas surpresas pra você e é grátis.</p>
<table width="100%">
<tbody>
<tr>
<td valign="middle"><a href="http://cc.embarcadero.com/item/27613" target="_blank"><img class="alignleft size-full wp-image-850" style="border: 0pt none; margin: 4px;" title="Delphi 2010 Handbook" src="http://www.andreanolanusse.com/blogpt/wp-content/uploads/2010/03/delphi2010handbook.png" alt="" width="88" height="114" /></a>Você pode baixar o livro (eBook) Delphi 2010 Handbook do Marco Cantu, uma excelente literatura pra você se atualizar nos novos recursos do Delphi 2010.</td>
<td valign="middle"><a href="http://cc.embarcadero.com/item/27470" target="_blank"><img class="alignleft size-full wp-image-849" style="border: 0pt none; margin: 4px;" title="TMS Smooth Controls" src="http://www.andreanolanusse.com/blogpt/wp-content/uploads/2010/03/tmssmoothcontrols.png" alt="" width="87" height="114" /></a>Além disso você pode baixar o TMS Smooth Controls Pack, um conjunto de componentes que lhe irá ajudar a melhorar a aparência da sua aplicação, são vários componentes e muito fáceis de utilizar.</td>
</tr>
</tbody>
</table>
<h2  class="related_post_title">Posts relacionados</h2><ul class="related_post"><li><a href="http://www.andreanolanusse.com/blogpt/ao-comprar-delphi-xe-aka-delphi-2011-voce-recebe-as-versoes-do-delphi-7-2007-2009-e-2010/" title="Ao comprar Delphi XE (aka Delphi 2011) você recebe as versões do Delphi 7, 2007, 2009 e 2010">Ao comprar Delphi XE (aka Delphi 2011) você recebe as versões do Delphi 7, 2007, 2009 e 2010</a></li><li><a href="http://www.andreanolanusse.com/blogpt/disponibilizada-nova-versao-do-delphi-xe-cbuilder-xe-delphi-prism-xe-e-radphp-xe/" title="Disponibilizada nova versão do Delphi XE, C++Builder XE, Delphi Prism XE e RadPHP XE">Disponibilizada nova versão do Delphi XE, C++Builder XE, Delphi Prism XE e RadPHP XE</a></li><li><a href="http://www.andreanolanusse.com/blogpt/datasnap-xe-e-windows-azure-preview-3/" title="DataSnap XE e Windows Azure &#8211; RAD Studio XE Preview #3">DataSnap XE e Windows Azure &#8211; RAD Studio XE Preview #3</a></li><li><a href="http://www.andreanolanusse.com/blogpt/desenvolvimento-agil-delphi-xe-cbuilder-xe-delphi-prism-xe-radphp-xe/" title="Desenvolvimento Ágil = Delphi XE + C++Builder XE + Delphi Prism XE + RadPHP XE">Desenvolvimento Ágil = Delphi XE + C++Builder XE + Delphi Prism XE + RadPHP XE</a></li><li><a href="http://www.andreanolanusse.com/blogpt/rad-studio-xe-agora-com-delphi-xe-cbuilder-xe-delphi-prism-xe-e-radphp-xe/" title="RAD Studio XE agora com Delphi XE, C++Builder XE, Delphi Prism XE e RadPHP XE">RAD Studio XE agora com Delphi XE, C++Builder XE, Delphi Prism XE e RadPHP XE</a></li><li><a href="http://www.andreanolanusse.com/blogpt/como-utilizar-parametros-em-dbexpress-dbx-framework/" title="Como utilizar parâmetros em dbExpress (DBX) Framework">Como utilizar parâmetros em dbExpress (DBX) Framework</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.andreanolanusse.com/blogpt/delphi-2010-handbook-e-tms-smooth-controls-pack-gratis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
