<?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"
	>

<channel>
	<title>it improves blog</title>
	<atom:link href="http://it-improves.com/blog/index.php/feed/" rel="self" type="application/rss+xml" />
	<link>http://it-improves.com/blog</link>
	<description>Sharepoint, .net and Developer help and tips</description>
	<pubDate>Tue, 03 Aug 2010 21:50:47 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.3</generator>
	<language>en</language>
			<item>
		<title></title>
		<link>http://it-improves.com/blog/index.php/2010/08/88/</link>
		<comments>http://it-improves.com/blog/index.php/2010/08/88/#comments</comments>
		<pubDate>Tue, 03 Aug 2010 21:50:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[Cisco VPN]]></category>

		<category><![CDATA[erroe 721]]></category>

		<category><![CDATA[VPN]]></category>

		<guid isPermaLink="false">http://it-improves.com/blog/?p=88</guid>
		<description><![CDATA[Para ver em portugues veja mais abaixo neste post
English:
I have a VPN to my work, but recently stopped working giving the error 721 when trying to Connect &#8230; I searched the net and some post talking about the port on the router or firewall, but had the firewall turned off and tested it with another [...]]]></description>
			<content:encoded><![CDATA[<p>Para ver em portugues veja mais abaixo neste post</p>
<p><strong>English:</strong></p>
<p>I have a VPN to my work, but recently stopped working giving the error 721 when trying to Connect &#8230; I searched the net and some post talking about the port on the router or firewall, but had the firewall turned off and tested it with another computer on the same wireless network and it worked &#8230;</p>
<p>After much research I discovered what caused this error.<br />
To connect to some clients I use Cisco Systems VPN Client.<br />
The VPN Client has an option that caused the error:)<br />
<strong>Resolution:</strong></p>
<p>Â </p>
<p>Open the Cisco VPN Client -&gt; Options-&gt; Deselect the option Stateful Firewall (Always on).<br />
I tested my VPN for work (VPN windows xp) and it worked!: D<br />
The error occurred even be having the Cisco VPN Client running ..</p>
<p>Â  <strong>PortuguÃªs: </strong></p>
<p>Tenho uma ligaÃ§Ã£o VPN para o meu trabalho, mas recentemente deixou de funcionar dando o erro 721 quando tentava connectar&#8230; Pesquisei na net e alguns post falavam sobre a porta no router ou firewall, mas tinha a firewall desligada e testei com outro computador na mesma rede wireless e funcionou..<br />
ApÃ³s muita pesquisa descobri o que causava este erro.<br />
Para me conectar a alguns clientes eu utilizo o Cisco Systems VPN Client.<br />
Este VPN Cliente tem uma opÃ§Ã£o que causava o erro <img src='http://it-improves.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>ResoluÃ§Ã£o:</strong></p>
<p>Abrir o Cisco VPN Client -&gt; Options-&gt;Desseleccionar a opÃ§Ã£o Stateful Firewall(Always on) .<br />
Testei a minha VPN para o trabalho (VPN do windows xp) e funcionou !!!:D<br />
O erro acontecia mesmo ser ter o VPN Client da cisco a correr..</p>
]]></content:encoded>
			<wfw:commentRss>http://it-improves.com/blog/index.php/2010/08/88/feed/</wfw:commentRss>
		</item>
		<item>
		<title>it-improves ecolÃ³gica</title>
		<link>http://it-improves.com/blog/index.php/2010/06/it-improves-ecologica/</link>
		<comments>http://it-improves.com/blog/index.php/2010/06/it-improves-ecologica/#comments</comments>
		<pubDate>Fri, 04 Jun 2010 09:39:53 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://it-improves.com/blog/?p=86</guid>
		<description><![CDATA[Ã‰ com enorme prazer que anunciamos que o site e blog da it-improves se encontra alojado num datacenter ecolÃ³gico, alimentado 100% a energia eÃ³lica.

]]></description>
			<content:encoded><![CDATA[<p>Ã‰ com enorme prazer que anunciamos que o site e blog da it-improves se encontra alojado num datacenter ecolÃ³gico, alimentado 100% a energia eÃ³lica.</p>
<p><a onclick="MyWindow=window.open('http://webhost4life.com/green/green-certified.bml?domain=','greenCertified','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=550,height=700,left=50,top=50'); return false;" href="http://webhost4life.com/green/green-certified.bml?domain="><img src="http://images.webhost4life.com/green/badge-3.png" border="0" alt="" /></a><a href="http://www.webhost4life.com/join/index.bml?AffID=623263"><img style="border: 0px" src="http://www.webhost4life.com/affiliate/banners/484" alt="affiliate_link" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://it-improves.com/blog/index.php/2010/06/it-improves-ecologica/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Anti Virus kaspersky</title>
		<link>http://it-improves.com/blog/index.php/2010/04/anti-virus-kaspersky/</link>
		<comments>http://it-improves.com/blog/index.php/2010/04/anti-virus-kaspersky/#comments</comments>
		<pubDate>Mon, 26 Apr 2010 12:12:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[Anti Virus]]></category>

		<category><![CDATA[firewall]]></category>

		<category><![CDATA[kaspersky]]></category>

		<category><![CDATA[SeguranÃ§a]]></category>

		<guid isPermaLink="false">http://it-improves.com/blog/?p=84</guid>
		<description><![CDATA[Ã‰ com enorme prazer que anunciamos que a it-improves Ã© revendedora da kaspersky, uma das mais reconhecidas empresa na Ã¡rea de anti-virus, firewall e uma das empresas com maior crescimento.
Entrem na loja online clicando na imagem abaixo.(estarÃ£o a comprar directamente do site da kaspersky)

]]></description>
			<content:encoded><![CDATA[<p>Ã‰ com enorme prazer que anunciamos que a it-improves Ã© revendedora da kaspersky, uma das mais reconhecidas empresa na Ã¡rea de anti-virus, firewall e uma das empresas com maior crescimento.</p>
<p>Entrem na loja online clicando na imagem abaixo.(estarÃ£o a comprar directamente do site da kaspersky)</p>
<p><a href="http://www.kaspersky.com.pt/estore/index.php?ref=252&amp;affiliate_banner_id=6" target="_blank"><img src="http://www.kaspersky.com.pt/estore/affiliate_show_banner.php?ref=252&amp;affiliate_banner_id=6" border="0" alt="Loja Kaspersky img" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://it-improves.com/blog/index.php/2010/04/anti-virus-kaspersky/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Get a copy of dll in GAC (or) add Reference to a dll in GAC</title>
		<link>http://it-improves.com/blog/index.php/2010/04/get-a-copy-of-dll-in-gac-or-add-reference-to-a-dll-in-gac/</link>
		<comments>http://it-improves.com/blog/index.php/2010/04/get-a-copy-of-dll-in-gac-or-add-reference-to-a-dll-in-gac/#comments</comments>
		<pubDate>Wed, 21 Apr 2010 16:53:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://it-improves.com/blog/?p=80</guid>
		<description><![CDATA[Sometimes in .net application we need to have a copy of a dll which is available in GAC. But when we view the GAC through C:\Windows\assembly folder or Runïƒ  assembly it will show like this
Using this we cannot copy the dll. Only uninstall option is available.
To view the available dll using the naked eye follow [...]]]></description>
			<content:encoded><![CDATA[<p>Sometimes in .net application we need to have a copy of a dll which is available in GAC. But when we view the GAC through C:\Windows\assembly folder or Runïƒ  assembly it will show like this</p>
<p>Using this we cannot copy the dll. Only uninstall option is available.</p>
<p>To view the available dll using the naked eye follow the steps</p>
<p>Dot net have a dll file Shfusion.dll which is a Assembly Cache Viewer. It is located in the following path.</p>
<p>C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\shfusion.dll</p>
<p>1.uninstall the dll using the following command in the run dialog box.</p>
<p>regsvr32 -u C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\shfusion.dll</p>
<p>1.Now type assembly in the Run dialog box.</p>
<p>2.Now you will see the folder view of the GAC. copy the dll you want.</p>
<p>Note:</p>
<p>To get back to the previous state of view register the Shfusion dll using the following command</p>
<p>regsvr32 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\shfusion.dll</p>
]]></content:encoded>
			<wfw:commentRss>http://it-improves.com/blog/index.php/2010/04/get-a-copy-of-dll-in-gac-or-add-reference-to-a-dll-in-gac/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Gerador Templates</title>
		<link>http://it-improves.com/blog/index.php/2010/04/gerador-templates/</link>
		<comments>http://it-improves.com/blog/index.php/2010/04/gerador-templates/#comments</comments>
		<pubDate>Mon, 12 Apr 2010 17:10:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Utilities]]></category>

		<category><![CDATA[DNN]]></category>

		<category><![CDATA[Drupal]]></category>

		<category><![CDATA[Joomla]]></category>

		<category><![CDATA[Templates]]></category>

		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://it-improves.com/blog/?p=78</guid>
		<description><![CDATA[Geradot de templates fantÃ¡stico!]]></description>
			<content:encoded><![CDATA[<p>Raramente falo aqui de produtos, mas acho que este vale a pena.<br />
Quem jÃ¡ trabalhou com DotNetNuke(DNN), Joomla, Web sites em geral, sabe o trabalho que Ã© criar um<br />
template.<br />
Agora isso Ã© a parte mais fÃ¡cil com o Artisteer.<br />
O Artisteer Ã© um gerador de templates com suporte para DNN, Joomla, WordPress, Blogger,Drupal, aplicaÃ§Ã£o asp.net, etc.<br />
Ã‰ uma ferramenta espetactular!!<br />
Teste e comprem que vale a pena, penso que atÃ© Ã© barato para o que ela faz!<br />
Link:<br />
<a href="http://click.linksynergy.com/fs-bin/click?id=TrcqqmwpQVc&#038;offerid=173675.10000033&#038;type=4&#038;subid=0"><img alt="Artisteer - Web Design Generator" border="0" src="http://cdn.extensoft.com/Artisteer/banners/WebDesign/WebDesign_468x60.gif"></a><img border="0" width="1" height="1" src="http://ad.linksynergy.com/fs-bin/show?id=TrcqqmwpQVc&#038;bids=173675.10000033&#038;type=4&#038;subid=0"></p>
]]></content:encoded>
			<wfw:commentRss>http://it-improves.com/blog/index.php/2010/04/gerador-templates/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Web Hosting/Alojamento</title>
		<link>http://it-improves.com/blog/index.php/2010/04/web-hostingalojamento/</link>
		<comments>http://it-improves.com/blog/index.php/2010/04/web-hostingalojamento/#comments</comments>
		<pubDate>Thu, 08 Apr 2010 17:38:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[alojamento]]></category>

		<category><![CDATA[dominios]]></category>

		<category><![CDATA[servidor dedicado]]></category>

		<category><![CDATA[servidores]]></category>

		<category><![CDATA[sites]]></category>

		<category><![CDATA[vps]]></category>

		<category><![CDATA[web hosting]]></category>

		<guid isPermaLink="false">http://it-improves.com/blog/?p=76</guid>
		<description><![CDATA[Ã‰ com muito gosto que anunciamos mais um serviÃ§o prestado pela it-improves.
O nosso serviÃ§o de Alojamento e Registo de DomÃ­nios!
O alojamento Ã© feito em Data Centes com a mais recente tecnologia, sÃ£o ecolÃ³gicos e seguros e melhor ainda o cliente Ã© que escolhe entre 3 Data Centers!!(USA,Inglaterra, SuÃ©cia).
Veja os nossos planos e soluÃ§Ãµes aqui.
Se jÃ¡ [...]]]></description>
			<content:encoded><![CDATA[<p>Ã‰ com muito gosto que anunciamos mais um serviÃ§o prestado pela it-improves.</p>
<p><strong>O nosso serviÃ§o de Alojamento e Registo de DomÃ­nios!<br />
</strong>O alojamento Ã© feito em <strong>Data Centes com a mais recente tecnologia, sÃ£o ecolÃ³gicos e seguros e melhor ainda o cliente Ã© que escolhe entre 3 Data Centers!!(USA,Inglaterra, SuÃ©cia).</strong></p>
<p><strong>Veja os nossos planos e soluÃ§Ãµes </strong><a href="http://itimproveshosting.duoservers.com/"><strong>aqui</strong></a><strong>.<br />
Se jÃ¡ sabe o que quer poderÃ¡ preencher o formulÃ¡rio pelo link acima ou directamente </strong><a href="http://www.it-improves.com/dnn/WebHosting/tabid/62/Default.aspx"><strong>aqui</strong></a></p>
]]></content:encoded>
			<wfw:commentRss>http://it-improves.com/blog/index.php/2010/04/web-hostingalojamento/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Google Chrome and Mozilla Firefox non standard port (e.g. Port 79, 6000)</title>
		<link>http://it-improves.com/blog/index.php/2009/10/google-chrome-and-mozilla-firefox-non-standard-port-eg-port-79-6000/</link>
		<comments>http://it-improves.com/blog/index.php/2009/10/google-chrome-and-mozilla-firefox-non-standard-port-eg-port-79-6000/#comments</comments>
		<pubDate>Wed, 21 Oct 2009 13:13:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[Utilities]]></category>

		<category><![CDATA[Firefox]]></category>

		<category><![CDATA[google chrome]]></category>

		<category><![CDATA[ports]]></category>

		<guid isPermaLink="false">http://it-improves.com/blog/?p=64</guid>
		<description><![CDATA[Was trying to access some ports on ours development website which someone mapped it to 6000.
Port 6000 is used for X11 protocol ( and 79 is used for finger).
Internet Explorer works fine but Google Chrome and Firefox donÂ´t.
For Firefox exists one solution  
Solution:Unblocking/allowing ports in Firefox
Launch Firefox
Go to the address bar and type about:config. [...]]]></description>
			<content:encoded><![CDATA[<p>Was trying to access some ports on ours development website which someone mapped it to 6000.<br />
Port 6000 is used for X11 protocol ( and 79 is used for finger).<br />
Internet Explorer works fine but Google Chrome and Firefox donÂ´t.<br />
For Firefox exists one solution <img src='http://it-improves.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Solution:Unblocking/allowing ports in Firefox</p>
<p>Launch Firefox</p>
<p>Go to the address bar and type about:config. Firefox will complain about some warranty just click ok or &#8220;I&#8217;ll be careful, i promise&#8221; button</p>
<div class="separator" style="clear: both; text-align: center;"><a style="margin-left: 1em; margin-right: 1em;" href="http://3.bp.blogspot.com/_yVNR5dDy21Y/StNCkrXf60I/AAAAAAAAADw/iilylvRNXXo/s1600-h/firefox-about-config.jpg"><img src="http://3.bp.blogspot.com/_yVNR5dDy21Y/StNCkrXf60I/AAAAAAAAADw/iilylvRNXXo/s320/firefox-about-config.jpg" border="0" alt="" /></a></div>
<p>You will see the list of configuration.<br />
Anywhere inside the list of configurations, right click and say New &#8211;&gt; String</p>
<div class="separator" style="clear: both; text-align: center;"><a style="margin-left: 1em; margin-right: 1em;" href="http://3.bp.blogspot.com/_yVNR5dDy21Y/StNCoW58qHI/AAAAAAAAAD4/smxRayq-u1s/s1600-h/FirefoxConfig.jpg"><img src="http://3.bp.blogspot.com/_yVNR5dDy21Y/StNCoW58qHI/AAAAAAAAAD4/smxRayq-u1s/s320/FirefoxConfig.jpg" border="0" alt="" /></a></div>
<p>In the string value, enter network.security.ports.banned.override then click OK</p>
<p>It will now ask you what port, sayÂ 6000 (in my case)Â or whatever port you need to have firefox access. Click OK.</p>
<p>And try again to the website you want to access. These settings should remain forever.</p>
<p>For Chrome, we&#8217;ve got some bad news, it is not possible to access certain ports.</p>
<p>See Chrome banned ports here: <a href="http://src.chromium.org/viewvc/chrome/trunk/src/net/base/net_util.cc">http://src.chromium.org/viewvc/chrome/trunk/src/net/base/net_util.cc</a><br />
(look under the kRestrictedPorts directive.)</p>
<p>Original post from <a href="http://highsecurity.blogspot.com/2009/07/google-chrome-and-mozilla-firefox-non.html">http://highsecurity.blogspot.com/2009/07/google-chrome-and-mozilla-firefox-non.html</a><br />
(my post is a copy with a few changes only, all rigths for the author)</p>
]]></content:encoded>
			<wfw:commentRss>http://it-improves.com/blog/index.php/2009/10/google-chrome-and-mozilla-firefox-non-standard-port-eg-port-79-6000/feed/</wfw:commentRss>
		</item>
		<item>
		<title>ForÃ§ar modo compatibilidade com o IE7 no IE8</title>
		<link>http://it-improves.com/blog/index.php/2009/10/forcar-modo-compatibilidade-com-o-ie7-no-ie8/</link>
		<comments>http://it-improves.com/blog/index.php/2009/10/forcar-modo-compatibilidade-com-o-ie7-no-ie8/#comments</comments>
		<pubDate>Wed, 21 Oct 2009 13:10:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[IE7]]></category>

		<category><![CDATA[IE8 internet explorer]]></category>

		<guid isPermaLink="false">http://it-improves.com/blog/?p=62</guid>
		<description><![CDATA[
Para forÃ§ar o IE8 a usar o modo de compatibilidade com IE7
tem que adicionar a seguinte tag:


&#60;meta http-equiv="X-UA-Compatible" content="IE=7" /Â &#62;


Mas Ã© muito chato e complicado adicionar em todas as pÃ¡ginas esta tag mas isto pode ser definido no IIS e atÃ© no web.config.
No IIS6
Selecrione o website que pretende, botÃ£o direito do rato e propriedades e [...]]]></description>
			<content:encoded><![CDATA[<h3 class="post-title entry-title"></h3>
<div class="post-body entry-content">Para forÃ§ar o IE8 a usar o modo de compatibilidade com IE7<br />
tem que adicionar a seguinte tag:</p>
<pre class="csharpcode"><span>
<pre class="csharpcode"><span>
<pre class="csharpcode"><span>&lt;</span>meta http-equiv=<span class="str">"X-UA-Compatible"</span> content=<span class="str">"IE=7"</span> /<span>Â <strong><span>&gt;</span></strong></span></pre>
<p></span></pre>
<p></span></pre>
<p>Mas Ã© muito chato e complicado adicionar em todas as pÃ¡ginas esta tag mas isto pode ser definido no IIS e atÃ© no web.config.</p>
<p><strong>No IIS6</strong><br />
<strong><span>Selecrione o website que pretende, botÃ£o direito do rato e propriedades e clique na tab HTTP Headers </span></strong></p>
<div class="separator"><a href="http://4.bp.blogspot.com/_yVNR5dDy21Y/St3kUuYqvyI/AAAAAAAAAEA/s7d4Tz3JLPA/s1600-h/image_thumb_6FE5FFED.png"><img src="http://4.bp.blogspot.com/_yVNR5dDy21Y/St3kUuYqvyI/AAAAAAAAAEA/s7d4Tz3JLPA/s320/image_thumb_6FE5FFED.png" border="0" alt="" /></a></div>
<div class="separator"></div>
<div class="separator">Depois clique em Add</div>
<div class="separator"></div>
<div><a href="http://3.bp.blogspot.com/_yVNR5dDy21Y/St3kjzo8BpI/AAAAAAAAAEI/hnW4Yd90-t4/s1600-h/image_thumb_4F480056.png"><img src="http://3.bp.blogspot.com/_yVNR5dDy21Y/St3kjzo8BpI/AAAAAAAAAEI/hnW4Yd90-t4/s320/image_thumb_4F480056.png" border="0" alt="" /></a></div>
<p><span><span><br />
</span></span><br />
Depois sÃ³ faz ok.<br />
<strong>No IIS 7</strong><br />
<strong><span>SeleccioneÂ o site pretendido depois clique em HTTP Response Headers </span></strong></p>
<div class="separator"><a href="http://2.bp.blogspot.com/_yVNR5dDy21Y/St3kzIkmmTI/AAAAAAAAAEQ/qOwmSdLVvIw/s1600-h/image_thumb_2E548DAF.png"><img src="http://2.bp.blogspot.com/_yVNR5dDy21Y/St3kzIkmmTI/AAAAAAAAAEQ/qOwmSdLVvIw/s320/image_thumb_2E548DAF.png" border="0" alt="" /></a></div>
<p>Ao Â clicar ira aparecer a seguinte imagem e Ã© sÃ³ preencher os valores</p>
<div class="separator"><a href="http://3.bp.blogspot.com/_yVNR5dDy21Y/St3lNK0_gFI/AAAAAAAAAEY/EKfBVXLEQBA/s1600-h/image23_thumb_4EF28D46.png"><img src="http://3.bp.blogspot.com/_yVNR5dDy21Y/St3lNK0_gFI/AAAAAAAAAEY/EKfBVXLEQBA/s320/image23_thumb_4EF28D46.png" border="0" alt="" /></a></div>
<div class="separator"></div>
<div class="separator">TambÃ©m pode fazer isto adicionando as seguintes linhas no web.config ( que Ã© o que faz o IIS 7)</div>
<div class="separator"></div>
<div><a href="http://3.bp.blogspot.com/_yVNR5dDy21Y/St3lb-MoQEI/AAAAAAAAAEg/ZpJ1gfvQ_zY/s1600-h/image27_thumb_42F09D12.png"><img src="http://3.bp.blogspot.com/_yVNR5dDy21Y/St3lb-MoQEI/AAAAAAAAAEg/ZpJ1gfvQ_zY/s320/image27_thumb_42F09D12.png" border="0" alt="" /></a></div>
<p>Esta soluÃ§Ã£o foi retirada de:Â <a href="http://weblogs.asp.net/joelvarty/archive/2009/03/23/force-ie7-compatibility-mode-in-ie8-with-iis-settings.aspx">http://weblogs.asp.net/joelvarty/archive/2009/03/23/force-ie7-compatibility-mode-in-ie8-with-iis-settings.aspx</a></div>
]]></content:encoded>
			<wfw:commentRss>http://it-improves.com/blog/index.php/2009/10/forcar-modo-compatibilidade-com-o-ie7-no-ie8/feed/</wfw:commentRss>
		</item>
		<item>
		<title>WebServices AutenticaÃ§Ã£o SOAP Header</title>
		<link>http://it-improves.com/blog/index.php/2009/10/webservices-autenticacao-soap-header/</link>
		<comments>http://it-improves.com/blog/index.php/2009/10/webservices-autenticacao-soap-header/#comments</comments>
		<pubDate>Tue, 13 Oct 2009 12:42:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://it-improves.com/blog/index.php/2009/10/webservices-autenticacao-soap-header/</guid>
		<description><![CDATA[Sempre que estamos a falar de webservices surge uma questÃ£o.
	
E a seguranÃ§a?
	
Como vou autenticar os utilizadores?
	
Â
Â 
Uma das formas de fazer isso Ã© com Soap Headers.
	
Â
Â 
Vamos por passos.
	
1Âº Crie a seguinte classe( com o nome que quiser )
	

Â 
using System;

using System.Data;

using System.Configuration;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls;

using System.Web.Services.Protocols;

using System.Security.Cryptography;


Â 
///
			&#60;summary&#62;

/// Summary description for AuthHeader

///
			&#60;/summary&#62;

public
			class
			AuthHeader:SoapHeader

{

Â Â Â Â

Â Â Â Â Â Â Â Â public
			string Username;


			public
			string Password;


Â 

			public
			string decrypt(string [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-size:10pt">Sempre que estamos a falar de webservices surge uma questÃ£o.</span>
	</p>
<p><span style="font-size:10pt">E a seguranÃ§a?</span>
	</p>
<p><span style="font-size:10pt">Como vou autenticar os utilizadores?</span>
	</p>
<p>Â<br />
Â </p>
<p><span style="font-size:10pt">Uma das formas de fazer isso Ã© com Soap Headers.</span>
	</p>
<p>Â<br />
Â </p>
<p><span style="font-size:10pt">Vamos por passos.</span>
	</p>
<p><span style="font-size:10pt">1Âº Crie a seguinte classe( com o nome que quiser )</span>
	</p>
<p>
Â </p>
<p><span style="font-family:Courier New; font-size:10pt"><span style="color:blue">using</span> System;<br />
</span></p>
<p><span style="font-family:Courier New; font-size:10pt"><span style="color:blue">using</span> System.Data;<br />
</span></p>
<p><span style="font-family:Courier New; font-size:10pt"><span style="color:blue">using</span> System.Configuration;<br />
</span></p>
<p><span style="font-family:Courier New; font-size:10pt"><span style="color:blue">using</span> System.Web;<br />
</span></p>
<p><span style="font-family:Courier New; font-size:10pt"><span style="color:blue">using</span> System.Web.Security;<br />
</span></p>
<p><span style="font-family:Courier New; font-size:10pt"><span style="color:blue">using</span> System.Web.UI;<br />
</span></p>
<p><span style="font-family:Courier New; font-size:10pt"><span style="color:blue">using</span> System.Web.UI.WebControls;<br />
</span></p>
<p><span style="font-family:Courier New; font-size:10pt"><span style="color:blue">using</span> System.Web.UI.WebControls.WebParts;<br />
</span></p>
<p><span style="font-family:Courier New; font-size:10pt"><span style="color:blue">using</span> System.Web.UI.HtmlControls;<br />
</span></p>
<p><span style="font-family:Courier New; font-size:10pt"><span style="color:blue">using</span> System.Web.Services.Protocols;<br />
</span></p>
<p><span style="font-family:Courier New; font-size:10pt"><span style="color:blue">using</span> System.Security.Cryptography;<br />
</span></p>
<p>
Â </p>
<p><span style="font-family:Courier New; font-size:10pt"><span style="color:gray">///</span><span style="color:green"><br />
			</span><span style="color:gray">&lt;summary&gt;<br />
</span></span></p>
<p><span style="font-family:Courier New; font-size:10pt"><span style="color:gray">///</span><span style="color:green"> Summary description for AuthHeader<br />
</span></span></p>
<p><span style="font-family:Courier New; font-size:10pt"><span style="color:gray">///</span><span style="color:green"><br />
			</span><span style="color:gray">&lt;/summary&gt;<br />
</span></span></p>
<p><span style="font-family:Courier New; font-size:10pt"><span style="color:blue">public</span><br />
			<span style="color:blue">class</span><br />
			<span style="color:#2b91af">AuthHeader</span>:<span style="color:#2b91af">SoapHeader<br />
</span></span></p>
<p><span style="font-family:Courier New; font-size:10pt">{<br />
</span></p>
<p><span style="font-family:Courier New; font-size:10pt">Â Â Â Â<br />
</span></p>
<p><span style="font-family:Courier New; font-size:10pt">Â Â Â Â Â Â Â Â <span style="color:blue">public</span><br />
			<span style="color:blue">string</span> Username;<br />
</span></p>
<p><span style="font-family:Courier New; font-size:10pt"><br />
			<span style="color:blue">public</span><br />
			<span style="color:blue">string</span> Password;<br />
</span></p>
<p>
Â </p>
<p><span style="font-family:Courier New; font-size:10pt"><br />
			<span style="color:blue">public</span><br />
			<span style="color:blue">string</span> decrypt(<span style="color:blue">string</span> data)<br />
</span></p>
<p><span style="font-family:Courier New; font-size:10pt">    {<br />
</span></p>
<p><span style="font-family:Courier New; font-size:10pt">        System.IO.<span style="color:#2b91af">MemoryStream</span> msDecrypt = <span style="color:blue">null</span>;<br />
</span></p>
<p><span style="font-family:Courier New; font-size:10pt"><br />
			<span style="color:#2b91af">CryptoStream</span> csDecrypt = <span style="color:blue">null</span>;<br />
</span></p>
<p><span style="font-family:Courier New; font-size:10pt">        System.IO.<span style="color:#2b91af">StreamReader</span> srDecrypt = <span style="color:blue">null</span>;<br />
</span></p>
<p>
Â </p>
<p><span style="font-family:Courier New; font-size:10pt">        System.Security.Cryptography.<span style="color:#2b91af">RijndaelManaged</span> aesAlg = <span style="color:blue">null</span>;<br />
</span></p>
<p>
Â </p>
<p><span style="font-family:Courier New; font-size:10pt"><br />
			<span style="color:blue">string</span> plaintext = <span style="color:blue">null</span>;<br />
</span></p>
<p><span style="font-family:Courier New; font-size:10pt"><br />
			<span style="color:blue">try<br />
</span></span></p>
<p><span style="font-family:Courier New; font-size:10pt">        {<br />
</span></p>
<p><span style="font-family:Courier New; font-size:10pt"><br />
			<span style="color:green">// Create a RijndaelManaged object<br />
</span></span></p>
<p><span style="font-family:Courier New; font-size:10pt"><br />
			<span style="color:green">// with the specified key (IV parameter is obmitted because of ECB CipherMode).<br />
</span></span></p>
<p><span style="font-family:Courier New; font-size:10pt">            aesAlg = <span style="color:blue">new</span> System.Security.Cryptography.<span style="color:#2b91af">RijndaelManaged</span>();<br />
</span></p>
<p><span style="font-family:Courier New; font-size:10pt">            aesAlg.Key = System.Text.<span style="color:#2b91af">Encoding</span>.UTF8.GetBytes(<span style="color:#a31515">&#8220;01030123012390129012901A&#8221;</span>);<br />
</span></p>
<p><span style="font-family:Courier New; font-size:10pt">            aesAlg.Mode = <span style="color:#2b91af">CipherMode</span>.ECB;<br />
</span></p>
<p><span style="font-family:Courier New; font-size:10pt"><br />
			<span style="color:green">// set PaddingMode.Zeros in order to use the same padding mode as in flash actionscript class<br />
</span></span></p>
<p><span style="font-family:Courier New; font-size:10pt">            aesAlg.Padding = <span style="color:#2b91af">PaddingMode</span>.Zeros;<br />
</span></p>
<p>
Â </p>
<p><span style="font-family:Courier New; font-size:10pt"><br />
			<span style="color:green">// Create a decrytor to perform the stream transform.<br />
</span></span></p>
<p><span style="font-family:Courier New; font-size:10pt"><br />
			<span style="color:#2b91af">ICryptoTransform</span> decryptor = aesAlg.CreateDecryptor(aesAlg.Key, aesAlg.IV);<br />
</span></p>
<p>
Â </p>
<p><span style="font-family:Courier New; font-size:10pt"><br />
			<span style="color:green">// Create the streams used for decryption.<br />
</span></span></p>
<p><span style="font-family:Courier New; font-size:10pt">         msDecrypt = <span style="color:blue">new</span> System.IO.<span style="color:#2b91af">MemoryStream</span>(<span style="color:#2b91af">Convert</span>.FromBase64String(data));<br />
</span></p>
<p><span style="font-family:Courier New; font-size:10pt">            csDecrypt = <span style="color:blue">new</span><br />
			<span style="color:#2b91af">CryptoStream</span>(msDecrypt, decryptor, <span style="color:#2b91af">CryptoStreamMode</span>.Read);<br />
</span></p>
<p><span style="font-family:Courier New; font-size:10pt">            srDecrypt = <span style="color:blue">new</span> System.IO.<span style="color:#2b91af">StreamReader</span>(csDecrypt);<br />
</span></p>
<p>
Â </p>
<p><span style="font-family:Courier New; font-size:10pt"><br />
			<span style="color:green">// Read the decrypted bytes from the decrypting stream<br />
</span></span></p>
<p><span style="font-family:Courier New; font-size:10pt"><br />
			<span style="color:green">// and place them in a string.<br />
</span></span></p>
<p><span style="font-family:Courier New; font-size:10pt">            plaintext = srDecrypt.ReadToEnd();<br />
</span></p>
<p><span style="font-family:Courier New; font-size:10pt"><br />
			<span style="color:blue">return</span> plaintext.Replace(<span style="color:#a31515">&#8220;\0&#8243;</span>, <span style="color:#a31515">&#8220;&#8221;</span>);<br />
</span></p>
<p><span style="font-family:Courier New; font-size:10pt">        }<br />
</span></p>
<p><span style="font-family:Courier New; font-size:10pt"><br />
			<span style="color:blue">finally<br />
</span></span></p>
<p><span style="font-family:Courier New; font-size:10pt">        {<br />
</span></p>
<p><span style="font-family:Courier New; font-size:10pt"><br />
			<span style="color:green">// Clean things up.<br />
</span></span></p>
<p><span style="font-family:Courier New; font-size:10pt"><br />
			<span style="color:green">// Close the streams.<br />
</span></span></p>
<p><span style="font-family:Courier New; font-size:10pt"><br />
			<span style="color:blue">if</span> (srDecrypt != <span style="color:blue">null</span>)<br />
</span></p>
<p><span style="font-family:Courier New; font-size:10pt">                srDecrypt.Close();<br />
</span></p>
<p><span style="font-family:Courier New; font-size:10pt"><br />
			<span style="color:blue">if</span> (csDecrypt != <span style="color:blue">null</span>)<br />
</span></p>
<p><span style="font-family:Courier New; font-size:10pt">                csDecrypt.Close();<br />
</span></p>
<p><span style="font-family:Courier New; font-size:10pt"><br />
			<span style="color:blue">if</span> (msDecrypt != <span style="color:blue">null</span>)<br />
</span></p>
<p><span style="font-family:Courier New; font-size:10pt">                msDecrypt.Close();<br />
</span></p>
<p>
Â </p>
<p><span style="font-family:Courier New; font-size:10pt"><br />
			<span style="color:green">// Clear the RijndaelManaged object.<br />
</span></span></p>
<p><span style="font-family:Courier New; font-size:10pt"><br />
			<span style="color:blue">if</span> (aesAlg != <span style="color:blue">null</span>)<br />
</span></p>
<p><span style="font-family:Courier New; font-size:10pt">                aesAlg.Clear();<br />
</span></p>
<p><span style="font-family:Courier New; font-size:10pt">        }<br />
</span></p>
<p>
Â </p>
<p><span style="font-family:Courier New; font-size:10pt">    }<br />
</span></p>
<p>
Â </p>
<p>
Â </p>
<p>
Â </p>
<p>
Â </p>
<p>
Â </p>
<p><span style="font-family:Courier New; font-size:10pt">}<br />
</span></p>
<p>
Â </p>
<p>2Âº No seu webservice adicione as seguintes linhas
</p>
<p><span style="font-family:Courier New; font-size:10pt"><span style="color:blue">public</span><br />
			<span style="color:blue">class</span><br />
			<span style="color:#2b91af">SeuWebsercice</span> : System.Web.Services.<span style="color:#2b91af">WebService<br />
</span></span></p>
<p><span style="font-family:Courier New; font-size:10pt">{<br />
</span></p>
<p><span style="font-family:Courier New; font-size:10pt"><strong><br />
				<span style="color:blue">public</span><br />
				<span style="color:#2b91af">AuthHeader</span> Authentication;<br />
</strong></span></p>
<p>â€¦.
</p>
<p>E em cada mÃ©todo<br/>adicionar
</p>
<p><span style="font-family:Courier New; font-size:10pt">[<span style="color:#2b91af">SoapHeader</span>(<span style="color:#a31515">"Authentication"</span>, Required = <span style="color:blue">true</span>)]<br />
</span></p>
<p>Exemplo:
</p>
<p><span style="font-family:Courier New; font-size:10pt">[<span style="color:#2b91af">SoapHeader</span>(<span style="color:#a31515">"Authentication"</span>, Required = <span style="color:blue">true</span>)]<br />
</span></p>
<p><span style="font-family:Courier New; font-size:10pt">    [<span style="color:#2b91af">WebMethod</span>]<br />
</span></p>
<p><span style="font-family:Courier New; font-size:10pt"><br />
			<span style="color:blue">public</span><br />
			<span style="color:blue">bool</span> xptoMethod()<br />
</span></p>
<p><span style="font-family:Courier New; font-size:10pt">    {<br />
</span></p>
<p>
Â </p>
<p>
Â </p>
<p><span style="font-family:Courier New; font-size:10pt"><span style="color:green">//validateUser Ã© apenas exemplo.. podera ser um login </span><br />
			<span style="color:blue">if</span>(!System.Web.Security.<span style="color:#2b91af">Membership</span>.ValidateUser(Authentication.decrypt(Authentication.Username),<br />
</span></p>
<p><span style="font-family:Courier New; font-size:10pt">              Authentication.decrypt(Authentication.Password)))<br />
</span></p>
<p>
Â </p>
<p><span style="font-family:Courier New; font-size:10pt">        {<br />
</span></p>
<p><span style="font-family:Courier New; font-size:10pt"><br />
			<span style="color:blue">return</span><br />
			<span style="color:blue">false</span>;<br />
</span></p>
<p><span style="font-family:Courier New; font-size:10pt">        }<br />
</span></p>
<p>
Â </p>
<p>NOTA: neste exemplo Ã© necessÃ¡rio efectuar a validaÃ§Ã£o em cada metodo, no entando o melhor (dependendo do que se pretende) serÃ¡ guardar em sessÃ£o se o user ta autenticado
</p>
<p>
Â </p>
<p>No lado do cliente:
</p>
<p>Criar a classe de encriptaÃ§Ã£o
</p>
<p><span style="font-family:Courier New; font-size:10pt"><br />
			<span style="color:blue">private</span><br />
			<span style="color:blue">static</span><br />
			<span style="color:blue">string</span> Encrypt(<span style="color:blue">string</span> input)<br />
</span></p>
<p><span style="font-family:Courier New; font-size:10pt">        {<br />
</span></p>
<p>
Â </p>
<p><span style="font-family:Courier New; font-size:10pt">            System.Security.Cryptography.<span style="color:#2b91af">RijndaelManaged</span> aesAlg = <span style="color:blue">null</span>;<br />
</span></p>
<p>
Â </p>
<p><span style="font-family:Courier New; font-size:10pt"><br />
			<span style="color:green">// Create a RijndaelManaged object<br />
</span></span></p>
<p><span style="font-family:Courier New; font-size:10pt"><br />
			<span style="color:green">// with the specified key (IV parameter is obmitted because of ECB CipherMode).<br />
</span></span></p>
<p><span style="font-family:Courier New; font-size:10pt">            aesAlg = <span style="color:blue">new</span> System.Security.Cryptography.<span style="color:#2b91af">RijndaelManaged</span>();<br />
</span></p>
<p>
Â </p>
<p><span style="color:green; font-family:Courier New; font-size:10pt">//IMPORTANTE: esta chave ter que ser a mesma<br />
</span></p>
<p><span style="font-family:Courier New; font-size:10pt">            aesAlg.Key = System.Text.<span style="color:#2b91af">Encoding</span>.UTF8.GetBytes(<span style="color:#a31515">&#8220;01030123012390129012901A&#8221;</span>);<br />
</span></p>
<p><span style="font-family:Courier New; font-size:10pt">            aesAlg.Mode = <span style="color:#2b91af">CipherMode</span>.ECB;<br />
</span></p>
<p><span style="font-family:Courier New; font-size:10pt"><br />
			<span style="color:green">// set PaddingMode.Zeros in order to use the same padding mode as in flash actionscript class<br />
</span></span></p>
<p><span style="font-family:Courier New; font-size:10pt">            aesAlg.Padding = <span style="color:#2b91af">PaddingMode</span>.Zeros;<br />
</span></p>
<p>
Â </p>
<p><span style="font-family:Courier New; font-size:10pt"><br />
			<span style="color:green">// Create a decrytor to perform the stream transform.<br />
</span></span></p>
<p><span style="font-family:Courier New; font-size:10pt"><br />
			<span style="color:#2b91af">ICryptoTransform</span> encryptor = aesAlg.CreateEncryptor(aesAlg.Key, aesAlg.IV);<br />
</span></p>
<p><span style="font-family:Courier New; font-size:10pt"><br />
			<span style="color:blue">byte</span>[] toEncrypt = System.Text.<span style="color:#2b91af">Encoding</span>.UTF8.GetBytes(input);<br />
</span></p>
<p><span style="font-family:Courier New; font-size:10pt">            System.IO.<span style="color:#2b91af">MemoryStream</span> msEncrypt = <span style="color:blue">new</span> System.IO.<span style="color:#2b91af">MemoryStream</span>();<br />
</span></p>
<p><span style="font-family:Courier New; font-size:10pt"><br />
			<span style="color:#2b91af">CryptoStream</span> csEncrypt = <span style="color:blue">new</span><br />
			<span style="color:#2b91af">CryptoStream</span>(msEncrypt, encryptor, <span style="color:#2b91af">CryptoStreamMode</span>.Write);<br />
</span></p>
<p>
Â </p>
<p><span style="font-family:Courier New; font-size:10pt"><br />
			<span style="color:green">// toEncrypt = textConverter.GetBytes(input);<br />
</span></span></p>
<p>
Â </p>
<p><span style="font-family:Courier New; font-size:10pt">            csEncrypt.Write(toEncrypt, 0, toEncrypt.Length);<br />
</span></p>
<p><span style="font-family:Courier New; font-size:10pt">            csEncrypt.FlushFinalBlock();<br />
</span></p>
<p>
Â </p>
<p><span style="font-family:Courier New; font-size:10pt"><br />
			<span style="color:green">// return msEncrypt.ToArray();<br />
</span></span></p>
<p><span style="font-family:Courier New; font-size:10pt"><br />
			<span style="color:blue">return</span><br />
			<span style="color:#2b91af">Convert</span>.ToBase64String(msEncrypt.ToArray());<br />
</span></p>
<p><span style="font-family:Courier New; font-size:10pt">        }<br />
</span></p>
<p>
Â </p>
<p><span style="font-family:Courier New; font-size:10pt">Na classe onde ira ser chamado o webservice:<br />
</span></p>
<p><span style="font-family:Courier New; font-size:10pt"><span style="color:blue">  static</span> WebSync.<span style="color:#2b91af">Sync</span> websync = <span style="color:blue">new</span> WebSync.<span style="color:#2b91af">Sync</span>();<br />
</span></p>
<p><span style="font-family:Courier New; font-size:10pt"><br />
			<span style="color:blue">static</span> WebSync.<span style="color:#2b91af">AuthHeader</span> aut = <span style="color:blue">new</span> WebSync.<span style="color:#2b91af">AuthHeader</span>();<br />
</span></p>
<p style="margin-left: 36pt"><span style="font-family:Courier New; font-size:10pt">aut.Username = Encrypt(config.AppSettings.Settings[<span style="color:#a31515">"username"</span>].Value);<br />
</span></p>
<p><span style="font-family:Courier New; font-size:10pt">            aut.Password = Encrypt(config.AppSettings.Settings[<span style="color:#a31515">"password"</span>].Value);<br />
</span></p>
<p><span style="font-family:Courier New; font-size:10pt">            websync.AuthHeaderValue = aut;<br />
</span></p>
<p>
Â </p>
<p><span style="font-family:Courier New; font-size:10pt">O resto ( a chamada ao metodo) nÃ£o Ã© preciso alterar nada..<br/>ex: webSync.xpto();</span></p>
]]></content:encoded>
			<wfw:commentRss>http://it-improves.com/blog/index.php/2009/10/webservices-autenticacao-soap-header/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Query para efectuar update a um campo em todas as tabelas ( SQL SERVER)</title>
		<link>http://it-improves.com/blog/index.php/2009/09/query-para-efectuar-update-a-um-campo-em-todas-as-tabelas-sql-server/</link>
		<comments>http://it-improves.com/blog/index.php/2009/09/query-para-efectuar-update-a-um-campo-em-todas-as-tabelas-sql-server/#comments</comments>
		<pubDate>Tue, 22 Sep 2009 12:12:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[SQL Server]]></category>

		<category><![CDATA[SqlServer]]></category>

		<category><![CDATA[update]]></category>

		<guid isPermaLink="false">http://it-improves.com/blog/?p=59</guid>
		<description><![CDATA[Imaginem que tÃªm uma base dados ( o mais provÃ¡vel Ã© nÃ£o precisarem de imaginar porque tÃªm mesmo lol )
em que vÃ¡rias tabelas possuem um campo chamado &#8220;data_criacao&#8221; e precisam de actualizar esse campo em todas as tabelas mas nÃ£o sabem sequer que tabelas tÃªm esse campo &#8220;data_criacao&#8221;.
Vamos por passos.
1Âº - Script para achar esse [...]]]></description>
			<content:encoded><![CDATA[<p>Imaginem que tÃªm uma base dados ( o mais provÃ¡vel Ã© nÃ£o precisarem de imaginar porque tÃªm mesmo lol )<br />
em que vÃ¡rias tabelas possuem um campo chamado &#8220;data_criacao&#8221; e precisam de actualizar esse campo em todas as tabelas mas nÃ£o sabem sequer que tabelas tÃªm esse campo &#8220;data_criacao&#8221;.<br />
Vamos por passos.<br />
1Âº - Script para achar esse campo<br />
<span style="color: #333333; font-family: monospace; font-size: 12px; line-height: 19px;"><span style="color: blue; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">&nbsp;&nbsp; &nbsp;SELECT&nbsp;</span><span style="color: black; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">t.name&nbsp;</span><span style="color: blue; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">AS&nbsp;</span><span style="color: black; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">table_name</span><span style="color: grey; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">,<br style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /></span><span style="color: black; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">&nbsp;&nbsp; &nbsp;SCHEMA_NAME</span><span style="color: grey; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">(</span><span style="color: black; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">schema_id</span><span style="color: grey; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">)&nbsp;</span><span style="color: blue; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">AS&nbsp;</span><span style="color: black; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">schema_name</span><span style="color: grey; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">,<br style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /></span><span style="color: black; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">&nbsp;&nbsp; &nbsp;c.name&nbsp;</span><span style="color: blue; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">AS&nbsp;</span><span style="color: black; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">column_name<br style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /></span><span style="color: blue; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">&nbsp;&nbsp; &nbsp;FROM&nbsp;</span><span style="color: black; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">sys.tables&nbsp;</span><span style="color: blue; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">AS&nbsp;</span><span style="color: black; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">t<br style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /></span><span style="color: blue; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">&nbsp;&nbsp; &nbsp;INNER&nbsp;JOIN&nbsp;</span><span style="color: black; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">sys.columns&nbsp;c&nbsp;</span><span style="color: blue; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">ON&nbsp;</span><span style="color: black; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">t.</span><span style="color: magenta; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">OBJECT_ID&nbsp;</span><span style="color: blue; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">=&nbsp;</span><span style="color: black; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">c.</span><span style="color: magenta; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">OBJECT_ID<br style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /></span><span style="color: blue; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">&nbsp;&nbsp; &nbsp;WHERE&nbsp;</span><span style="color: black; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">c.name&nbsp;</span><span style="color: grey; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">LIKE&nbsp;</span><span style="color: red; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">&#8216;%<span style="font-family: 'Times New Roman'; font-size: medium; line-height: normal;">data_criacao</span>%&#8217;<br style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /></span><span style="color: blue; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">&nbsp;&nbsp; ORDER&nbsp;BY&nbsp;</span><span style="color: black; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">schema_name</span><span style="color: grey; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">,&nbsp;</span><span style="color: black; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">table_name</span><span style="color: grey; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">;</span></span></p>
<div style="text-align: left;">
<span style="font-family: monospace; font-size: small;"><span style="font-size: 12px; line-height: 19px;">Este script ira retornar o nome da tabela, o schema e nome da coluna (que terÃ¡ de ser o nome que vocÃªs pesquisaram <img src='http://it-improves.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> )</span></span>
</div>
<div style="text-align: left;">
<span style="font-family: monospace; font-size: small;"><span style="font-size: 12px; line-height: 19px;"><br />
</span></span>
</div>
<div style="text-align: left;">
<span style="font-family: monospace; font-size: small;"><span style="font-size: 12px; line-height: 19px;">2Âº Agora que jÃ¡ sabem onde estÃ£o ( mas nÃ£o precisam de saber <img src='http://it-improves.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ) vamos a segunda parte.<br />
O script para efectuar o update.&nbsp;</span></span>
</div>
<div style="text-align: left;">
<span style="font-family: monospace; font-size: small;"><span style="font-size: 12px; line-height: 19px;">Usaremos o script acima, com umas pequenas alteraÃ§Ãµes, e vamos guardar o resultado numa variÃ¡vel e depois executamos essa variÃ¡vel<br />
&nbsp;&nbsp;<span style="color: blue;">begin transaction</span></span></span>
</div>
<div style="text-align: left;">
<span style="font-family: monospace; font-size: small;"><span style="font-size: 12px; line-height: 19px;"><span style="color: blue;">declare </span>@query <span style="color: blue;">varchar</span>(<span style="color: magenta;">max</span>)</span></span>
</div>
<div style="text-align: left;">
<span style="font-family: monospace; font-size: small;"><span style="font-size: 12px; line-height: 19px;"><span style="color: blue;">set </span>@query=<span style="color: red;">&#8221;</span></span></span>
</div>
<div style="text-align: left;">
<span style="font-family: monospace; font-size: small;"><span style="font-size: 12px; line-height: 19px;"><span style="color: blue;">SELECT </span>@query=@query+<span style="color: red;">&#8216;update &#8216; +t.name+&#8217; set data_criacao=getdate() where data_criacao is null;&#8217;</span></span></span>
</div>
<div style="text-align: left;">
<span style="font-family: monospace; font-size: small;"><span style="font-size: 12px; line-height: 19px;"><span style="color: #38761d;">&#8211;SCHEMA_NAME(schema_id) AS schema_name,</span></span></span>
</div>
<div style="text-align: left;">
<span style="font-family: monospace; font-size: small;"><span style="font-size: 12px; line-height: 19px;"><span style="color: #38761d;">&#8211;c.name AS column_name</span></span></span>
</div>
<div style="text-align: left;">
<span style="font-family: monospace; font-size: small;"><span style="font-size: 12px; line-height: 19px;"><span style="color: blue;">FROM </span>sys.tables <span style="color: blue;">AS </span>t</span></span>
</div>
<div style="text-align: left;">
<span style="font-family: monospace; font-size: small;"><span style="font-size: 12px; line-height: 19px;"><span style="color: #999999;">INNER JOIN</span> <span style="color: #38761d;">sys.columns</span> c <span style="color: blue;">ON </span>t.<span style="color: magenta;">OBJECT_ID</span> = c.<span style="color: magenta;">OBJECT_ID</span></span></span>
</div>
<div style="text-align: left;">
<span style="font-family: monospace; font-size: small;"><span style="font-size: 12px; line-height: 19px;"><span style="color: blue;">WHERE </span>c.name <span style="color: #999999;">LIKE </span><span style="color: red;">&#8216;%data_criacao%&#8217;</span></span></span>
</div>
<div style="text-align: left;">
<span style="font-family: monospace; font-size: small;"><span style="font-size: 12px; line-height: 19px;"><span style="color: blue;">ORDER BY</span> t.name;</span></span>
</div>
<div style="text-align: left;">
<span style="font-family: monospace; font-size: 12px; line-height: 19px;"><span style="color: blue;">exec</span>(@query)</span>
</div>
<div style="text-align: left;">
<span style="font-family: monospace; font-size: 12px; line-height: 19px;"><span style="color: #38761d;">&#8211;commit</span></span>
</div>
<p><span style="font-family: monospace; font-size: small;"><span style="font-size: 12px; line-height: 19px;">NÃ£o esquecer de verificar se esta tudo ok, e executar o commit que esta comentado&#8230;</span></span><br />
<span style="font-family: monospace; font-size: small;"><span style="font-size: 12px; line-height: 19px;">Ter em atenÃ§Ã£o o tamanho mÃ¡ximo da varchar.. se tiverem muitas tabelas poderÃ¡ nÃ£o dar.. dÃºvido que tenham assim tantas..mas se tiverem insiram o resultado numa tabela temporÃ¡ria e para cada registo faÃ§am o exec <img src='http://it-improves.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </span></span><br />
<span style="font-family: monospace; font-size: small;"><span style="font-size: 12px; line-height: 19px;"><br />
</span></span><br />
<span style="font-family: monospace; font-size: small;"><span style="font-size: 12px; line-height: 19px;">Qualquer dÃºvida, sugestÃ£o, correcÃ§Ã£o Ã© sÃ³ comentar <img src='http://it-improves.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </span></span><br />
<span style="font-family: monospace; font-size: small;"><span style="font-size: 12px; line-height: 19px;">AbraÃ§os</span></span></p>
]]></content:encoded>
			<wfw:commentRss>http://it-improves.com/blog/index.php/2009/09/query-para-efectuar-update-a-um-campo-em-todas-as-tabelas-sql-server/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
