<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2009107678862211455</id><updated>2011-11-27T22:41:21.248-02:00</updated><category term='Infos do blog'/><category term='Ferramentas e Utilitários'/><category term='.Net Testes e Performance'/><category term='Windows XP: Utilidades do dia a dia'/><category term='Próximos posts'/><category term='Bugs e erros'/><category term='SQL Server'/><title type='text'>Blogger: Blog não encontrado</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://bloggernaoencontrado.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2009107678862211455/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://bloggernaoencontrado.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Leandro Fagundes</name><uri>http://www.blogger.com/profile/01187163716994740852</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cmlO51JRC5c/SeTy9mh3b5I/AAAAAAAAALo/Tv0ZC-P08Bs/S220/ATgAAACB6EFcjBZG1FoHovNpB7y56Nhfj8BlFDwXwdKlS280_rBzWuS33IeGQ_yS4KR_mLMZov-__xRp6HWVmWgT7nfGAJtU9VBgSNIqgGPMqd_QqpwainlqPQC6lw.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>12</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2009107678862211455.post-7350954133072270151</id><published>2009-07-29T08:46:00.002-03:00</published><updated>2009-07-29T08:54:46.841-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Bugs e erros'/><title type='text'>Erro ao carregar dataset tipado</title><content type='html'>Faz alguns dias que um rapaz no forum da &lt;a href="http://social.msdn.microsoft.com/Forums/pt-BR/504/"&gt;msdn&lt;/a&gt; reclamou de um problema ao tentar carregar um DataSet. O erro era:&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Falha ao ativar restrições. Uma ou mais linhas contêm valores que violam as restrições non-null, unique ou foreign-key(Failed to enable constraints. One or more rows contain values violating non-null, unique, or foreign-key constraints).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Pesquisando um pouco, encontrei uma resposta interessante e que não tem muito a ver com a descrição da exceção no erro.&lt;br /&gt;Segue o post retirado do blog de &lt;a href="http://www.arleymarciel.com.br/"&gt;Arley Marciel&lt;/a&gt;, que tem todo o mérito pela "descoberta" :)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;"Algumas vezes passamos por problemas na hora de carregar DataSets tipados quando há alguma inconsistência entre os dados do resultset e as configurações do objeto, geralmente a seguinte exceção e lançada:&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;&lt;span style="font-style: italic;"&gt; Falha ao ativar restrições. Uma ou mais linhas contêm valores que violam as restrições non-null, unique ou foreign-key(Failed to enable constraints. One or more rows contain values violating non-null, unique, or foreign-key constraints).&lt;/span&gt;&lt;br /&gt; &lt;p style="margin-bottom: 0cm; font-style: italic;" class="western"&gt; Dessa vez passei por algo pouco comum, a exceção estava acontecendo por uma inconsistência no tamanho(length) de um campo do tipo string, por algum motivo ele não “trunca” o texto e não consegue atribuir o valor à coluna do DataSet. Então para quem estiver passando por essa dificuldade fica ai mais essa dica a ser verificada."&lt;/p&gt;&lt;br /&gt;fonte: &lt;a href="http://arleymarciel.com.br/post/Falha-ao-ativar-restricoes-Uma-ou-mais-linhas-contem-valores-que-violam-as-restricoes-non-null2c-unique-ou-foreign-key%28Failed-to-enable-constraints-One-or-more-rows-contain-values-violating-non-null2c-unique2c-or-foreign-key-constraints%29.aspx"&gt;http://arleymarciel.com.br/post/Falha-ao-ativar-restricoes-Uma-ou-mais-linhas-contem-valores-que-violam-as-restricoes-non-null2c-unique-ou-foreign-key(Failed-to-enable-constraints-One-or-more-rows-contain-values-violating-non-null2c-unique2c-or-foreign-key-constraints).aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2009107678862211455-7350954133072270151?l=bloggernaoencontrado.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bloggernaoencontrado.blogspot.com/feeds/7350954133072270151/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://bloggernaoencontrado.blogspot.com/2009/07/erro-ao-carregar-dataset-tipado.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2009107678862211455/posts/default/7350954133072270151'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2009107678862211455/posts/default/7350954133072270151'/><link rel='alternate' type='text/html' href='http://bloggernaoencontrado.blogspot.com/2009/07/erro-ao-carregar-dataset-tipado.html' title='Erro ao carregar dataset tipado'/><author><name>Leandro Fagundes</name><uri>http://www.blogger.com/profile/01187163716994740852</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cmlO51JRC5c/SeTy9mh3b5I/AAAAAAAAALo/Tv0ZC-P08Bs/S220/ATgAAACB6EFcjBZG1FoHovNpB7y56Nhfj8BlFDwXwdKlS280_rBzWuS33IeGQ_yS4KR_mLMZov-__xRp6HWVmWgT7nfGAJtU9VBgSNIqgGPMqd_QqpwainlqPQC6lw.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2009107678862211455.post-5396412201108666676</id><published>2009-04-05T10:24:00.006-03:00</published><updated>2009-04-05T10:39:48.800-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>Conectando no SQL Server 2005 express pela rede</title><content type='html'>Pessoal, rapidamente... segue abaixo um tutorial que encontrei no Linha de Código (http://www.linhadecodigo.com.br/Artigo.aspx?id=1260&amp;amp;pag=1) feito pelo &lt;span id="ctl00_ContentPlaceHolder1_lblAutor"&gt;&lt;/span&gt;&lt;a href="http://www.linhadecodigo.com.br/Colaborador.aspx?id=286"&gt;Diego Nogare&lt;/a&gt;.&lt;br /&gt;Todos os méritos desse tutorial devem ser direcionados a este cara, eu só estou ajudando a internet com recursos de ajuda! hehehe&lt;br /&gt;segue abaixo, o tutorial da íntegra do cara.&lt;br /&gt;&lt;br /&gt;abraços!&lt;br /&gt;&lt;br /&gt;ps: Ajuda se criar um usuário no modo SQL Authentication e utiliza-lo para conectar pela rede. No windows xp, o SQL Server aceita o usuário convidado com as devidas permissões, para utilizar o banco, mas no Windows Vista não.&lt;br /&gt;&lt;table style="width: 561px; height: 10493px;" cellpadding="0" cellspacing="0"&gt; &lt;tbody&gt;&lt;tr&gt;&lt;td style="vertical-align: top;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class="fonte14"&gt;&lt;strong&gt;&lt;span id="ctl00_ContentPlaceHolder1_lblTitulo2"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Como configurar Conexão Remota no SQL Server 2005&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;&lt;td style="vertical-align: top;"&gt;&lt;br /&gt;&lt;/td&gt;         &lt;/tr&gt;                  &lt;tr&gt;             &lt;td style="vertical-align: top;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class="fonte11"&gt;Publicado em: &lt;span id="ctl00_ContentPlaceHolder1_lblDataPublicacao"&gt;02/03/2007&lt;/span&gt;&lt;/td&gt;&lt;td style="vertical-align: top;"&gt;&lt;br /&gt;&lt;/td&gt;         &lt;/tr&gt;                  &lt;tr&gt;             &lt;td style="vertical-align: top;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class="fonte12"&gt;                 &lt;p&gt;&lt;span id="ctl00_ContentPlaceHolder1_lblTexto"&gt;Muitos casos de problemas com conexão ao servidor de Banco de Dados ocorrem por uma limitação que o SQL Server 2005 possui por padrão. Esta configuração de segurança que vem padronizada no SQL pode ser alterada facilmente. Neste artigo, será apresentada uma maneira de como solucionar este problema rapidamente. Para simular o ambiente, duas máquinas serão utilizadas. Uma será o Servidor de Banco de Dados, e a outra será a máquina cliente. No diagrama abaixo, existe uma arquitetura de exemplo para ilustrar a solução. &lt;p&gt; &lt;img src="http://www.linhadecodigo.com.br/artigos/img_artigos/diego_nogare/conexao1.jpg" alt="" width="559" height="133" /&gt; &lt;/p&gt;&lt;p&gt; O nome do Servidor de Banco de Dados é NGRSERVER e a máquina cliente se chama NOTEBOOK. A instância do SQL Server 2005 que está no servidor é chamada de SQL2005. &lt;/p&gt;&lt;p&gt;Vamos ao que interessa. Ao tentar acessar o Servidor de Banco de Dados com sua configuração padrão, uma mensagem de erro é apresentada. Esta mensagem diz que ocorreu um erro enquanto estabilizava uma conexão com o servidor, esta falha pode ser pelo fato da configuração padrão do SQL Server não permitir conexões remotas. &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;blockquote&gt;&lt;i&gt;"An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections." &lt;/i&gt;&lt;/blockquote&gt;  &lt;p&gt;   &lt;img src="http://www.linhadecodigo.com.br/artigos/img_artigos/diego_nogare/conexao2.jpg" alt="" width="516" height="167" /&gt;  &lt;/p&gt;&lt;p&gt; A solução deste problema é resolvida em alguns passos: &lt;/p&gt;&lt;p&gt; 1. Permitir conexões remotas à instância do SQL Server que será acessada de outro computador;&lt;br /&gt;2. Habilitar o protocolo TCP/IP para conexão e tráfego de informações;&lt;br /&gt;3. Iniciar o serviço do SQL Server Browser;&lt;br /&gt;4. Configurar o Firewall para permitir que informações relacionadas ao SQL Server seja permitido de passar por ele. &lt;/p&gt;&lt;p&gt; Estes passos garantem a conexão remota do SQL Server. Abaixo cada passo é explicado detalhadamente. &lt;/p&gt;&lt;p&gt; &lt;b&gt;Passo 1:&lt;/b&gt; Para permitir que computadores acessem instâncias do SQL Server em outra máquina, a primeira coisa a ser feita é uma configuração na instância que receberá as conexões remotas, no nosso caso, o SQL2005 no servidor NGRSERVER. &lt;/p&gt;&lt;p&gt;  &lt;img src="http://www.linhadecodigo.com.br/artigos/img_artigos/diego_nogare/conexao3.jpg" alt="" width="513" height="392" /&gt;  &lt;/p&gt;&lt;p&gt; Para fazer isso, conecte-se localmente na instância do servidor, clique com o botão direito na instância conectada e aponte o mouse para Properties. &lt;/p&gt;&lt;p&gt;  &lt;img src="http://www.linhadecodigo.com.br/artigos/img_artigos/diego_nogare/conexao4.jpg" alt="" width="512" height="411" /&gt;  &lt;/p&gt;&lt;p&gt; Depois de acessar a tela das propriedades da instância do SQL Server, escolha, no menu da esquerda, a opção &lt;b&gt;&lt;i&gt;Connection&lt;/i&gt;&lt;/b&gt;. A parte direita da tela será referente à Connection, procure a opção &lt;b&gt;&lt;i&gt;Allow remote connection to this server&lt;/i&gt;&lt;/b&gt;. Deixe esta opção marcada. Clique em OK.  &lt;/p&gt;&lt;p&gt;  &lt;img src="http://www.linhadecodigo.com.br/artigos/img_artigos/diego_nogare/conexao5.jpg" alt="" width="512" height="463" /&gt;  &lt;/p&gt;&lt;p&gt; A conclusão deste procedimento passa a garantir que a instância do SQL Server poderá receber conexões remotas, mas este não é o único passo a ser cumprido. Mais alguns passos devem ser seguidos para a conclusão da tarefa. &lt;/p&gt;&lt;p&gt; &lt;b&gt;Passo 2:&lt;/b&gt; Para permitir que o protocolo TCP/IP trafegue informações do SQL e que conexões possam ser estabelecidas através deste protocolo, vamos liberá-lo no SQL Server, utilizando uma ferramenta disponível na instalação das ferramentas de administração. A ferramenta é o &lt;b&gt;&lt;i&gt;SQL Server 2005 Surface Area Configuration&lt;/i&gt;&lt;/b&gt;. Esta ferramenta por padrão, encontra-se na pasta Configuration Tools do SQL Server 2005. Nesta ferramenta, utilizaremos os recursos de &lt;b&gt;&lt;i&gt;Surface Area Configuration for Services and Connections&lt;/i&gt;&lt;/b&gt;.  &lt;/p&gt;&lt;p&gt;  &lt;img src="http://www.linhadecodigo.com.br/artigos/img_artigos/diego_nogare/conexao6.jpg" alt="" width="518" height="410" /&gt;&lt;/p&gt;       &lt;p&gt;&lt;br /&gt;   &lt;/p&gt;       &lt;p&gt;&lt;span id="ctl00_ContentPlaceHolder1_lblTexto"&gt;Acesse &lt;b&gt;&lt;i&gt;Surface Area Configuration for Services and Connections&lt;/i&gt;&lt;/b&gt;, no menu da esquerda expanda o item da instância, neste caso, &lt;b&gt;SQL2005&lt;/b&gt;. Depois expanda &lt;b&gt;&lt;i&gt;Database Engine&lt;/i&gt;&lt;/b&gt; e selecione &lt;b&gt;&lt;i&gt;Remote Connections&lt;/i&gt;&lt;/b&gt;. Na tela da direita, selecione a opção &lt;b&gt;&lt;i&gt;Local and remote connections&lt;/i&gt;&lt;/b&gt; e em seguida &lt;b&gt;&lt;i&gt;Using TCP/IP only&lt;/i&gt;&lt;/b&gt;. Clique em OK.  &lt;p&gt;  &lt;img src="http://www.linhadecodigo.com.br/artigos/img_artigos/diego_nogare/conexao7.jpg" alt="" width="521" height="401" /&gt;  &lt;/p&gt;&lt;p&gt; Esta configuração permite agora, que a instância selecionada receba conexões locais e remotas, as conexões remotas serão somente por TCP/IP. A opção Using both TCP/IP and named pipes também poderia ser sido utilizada, sem problemas. &lt;/p&gt;&lt;p&gt;  Continuando com a configuração do TCP/IP, vamos utilizar agora outra ferramenta, &lt;b&gt;&lt;i&gt;SQL Server Configuration Manager&lt;/i&gt;&lt;/b&gt;. Nesta ferramenta utilizaremos o recurso &lt;i&gt;&lt;b&gt;SQL Server 2005 Network Configuration&lt;/b&gt;&lt;/i&gt;, que se encontra no menu da esquerda. Ao expandir este item, encontramos o &lt;b&gt;&lt;i&gt;Protocols for SQL2005&lt;/i&gt;&lt;/b&gt;. Ao clicar nele, algumas opções se abrirão do lado direito da tela. Nas opções disponibilizadas, devemos deixar o protocolo &lt;b&gt;TCP/IP&lt;/b&gt; com status de &lt;b&gt;&lt;i&gt;Enabled&lt;/i&gt;&lt;/b&gt;. Para fazer isso, clique com o botão direito do mouse em TCP/IP e vá em Enabled. Após isso, ele aparecerá configurado.  &lt;/p&gt;&lt;p&gt;  &lt;img src="http://www.linhadecodigo.com.br/artigos/img_artigos/diego_nogare/conexao8.jpg" alt="" width="521" height="250" /&gt;  &lt;/p&gt;&lt;p&gt; Depois de configurar o status para Enabled, mais duas verificações devem ser feitas nas propriedades do protocolo TCP/IP. Para acessar estas configurações, clique com o botão direito do mouse em TCP/IP e em seguida em Propriedades. Uma tela com duas abas superiores se abrirá. A primeira aba Protocol, deve ficar com a propriedade Enabled configurada para Yes. &lt;/p&gt;&lt;p&gt;  &lt;img src="http://www.linhadecodigo.com.br/artigos/img_artigos/diego_nogare/conexao9.jpg" alt="" width="517" height="575" /&gt;  &lt;/p&gt;&lt;p&gt; Na segunda aba, IP Addresses, devemos garantir que as propriedades Active e Enabled estejam configuradas para Yes.  &lt;/p&gt;&lt;p&gt;  &lt;img src="http://www.linhadecodigo.com.br/artigos/img_artigos/diego_nogare/conexao10.jpg" alt="" width="519" height="576" /&gt;  &lt;/p&gt;&lt;p&gt;  Após garantirmos estas configurações, clicamos em OK para salvar nossas alterações.  &lt;/p&gt;&lt;p&gt; As alterações que foram feitas nestas duas ferramentas são úteis para garantir que a instância do SQL Server selecionada possa receber conexões remotas e que o protocolo remoto de conexão é o TCP/IP. &lt;/p&gt;&lt;p&gt; &lt;b&gt;Passo 3:&lt;/b&gt; Para iniciar o serviço do SQL Server Browser, utilizaremos novamente a ferramenta SQL Server Configuration Manger. Para acessar a área que controla os serviços do SQL Server, no menu da esquerda, será utilizado o item SQL Server 2005 Services. Na parte direita da tela, os serviços relacionados ao SQL Server são apresentados. O serviço SQL Server Browser encontra-se com seu State configurado para Stopped. Para iniciar o serviço, clique com o botão direito do mouse no serviço e em seguida clique em Start. Este processo levará alguns instantes, e o State antigo passará a ser Running. &lt;/p&gt;&lt;p&gt;  &lt;img src="http://www.linhadecodigo.com.br/artigos/img_artigos/diego_nogare/conexao11.jpg" alt="" width="524" height="315" /&gt;&lt;/p&gt;       &lt;p&gt;&lt;span id="ctl00_ContentPlaceHolder1_lblTexto"&gt;Após a inicialização do serviço do SQL Server Browser, e as configurações de liberação para acesso remoto e de TCP/IP, o serviço da instância do SQL Server deve ser reiniciado para que as alterações tenham efeito. Para fazer isso, na mesma tela onde foi iniciado o serviço do SQL Server Browser, selecione o serviço do SQL Server (SQL2005), clique com o botão direito do mouse e aponte p ara Restart. Aguarde alguns instantes a parada e a inicialização do serviço. Lembre-se que SQL2005 é a instância do SQL Server do servidor que utilizamos como exemplo. &lt;p&gt;  &lt;img src="http://www.linhadecodigo.com.br/artigos/img_artigos/diego_nogare/conexao12.jpg" alt="" width="535" height="280" /&gt;  &lt;/p&gt;&lt;p&gt; &lt;b&gt;Passo 4:&lt;/b&gt; Para que as conexões remotas funcionem no SQL Server 2005, o Firewall da rede deve ter exceções para as instâncias do SQL Server 2005 e o serviço do SQL Server Browser. Para exemplificar, colocaremos as exceções no Firewall do próprio Windows. Caso você utilize outro Firewall, você deve ler sua documentação para realizar o procedimento de liberação dos programas utilizados. &lt;/p&gt;&lt;p&gt; O Firewall do Windows está presente nas instalações do Windows XP com Service Pack 2 ou superior. Para acessar o Firewall do Windows, vá em Iniciar &gt; Painel de Controle &gt; Firewall do Windows ou digite firewall.cpl em Iniciar &gt; Executar e clique em OK. A liberação no Firewall deve ser feita para cada instância que terá suas conexões remotas permitidas. Realizar estas exceções em cada instância do SQL Server é necessária pelo fato de ser permitido instalar diversas instâncias do SQL Server em um mesmo servidor. Cada instalação do SQL Server é chamada de instância, e cada instância pode ter quantos Bancos de Dados forem necessários, podendo ser repetidos ou não em uma instância ou outra. Para colocar uma instância do SQL Server nas exceções do Firewall, devemos abrir a aba Exceções do Firewall do Windows, clicar em Adicionar Programa, procurar o arquivo SqlServr.exe que por padrão, encontra-se na pasta C:\Arquivos de Programas\Microsoft SQL Server\MSSQL.1\MSSQL\Binn. &lt;/p&gt;&lt;p&gt;  &lt;img src="http://www.linhadecodigo.com.br/artigos/img_artigos/diego_nogare/conexao13.jpg" alt="" width="481" height="581" /&gt;  &lt;/p&gt;&lt;p&gt;  &lt;img src="http://www.linhadecodigo.com.br/artigos/img_artigos/diego_nogare/conexao14.jpg" alt="" width="479" height="362" /&gt;  &lt;/p&gt;&lt;p&gt;  &lt;img src="http://www.linhadecodigo.com.br/artigos/img_artigos/diego_nogare/conexao15.jpg" alt="" width="484" height="491" /&gt;  &lt;/p&gt;&lt;p&gt;  &lt;img src="http://www.linhadecodigo.com.br/artigos/img_artigos/diego_nogare/conexao16.jpg" alt="" width="479" height="577" /&gt;  &lt;/p&gt;&lt;p&gt; A pasta MSSQL.1 é a pasta referente à instância 1 do SQL Server. Se for colocar uma exceção para uma segunda instância do SQL, o arquivo SqlServr.exe deve ser localizado na pasta MSSQL.2. &lt;/p&gt;&lt;p&gt; Para colocar uma exceção ao serviço do SQL Server Browser, devemos seguir os mesmos passos que percorremos para colocar exceção à instância do SQL Server, a única diferença será procurar o arquivo SqlBrowser.exe que por padrão está na pasta C:\Arquivos de Programas\Microsoft SQL Server\90\Shared. &lt;/p&gt;&lt;p&gt;  &lt;img src="http://www.linhadecodigo.com.br/artigos/img_artigos/diego_nogare/conexao17.jpg" alt="" width="483" height="361" /&gt;   &lt;/p&gt;&lt;p&gt; &lt;img src="http://www.linhadecodigo.com.br/artigos/img_artigos/diego_nogare/conexao18.jpg" alt="" width="482" height="577" /&gt;  &lt;/p&gt;&lt;p&gt; Estes passos apresentados auxiliam a conexão remota com o Servidor de Banco de Dados através de máquinas clientes. Podemos ver que seguindo os passos corretamente, o acesso de aplicações e de ferramentas administrativas deixou de ser exclusivamente da máquina do Servidor de Banco de Dados, e passou a ter acessos liberados para outras máquinas da LAN (Local Area Network). Lembrando que, para acessar uma instância do Banco de Dados, você terá que colocar um usuário e senha válidos para realizar a conexão. &lt;/p&gt;&lt;/span&gt;       &lt;/p&gt;       &lt;/span&gt;        &lt;/p&gt; &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style="vertical-align: top;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt; &lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2009107678862211455-5396412201108666676?l=bloggernaoencontrado.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bloggernaoencontrado.blogspot.com/feeds/5396412201108666676/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://bloggernaoencontrado.blogspot.com/2009/04/conectando-no-sql-server-2005-express.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2009107678862211455/posts/default/5396412201108666676'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2009107678862211455/posts/default/5396412201108666676'/><link rel='alternate' type='text/html' href='http://bloggernaoencontrado.blogspot.com/2009/04/conectando-no-sql-server-2005-express.html' title='Conectando no SQL Server 2005 express pela rede'/><author><name>Leandro Fagundes</name><uri>http://www.blogger.com/profile/01187163716994740852</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cmlO51JRC5c/SeTy9mh3b5I/AAAAAAAAALo/Tv0ZC-P08Bs/S220/ATgAAACB6EFcjBZG1FoHovNpB7y56Nhfj8BlFDwXwdKlS280_rBzWuS33IeGQ_yS4KR_mLMZov-__xRp6HWVmWgT7nfGAJtU9VBgSNIqgGPMqd_QqpwainlqPQC6lw.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2009107678862211455.post-410815466679965349</id><published>2009-03-18T11:20:00.003-03:00</published><updated>2009-03-18T11:41:47.730-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ferramentas e Utilitários'/><title type='text'>Disco virtual - ADrive</title><content type='html'>Bom pessoal, faz alguns dias que me perguntei &lt;span style="color: rgb(204, 153, 51);"&gt;"como pode a &lt;span style="color: rgb(51, 51, 255);"&gt;google&lt;/span&gt; não ter um disco virtual ainda?"&lt;/span&gt;. Ta certo que o &lt;span style="color: rgb(255, 0, 0);"&gt;gmail&lt;/span&gt; tem espaço o suficiente pra quem precisa de um quebra galho de backups, mas o "upload" é máximo de 50mb e isso é realmente poco.&lt;br /&gt;Por isso comecei a dar uma vasculhada geral na internet e acredito ter encontrado um que me parece muito bom:&lt;span style="color: rgb(255, 102, 102);"&gt; &lt;a href="http://www.adrive.com/"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;ADriv&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;a href="http://www.adrive.com/"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;e&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;O ADrive é um disco virtual dividido em 3 planos:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Basic - é básico mesmo e gratuito&lt;/li&gt;&lt;li&gt;Signature - assinante básico&lt;/li&gt;&lt;li&gt;Premium - assinante premium &lt;/li&gt;&lt;/ul&gt;O Básico possui 50gb de espaço, acesso via http de qualquer lugar, é possível fazer upload de até 2gb por arquivo, pode fazer upload de diretórios ou arquivos de qualquer extensão, download de arquivo também é fácil e ainda conta com o Zoho editor, que é uma ferramenta de edição de arquivos (texto, planilhas e algumas coisas assim) que deve ter algumas limitações, mas de graça ta valendo muito.&lt;br /&gt;O Assinante básico, conta com tudo isso e mais alguns aplicativos como ADrive desktop (não sei o que é, mas me parece bom), suporte 24hr por dia 7 dias por semana, FTP etc etc&lt;br /&gt;E o Enterprise é tudo isso só que com mais de 50gb. Tem planos de 100gb pra cima.&lt;br /&gt;&lt;br /&gt;Pra quem quizer mais detalhes, &lt;a style="color: rgb(255, 0, 0);" href="http://www.adrive.com/plans"&gt;veja os planos do ADrive&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Bom sem contar que é possível compartilhar seus arquivos. Você compartilha, gera um endereço e envia via e-mail ou passe para seu contato que ele pode acessar o arquivo e fazer download.&lt;br /&gt;&lt;br /&gt;Por ser gratuito já ganhou pontos comigo! Parece ser um serviço realmente bom, porém, se um dia a &lt;span style="color: rgb(0, 0, 153);"&gt;google &lt;/span&gt;lançar um... eles irão certamente perder um usuário!&lt;br /&gt;&lt;br /&gt;De qualquer forma, fica ai a dica!&lt;br /&gt;&lt;br /&gt;ps: para quem procura uma ferramenta de backup automático online, eu recomendo a &lt;a href="https://mozy.com/?ref=NG47SM"&gt;&lt;span style="color: rgb(255, 102, 0);"&gt;mozy&lt;/span&gt;&lt;/a&gt; que também é gratuito. O único problema é que são 2Gb e ele "backupeia" um diretório ou arquivo, sobreescrevendo diariamente. Na verdade, vou utilizar os dois de forma combinada. Um para backup automático diário e o outro para ter as versões separadas.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2009107678862211455-410815466679965349?l=bloggernaoencontrado.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bloggernaoencontrado.blogspot.com/feeds/410815466679965349/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://bloggernaoencontrado.blogspot.com/2009/03/disco-virtual-adrive.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2009107678862211455/posts/default/410815466679965349'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2009107678862211455/posts/default/410815466679965349'/><link rel='alternate' type='text/html' href='http://bloggernaoencontrado.blogspot.com/2009/03/disco-virtual-adrive.html' title='Disco virtual - ADrive'/><author><name>Leandro Fagundes</name><uri>http://www.blogger.com/profile/01187163716994740852</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cmlO51JRC5c/SeTy9mh3b5I/AAAAAAAAALo/Tv0ZC-P08Bs/S220/ATgAAACB6EFcjBZG1FoHovNpB7y56Nhfj8BlFDwXwdKlS280_rBzWuS33IeGQ_yS4KR_mLMZov-__xRp6HWVmWgT7nfGAJtU9VBgSNIqgGPMqd_QqpwainlqPQC6lw.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2009107678862211455.post-4560670424808707134</id><published>2009-02-06T13:37:00.002-02:00</published><updated>2009-02-06T13:56:17.561-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Bugs e erros'/><title type='text'>SQL Server 2005 : Tela azul da morte</title><content type='html'>Recentemente tenho me deparado com a &lt;span style="font-weight:bold;"&gt;Tela Azul da Morte&lt;/span&gt; no SQL Server ao tentar abrir uma tabela, ou editar registros!&lt;br /&gt;Depois de tantas pesquisas, format's c: e exclusão e alteração de arquivos .sys encontrei algo que parecia inútil! Parecia...&lt;br /&gt;&lt;br /&gt;Em um dos blogs, encontrei a seguinte informação (traduzida)&lt;br /&gt;&lt;span style="font-style:italic;"&gt;"ao tentar abrir uma tabela no sql server o windows gerou a tela azul! Descobri que isso é gerado a partir de um conflito dos drivers Intelipoint com o sql server! Na dúvida, removi o aplicativo..."&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Ou seja, se você tem um &lt;span style="font-weight:bold;"&gt;mouse microsoft&lt;/span&gt;, seu erro pode ser derivado disso também! Incrédulo, relutei um pouco mas removi o software! Dito e feito. O meu SQL Server não gera mais a famosa &lt;span style="font-weight:bold;"&gt;tela azul BSOD&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Caso você tenha o problema, e o mouse... talvez isto ajude! Se você tiver o problema e não tiver o mouse, procure aplicativos intelipoint em sua máquina. Isso pode afetar.&lt;br /&gt;&lt;br /&gt;Boa sorte, e nos vemos em breve!&lt;br /&gt;&lt;br /&gt;ps: entre outras buscas, uma das respostas seria deletar a pasta shell e todos os arquivos que existem dentro da pasta de instalação do "microsoft sql server\90", mas como meu sql server nem possui esta pasta, não executei os testes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2009107678862211455-4560670424808707134?l=bloggernaoencontrado.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bloggernaoencontrado.blogspot.com/feeds/4560670424808707134/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://bloggernaoencontrado.blogspot.com/2009/02/sql-server-2005-tela-azul-da-morte.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2009107678862211455/posts/default/4560670424808707134'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2009107678862211455/posts/default/4560670424808707134'/><link rel='alternate' type='text/html' href='http://bloggernaoencontrado.blogspot.com/2009/02/sql-server-2005-tela-azul-da-morte.html' title='SQL Server 2005 : Tela azul da morte'/><author><name>Leandro Fagundes</name><uri>http://www.blogger.com/profile/01187163716994740852</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cmlO51JRC5c/SeTy9mh3b5I/AAAAAAAAALo/Tv0ZC-P08Bs/S220/ATgAAACB6EFcjBZG1FoHovNpB7y56Nhfj8BlFDwXwdKlS280_rBzWuS33IeGQ_yS4KR_mLMZov-__xRp6HWVmWgT7nfGAJtU9VBgSNIqgGPMqd_QqpwainlqPQC6lw.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2009107678862211455.post-6572009534092810949</id><published>2009-01-27T10:39:00.004-02:00</published><updated>2009-01-27T10:46:55.116-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows XP: Utilidades do dia a dia'/><title type='text'>Adicionando o "Abrir prompt aqui" no menu de contexto do Windows XP</title><content type='html'>Você nunca se deparou com isso? Gostaria de clicar com o botão direito em cima de uma pasta do Windows e clicar no botão "Abrir prompt de comando aqui" e 'prompto' (hehe) ?&lt;br /&gt;É fácil, e graças ao tutorial que encontrei no &lt;a href="http://www.baboo.com.br/absolutenm/templates/content.asp?articleid=32345&amp;amp;zoneid=224&amp;amp;resumo="&gt;forum do Baboo&lt;/a&gt; isso ficou mais fácil ainda! Segue o tutorial que está lá.&lt;br /&gt;&lt;br /&gt;Ps: a partir desta linha, todo o texto abaixo foi copiado do site Baboo a partir do link acima citado!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Adicione o 'Abrir prompt...' ao menu de contexto do XP&lt;/b&gt;&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family:Tahoma;font-size:78%;"&gt;&lt;i&gt;24/06/2008 13:03&lt;/i&gt;&lt;/span&gt;&lt;br /&gt; &lt;p align="center"&gt;&lt;span&gt;&lt;span style="font-family:Tahoma;font-size:85%;"&gt;&lt;img src="http://www.baboo.com.br/absolutenm/articlefiles/10309-windowsxp.gif" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span&gt; &lt;p align="justify"&gt;&lt;span style="font-family:Tahoma;font-size:85%;"&gt;No Windows XP, para utilizar a opção"&lt;b&gt;Abrir Prompt de Comando Aqui&lt;/b&gt;" ao clicar com o botão direito do mouse em uma pasta é necessário instalar &lt;b&gt;&lt;a href="http://www.microsoft.com/windowsxp/downloads/powertoys/xppowertoys.mspx" target="_blank"&gt;um dos PowerToys disponíveis&lt;/a&gt;&lt;/b&gt;. Mas caso você não queira instalar, é possível fazer uma pequena modificação no &lt;b&gt;Registro&lt;/b&gt; para adicionar esta opção.&lt;br /&gt;&lt;br /&gt;Veja como:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Tahoma;font-size:85%;"&gt;- No menu &lt;b&gt;Iniciar&lt;/b&gt;, clique em &lt;b&gt;Executar&lt;/b&gt;, digite &lt;b&gt;regedit&lt;/b&gt; e pressione &lt;b&gt;Enter&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Tahoma;font-size:85%;"&gt;- Com o &lt;b&gt;Editor do Registro&lt;/b&gt; aberto, navegue até a chave &lt;b&gt;HKEY_CLASSES_ROOT\Directory\shell&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:Tahoma;font-size:85%;"&gt;- Clique com o botão direito do mouse na chave &lt;b&gt;shell&lt;/b&gt;, selecione &lt;b&gt;Novo&lt;/b&gt; e escolha &lt;b&gt;Chave&lt;/b&gt;:&lt;/span&gt;&lt;/p&gt; &lt;p align="center"&gt;&lt;span style="font-family:Tahoma;font-size:85%;"&gt;&lt;img src="http://www.baboo.com.br/absolutenm/articlefiles/32345-1.PNG" border="0" width="400" height="262" /&gt;&lt;/span&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;span style="font-family:Tahoma;font-size:85%;"&gt;- Nomeie a chave como &lt;b&gt;CommandPrompt&lt;/b&gt;, clique duas vezes em &lt;b&gt;Padrão&lt;/b&gt; e mude o valor para &lt;b&gt;Abrir Prompt de Comando Aqui&lt;/b&gt;:&lt;/span&gt;&lt;/p&gt; &lt;p align="center"&gt;&lt;span style="font-family:Tahoma;font-size:85%;"&gt;&lt;img src="http://www.baboo.com.br/absolutenm/articlefiles/32345-2.PNG" border="0" width="400" height="263" /&gt;&lt;/span&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;span style="font-family:Tahoma;font-size:85%;"&gt;- Em seguida, clique com o botão direito do mouse na chave &lt;b&gt;CommandPrompt&lt;/b&gt;, selecione &lt;b&gt;Novo&lt;/b&gt; e clique em &lt;b&gt;Chave&lt;/b&gt;:&lt;/span&gt;&lt;/p&gt; &lt;p align="center"&gt;&lt;span style="font-family:Tahoma;font-size:85%;"&gt;&lt;img src="http://www.baboo.com.br/absolutenm/articlefiles/32345-3.PNG" border="0" width="400" height="263" /&gt;&lt;/span&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;span style="font-family:Tahoma;font-size:85%;"&gt;- Nomeie esta chave como &lt;b&gt;Command&lt;/b&gt;, e dentro dela clique duas vezes em &lt;b&gt;Padrão&lt;/b&gt; e mude o valor para &lt;b&gt;cmd.exe /k cd %1&lt;/b&gt;:&lt;/span&gt;&lt;/p&gt; &lt;p align="center"&gt;&lt;span style="font-family:Tahoma;font-size:85%;"&gt;&lt;img src="http://www.baboo.com.br/absolutenm/articlefiles/32345-4.PNG" border="0" /&gt;&lt;/span&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;span style="font-family:Tahoma;font-size:85%;"&gt;Confirme a alteração e feche o  &lt;a href="http://www.baboo.com.br/absolutenm/templates/content.asp?articleid=32345&amp;amp;zoneid=224&amp;amp;resumo=#" onclick="hwClick10875438041490(-1437826466);return false;" style="border-bottom: 1px dotted; color: rgb(0, 0, 255); text-decoration: underline;" onmouseover="hw10875438041490(event, this, '-1437826466'); this.style.cursor='hand'; this.style.textDecoration='underline'; this.style.borderBottom='solid';" onmouseout="hideMaybe(event, this); this.style.cursor='hand'; this.style.textDecoration='underline'; this.style.borderBottom='dotted 1px'; " oncontextmenu="return false;"&gt;Editor&lt;/a&gt; do Registro. O efeito da  &lt;a href="http://www.baboo.com.br/absolutenm/templates/content.asp?articleid=32345&amp;amp;zoneid=224&amp;amp;resumo=#" onclick="hwClick12510927350490(-1437826466);return false;" style="border-bottom: 1px dotted; color: rgb(0, 0, 255); text-decoration: underline;" onmouseover="hw12510927350490(event, this, '-1437826466'); this.style.cursor='hand'; this.style.textDecoration='underline'; this.style.borderBottom='solid';" onmouseout="hideMaybe(event, this); this.style.cursor='hand'; this.style.textDecoration='underline'; this.style.borderBottom='dotted 1px'; " oncontextmenu="return false;"&gt;dica&lt;/a&gt; é imediato, basta clicar com o botão direito do mouse em uma pasta qualquer e você verá a opção:&lt;/span&gt;&lt;/p&gt; &lt;p align="center"&gt;&lt;span style="font-family:Tahoma;font-size:85%;"&gt;&lt;img src="http://www.baboo.com.br/absolutenm/articlefiles/32345-5.PNG" border="0" width="400" height="282" /&gt;&lt;/span&gt;&lt;/p&gt; &lt;p align="center"&gt; &lt;/p&gt; &lt;p align="left"&gt; &lt;/p&gt;&lt;/span&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2009107678862211455-6572009534092810949?l=bloggernaoencontrado.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bloggernaoencontrado.blogspot.com/feeds/6572009534092810949/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://bloggernaoencontrado.blogspot.com/2009/01/adicionando-o-abrir-prompt-aqui-no-menu.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2009107678862211455/posts/default/6572009534092810949'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2009107678862211455/posts/default/6572009534092810949'/><link rel='alternate' type='text/html' href='http://bloggernaoencontrado.blogspot.com/2009/01/adicionando-o-abrir-prompt-aqui-no-menu.html' title='Adicionando o &quot;Abrir prompt aqui&quot; no menu de contexto do Windows XP'/><author><name>Leandro Fagundes</name><uri>http://www.blogger.com/profile/01187163716994740852</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cmlO51JRC5c/SeTy9mh3b5I/AAAAAAAAALo/Tv0ZC-P08Bs/S220/ATgAAACB6EFcjBZG1FoHovNpB7y56Nhfj8BlFDwXwdKlS280_rBzWuS33IeGQ_yS4KR_mLMZov-__xRp6HWVmWgT7nfGAJtU9VBgSNIqgGPMqd_QqpwainlqPQC6lw.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2009107678862211455.post-6083189225741475444</id><published>2008-12-03T17:33:00.004-02:00</published><updated>2008-12-03T17:43:05.387-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.Net Testes e Performance'/><title type='text'>Parte 3: Concatenando Strings!</title><content type='html'>Mais um pequeno teste para avaliarmos as melhoras.&lt;br /&gt;A concatenação de strings pode ser feita de diversas maneiras. O problema é: Qual é a melhor maneira?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);font-size:130%;" &gt;Existem mil maneiras de preparar Néston, invente uma!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Fizemos um teste com 6 maneiras diferentes de concatenar uma string. São essas:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1 - Executando um Append por texto Ex:&lt;/span&gt;&lt;br /&gt;dim MyStr as new StringBuilder&lt;br /&gt;MyStr.Append("Texto1")&lt;br /&gt;MyStr.Append("Texto2")&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2 - Utilizando o Append.Format&lt;/span&gt;&lt;br /&gt;dim MyStr as new StringBuilder&lt;br /&gt;MyStr.AppendFormat("{0}{1}","Texto1","Texto2"&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3 - Dando um apend e concatenando os textos com &amp;amp;&lt;/span&gt;&lt;br /&gt;dim MyStr as New StringBuilder&lt;br /&gt;MyStr.Append("Texto1" &amp;amp; "Texto2")&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;4 - Concatenando diretamente utilizando o operador +&lt;/span&gt;&lt;br /&gt;dim MyStr as String = "Texto1" + "Texto2"&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;5 - Concatenando diretamente utilizando o operador &amp;amp;&lt;/span&gt;&lt;br /&gt;dim MyStr as String = "Texto1" &amp;amp; "Texto2"&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;6 - E por fim, utilizando diretemante o String.Format para concatenar&lt;/span&gt;&lt;br /&gt;Dim MyStr as string = String.Format("{0}{1}", "Texto1", "Texto2")&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;A operação funciona da seguinte forma:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;TempoInicial = Now() ' Definimos o tempo inicial&lt;/span&gt; &lt;span style="font-style: italic;"&gt;For I as Integer = 0 To 10000 ' Rodamos 10000 vezes o mesmo processo pra medir o tempo&lt;/span&gt; &lt;span style="font-style: italic;"&gt;    MyStr = MyStr CONCATENANDO "Texto1" "Texto2" 'utilizamos aqui, cada vez um processo diferente dos 6 citados acima&lt;/span&gt; &lt;span style="font-style: italic;"&gt;Next&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Ou seja, na segunda iteração, vamos ter "Texto1Texto2" Concatenando com "Texto1" e "Texto2"&lt;br /&gt;Na terceira iteração teremos "Texto1Texto2Texto1Texto2" Concatenando com "Texto1" e "Texto2" e assim consecutivamente.&lt;br /&gt;Isso pra aumentar cada vez mais o tamanho da string que recebe o resultado do concatenamento.&lt;br /&gt;&lt;br /&gt;Rodamos o mesmo teste 10 vezes de cada maneira, para pegarmos uma média de tempo que demorava a executar.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;Resultado:&lt;/span&gt; O resultado era próximo do que eu esperava. o processo &lt;span style="font-weight: bold;"&gt;4&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;5&lt;/span&gt; e &lt;span style="font-weight: bold;"&gt;6&lt;/span&gt; estão fora de cogitação! Eles sempre apresentaram mais de 1 segundo para rodar as 10 mil iterações da concatenação!&lt;br /&gt;O que me assustou, foi o resultado positivo!&lt;br /&gt;Eu realmente acreditava que o &lt;span style="font-weight: bold;"&gt;Append.Format&lt;/span&gt; (nr. &lt;span style="font-weight: bold;"&gt;2&lt;/span&gt;) era a melhor, porém fui surpreendido!&lt;br /&gt;Ela foi a pior das melhores! Ganhou apenas das outras três que já descartamos.&lt;br /&gt;A maneira &lt;span style="font-weight: bold;"&gt;3&lt;/span&gt; apresentou alguns dos resultados idênticos aos da maneira &lt;span style="font-weight: bold;"&gt;1&lt;/span&gt;! Porém na média final, perdeu!&lt;br /&gt;A maneira &lt;span style="font-weight: bold;"&gt;1&lt;/span&gt;, utilizando um append por linha, mesmo sendo a que menos me atraia, é a que tem melhor performance!&lt;br /&gt;Os resultados numéricos podem ser vistos na &lt;a href="http://nqk4fa.bay.livefilestore.com/y1pwhTfTMsh5c2Pwx9r1mjOST61ovVtU6Kpu5fE-A_x62Vxo6Ux_pz6BYhVG82INaE2hwPxeMqTil8P_dugmm3GtQ/imagem.JPG"&gt;imagem&lt;/a&gt;!&lt;br /&gt;&lt;br /&gt;O fonte está disponível no meu SkyDrive. Clique &lt;a href="http://cid-e480d0733ae48380.skydrive.live.com/self.aspx/P%c3%bablico/TesteDePerformanceConcatenandoStrings.zip"&gt;aqui&lt;/a&gt; para fazer download!&lt;br /&gt;&lt;iframe marginheight="0" marginwidth="0" style="border: 1px solid rgb(221, 229, 233); margin: 3px; padding: 0pt; width: 240px; height: 66px; background-color: rgb(255, 255, 255);" src="http://cid-e480d0733ae48380.skydrive.live.com/embedrowdetail.aspx/P%c3%bablico/TesteDePerformanceConcatenandoStrings.zip" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2009107678862211455-6083189225741475444?l=bloggernaoencontrado.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bloggernaoencontrado.blogspot.com/feeds/6083189225741475444/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://bloggernaoencontrado.blogspot.com/2008/12/parte-3-concatenando-strings.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2009107678862211455/posts/default/6083189225741475444'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2009107678862211455/posts/default/6083189225741475444'/><link rel='alternate' type='text/html' href='http://bloggernaoencontrado.blogspot.com/2008/12/parte-3-concatenando-strings.html' title='Parte 3: Concatenando Strings!'/><author><name>Leandro Fagundes</name><uri>http://www.blogger.com/profile/01187163716994740852</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cmlO51JRC5c/SeTy9mh3b5I/AAAAAAAAALo/Tv0ZC-P08Bs/S220/ATgAAACB6EFcjBZG1FoHovNpB7y56Nhfj8BlFDwXwdKlS280_rBzWuS33IeGQ_yS4KR_mLMZov-__xRp6HWVmWgT7nfGAJtU9VBgSNIqgGPMqd_QqpwainlqPQC6lw.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2009107678862211455.post-1931251126491730349</id><published>2008-12-02T17:11:00.000-02:00</published><updated>2008-12-02T18:18:12.049-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.Net Testes e Performance'/><title type='text'>Parte 2: CType, Convert.To, Directcast e TryCast</title><content type='html'>No teste de performance e melhores práticas de hoje vamos mostrar a conversão de variáveis de tipo nativo (inteiro, decimal, data, double, etc...) e variáveis de referência (objetos, classes,etc...)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;CType x Convert:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A Classe Convert é uma classe utiliátria do .Net Framework, que internamente executa o Ctype ou Directcast após realizar algumas verificações.&lt;br /&gt;&lt;br /&gt;Para executar o teste, criamos uma aplicação que possui um Datagridview que mostra o tempo que demorou para executar 1 milhão de vezes o mesmo processo.&lt;br /&gt;Convertemos, em todos os casos, o valor Nothing para o tipo.&lt;br /&gt;&lt;br /&gt;Na figura 1 abaixo mostramos um resultado da conversão. A figura esta separada por:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Coluna: mostra o tipo para qual o &lt;span style="font-weight: bold;"&gt;NOTHING &lt;/span&gt;foi convertido&lt;/li&gt;&lt;li&gt;Linha: Mostra a função utilizada para converter: &lt;span style="font-weight: bold;"&gt;Convert.ToType&lt;/span&gt; ou &lt;span style="font-weight: bold;"&gt;Ctype&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_cmlO51JRC5c/STWKgXXmphI/AAAAAAAAAIc/ggc0DoL4gvo/s1600-h/imagem.JPG"&gt;&lt;img style="cursor: pointer; width: 605px; height: 291px;" src="http://3.bp.blogspot.com/_cmlO51JRC5c/STWKgXXmphI/AAAAAAAAAIc/ggc0DoL4gvo/s400/imagem.JPG" alt="" id="BLOGGER_PHOTO_ID_5275274827167868434" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-style: italic;"&gt;figura &lt;/span&gt;1&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;Resultado:&lt;/span&gt; Podemos notar, que em quase todos os casos o &lt;span style="font-weight: bold;"&gt;CType &lt;/span&gt;é 2x mais rápido que o &lt;span style="font-weight: bold;"&gt;Convert.To"Type"&lt;/span&gt;.&lt;br /&gt;O tempo em segundos é mínimo, portanto se você utiliza poucas conversões de cada vez não chega a fazer diferença. Rodamos 1 milhão de vezes cada alteração para conseguir este tempo. Se for ver cada iteração, é instantâneo. Só é possível medir a diferença em grandes escalas mesmo.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;Opinião pessoal&lt;/span&gt;: Hoje eu já utilizo o Ctype nas conversões e estou mais acostumado. Acredito ficar mais fácil identificar até porquê o próprio Visual Studio marca os CType's com azul, enquanto o Convert.To"Type" fica na mesma cor (na configuração padrão de cores e estilos). Desse jeito, considero melhor visualmente falando e em questões de performance também.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;Directcast x TryCast:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;O Directcast converte objetos/classes assim como o TryCast. A diferença entre eles, é que se o Directcast não conseguir converter para a classe específicada, ele retorna uma exception, enquanto o TryCast retorna nothing.&lt;br /&gt;No exemplo, criamos um formulário que herda da classe FORM. Disparamos 3000 vezes o &lt;span style="font-weight: bold;"&gt;DirectCast(MeuFormulario,Form)&lt;/span&gt;  e o &lt;span style="font-weight: bold;"&gt;TryCast(MeuFormulario,Form)&lt;/span&gt;&lt;br /&gt;O Cast sempre é executado com sucesso (nossa classe MeuFormulario herda da classe FORM), e por isso nenhum exceção foi disparada e o cast nunca retornou nothing.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;Resultado:&lt;/span&gt; O tempo de cast é exatamente o mesmo. Fizemos 3 testes e os 3 retornaram igual. Isso porquê o teste sempre foi executado com sucesso. Caso o cast fosse impossível ou desse erro, o &lt;span style="font-weight: bold;"&gt;Directcast &lt;/span&gt;dispararia uma Exception e o &lt;span style="font-weight: bold;"&gt;TryCast &lt;/span&gt;retornaria nothing. Em que ponto chegamos disso? Que depende da aplicação do cast. Se você precisa essêncialmente que o seu Cast seja valido, você pode utilizar o directcast dentro de um bloco Try... Catch e tratar a exceção, ou então utilizar o &lt;span style="font-weight: bold;"&gt;TryCast &lt;/span&gt;e verificar se o resultado foi nothing, se for validar da forma certa.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;Opinião Pessoal: &lt;/span&gt;Como os tempos foram exatamente iguais, é indiferente você utilizar um ou outro, a não ser que sua aplicação necessite de um determinado tratamento. Dificilmente eu preciso que execute um Exception, por isso prefiro tratar com TryCast's, mas isso não passa de opinião pessoal. Façam bom proveito pessoal.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0); font-weight: bold;"&gt;PS; Agradecimentos:&lt;/span&gt; Gostaria de agradecer a galera que da um apoio ao blog, principalmente ao &lt;span id="_ctl0_MainContent_PostFlatView"&gt;&lt;b&gt;&lt;span class="inlineLink" onclick="window.open('/MSDN-BR/User/Profile.aspx?UserID=619189&amp;amp;SiteID=21', target='_self')"&gt;Caio Proiete &lt;/span&gt;&lt;/b&gt;&lt;span class="inlineLink" onclick="window.open('/MSDN-BR/User/Profile.aspx?UserID=619189&amp;amp;SiteID=21', target='_self')"&gt;do blog &lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.caioproiete.com/blogs/pontonet/"&gt;http://www.caioproiete.com/blogs/pontonet &lt;/a&gt;&lt;br /&gt;Ele me ensinou bastante coisa sobre performance e melhorias de código, e dessa maneira eu repasso a quem interessa. Da mesma maneira, quem quizer deixar sua ajuda, fique a vontade! Utilize os comentários para nos ajudar&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Obrigado a todos!&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2009107678862211455-1931251126491730349?l=bloggernaoencontrado.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bloggernaoencontrado.blogspot.com/feeds/1931251126491730349/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://bloggernaoencontrado.blogspot.com/2008/12/parte-2-ctype-convertto-directcast-e.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2009107678862211455/posts/default/1931251126491730349'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2009107678862211455/posts/default/1931251126491730349'/><link rel='alternate' type='text/html' href='http://bloggernaoencontrado.blogspot.com/2008/12/parte-2-ctype-convertto-directcast-e.html' title='Parte 2: CType, Convert.To, Directcast e TryCast'/><author><name>Leandro Fagundes</name><uri>http://www.blogger.com/profile/01187163716994740852</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cmlO51JRC5c/SeTy9mh3b5I/AAAAAAAAALo/Tv0ZC-P08Bs/S220/ATgAAACB6EFcjBZG1FoHovNpB7y56Nhfj8BlFDwXwdKlS280_rBzWuS33IeGQ_yS4KR_mLMZov-__xRp6HWVmWgT7nfGAJtU9VBgSNIqgGPMqd_QqpwainlqPQC6lw.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_cmlO51JRC5c/STWKgXXmphI/AAAAAAAAAIc/ggc0DoL4gvo/s72-c/imagem.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2009107678862211455.post-118379236693842376</id><published>2008-12-01T15:01:00.001-02:00</published><updated>2008-12-01T18:26:26.086-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.Net Testes e Performance'/><title type='text'>.Net: Testes de Performance e Melhores Práticas - Parte 1</title><content type='html'>Iniciando nosso bloco "Testes de Performance e Melhores Práticas" vamos apresentar a utilização do DataGridView e do SqlDataReader em alguns pontos.&lt;br /&gt;Pra quem já conhece bem os procedimentos, fique ligado nos tópicos e vá direto ao assunto sem perder seu tempo. Quem ainda esta começando, montamos um cenário, caso queira reproduzir.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);font-size:180%;" &gt;1º Teste do dia:&lt;/span&gt;&lt;br /&gt;Vamos executar alguns testes de inserção de linhas em um DataGrid e verificar sua perforamance.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0); font-weight: bold;"&gt;No exemplo utilizaremos:&lt;/span&gt;&lt;br /&gt;Um DataGridView que iremos chamar de &lt;span style="font-weight: bold;"&gt;Grid&lt;/span&gt;.&lt;br /&gt;O Grid possui 3 Colunas dentro dele. Seus nomes são: &lt;span style="font-weight: bold;"&gt;Coluna01&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;Coluna02&lt;/span&gt; e &lt;span style="font-weight: bold;"&gt;Coluna03&lt;/span&gt;.&lt;br /&gt;Estão colunas possuem indíces, que representam sua atual posição no Grid. São respectivamente &lt;span style="font-weight: bold;"&gt;0,1 &lt;/span&gt;e&lt;span style="font-weight: bold;"&gt; 2&lt;/span&gt;.&lt;br /&gt;O &lt;span style="font-weight: bold;"&gt;IndiceDaLinha&lt;/span&gt; representa o número da linha atual, que estamos inserindo no grid.&lt;br /&gt;&lt;br /&gt;Primeiro, vamos fazer o Grid inserir 20.000 (vinte mil) linhas nas suas 3 colunas utilizando indíce numérico para definir a coluna que receberá o valor. Desta forma, o comando fica +- assim:&lt;br /&gt;Grid.Rows(IndiceDaLinha).Cells(&lt;span style="font-weight: bold;"&gt;0&lt;/span&gt;).Value = "ValorNaColuna1"&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Notem que o índice em negrito está representando a coluna de nome Coluna01, e estou definindo para esta linha e coluna do Grid, o valor texto "ValorNaColuna1", apenas para teste.&lt;/span&gt; Vamos inserir um valor parecido para as demais colunas.&lt;br /&gt;Grid.Rows(IndiceDaLinha).Cells(&lt;span style="font-weight: bold;"&gt;1&lt;/span&gt;).Value = "ValorNaColuna2"&lt;br /&gt;Grid.Rows(IndiceDaLinha).Cells(&lt;span style="font-weight: bold;"&gt;2&lt;/span&gt;).Value = "ValorNaColuna3"&lt;br /&gt;&lt;br /&gt;No segundo teste, utilizamos o mesmo Grid, a mesma quantidade de linhas e colunas com seus respectivos nomes, mas desta vez ao invés de utilizarmos o índice da coluna (0,1,2)  vamos utilizar o nome da coluna. O comando fica +- assim:&lt;br /&gt;Grid.Rows(IndiceDaLinha).Cells(&lt;span style="font-weight: bold;"&gt;"Coluna01"&lt;/span&gt;).Value = "ValorNaColuna1"&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Notem que agora passamos o nome da coluna entre "" para &lt;/span&gt;&lt;br /&gt;Grid.Rows(IndiceDaLinha).Cells(&lt;span style="font-weight: bold;"&gt;"Coluna02"&lt;/span&gt;).Value = "ValorNaColuna2"&lt;br /&gt;Grid.Rows(IndiceDaLinha).Cells(&lt;span style="font-weight: bold;"&gt;"Coluna03"&lt;/span&gt;).Value = "ValorNaColuna3"&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;Resultado:&lt;/span&gt; A resposta de tudo isso, foi uma melhor performance em 0,97 segundos para inserir todas as 20.000 (vinte mil) linhas, se usarmos por índices numéricos (exemplo 01). Algo parecido com 0,0000485 segundos por linha.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;Opinião pessoal:&lt;/span&gt; para uma aplicação comun, do dia a dia, utilizar um código elegante ajuda os desenvolvedores e não piora tanto a situação. Quem convive diariamente com relatórios de 20.000 linhas? Este 1 segundo é tão importante para gerar o relatório? Por isso, eu fico com a utilização do índice pelo nome da coluna. Mas isso é só opinião minha, nada demais! ;D&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;Foi sem querer, mas valeu:&lt;/span&gt; Até deixar os dois ambientes iguais, eu verifiquei um terceiro teste de performance!&lt;br /&gt;Ao solicitar a ultima linha do datagrid, eu selecionei assim "me.Grid.Rows.GetLastRow(Displayed)"&lt;br /&gt;No outro grid, sem querer eu coloquei assim "me.Grid.Rows.GetLastRow(None)"&lt;br /&gt;A diferença? Com NONE, eu consegui mais de 5 SEGUNDOS mais rapido do que Displayed! O motivo exato eu ainda não sei, mas os dois métodos trouxeram as linhas de forma correta e consegui manipular também. Ou seja, 5 segundos mais rapido e nenhum problema "aparente" (não fui a fundo para descobrir, não era esse o mérito) Mais tarde faço outros testes e dou uma pesquisada, dai sim posto para vocês o motivo disso.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);font-size:180%;" &gt;2º Teste do dia:&lt;/span&gt;&lt;br /&gt;No segundo teste, vamos executar uma consulta de banco de dados em um SqlDataReader. Após isso, vamos verificar quais pontos podem fazer efeito na melhoria de performance da aplicação.&lt;br /&gt;&lt;br /&gt;Assim como DataGridView, podemos buscar dados de um DataReader pelo índice da coluna no DataReader ou pelo nome da Coluna.&lt;br /&gt;O índice da coluna no reader, é equivalente a posição desta coluna no banco no comando Select.&lt;br /&gt;O nome da coluna no reader, é o mesmo nome da coluna usado no banco de dados ou o apelido da coluna, caso ela tenha algum.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0); font-weight: bold;"&gt;No exemplo utilizaremos:&lt;/span&gt;&lt;br /&gt;Um SqlDataReader que chamaremos de &lt;span style="font-weight: bold;"&gt;MeuReader&lt;/span&gt;&lt;br /&gt;Para gerarmos um Reader, precisamos de um SqlCommand que guarda o comando texto e dispara o método executereader. O retorno deste método do SqlCommand, é o conteudo do MeuReader.&lt;br /&gt;Ex:&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Dim sqlConn as new SqlConnection(SuaStringdeConexãocomoBanco)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Dim sqlComando as new SqlCommand("&lt;/span&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Select Coluna1 as Col1, Coluna2 as Col2, Coluna3 as Col3 From Colunas&lt;/span&gt;&lt;span style="font-style: italic;"&gt;", sqlConn)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Dim MeuReader as SqlDataReader = sqlComando.ExecuteReader()&lt;/span&gt;&lt;br /&gt;Pronto, populamos o nosso DataReader com o resultado de uma consulta Sql.&lt;br /&gt;Esta consulta Sql é um teste e vai me retornar 10000 registros.&lt;br /&gt;Note que eu utilizei apelidos nas colunas, desta maneira não vou me referir a Coluna1 pelo nome, e sim por "Col1" etc...&lt;br /&gt;&lt;br /&gt;No primeiro teste, vamos utilizar os índices das colunas. Como citei antes, o índice é a posição da coluna no comando Sql.&lt;br /&gt;&lt;br /&gt;While MeuReader.Read()&lt;br /&gt;    Grid.Rows(IndiceLinha).Cells(IndiceColuna).Value = MeuReader.Item(&lt;span style="font-weight: bold;"&gt;0&lt;/span&gt;).ToString&lt;br /&gt;    Grid.Rows(IndiceLinha).Cells(IndiceColuna).Value = MeuReader.Item(&lt;span style="font-weight: bold;"&gt;1&lt;/span&gt;).ToString&lt;br /&gt;    Grid.Rows(IndiceLinha).Cells(IndiceColuna).Value = MeuReader.Item(&lt;span style="font-weight: bold;"&gt;2&lt;/span&gt;).ToString&lt;br /&gt;End While&lt;br /&gt;&lt;span style="font-style: italic;"&gt;o .ToString após o item do Reader é porquê o resultado seria um objeto, e no meu caso, este objeto é String. Este objeto pode ser de qualquer valor (string, integer,etc...) cabe a você definir.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;&lt;/i&gt;&lt;/b&gt;No segundo teste,  vamos utilizar o nome das colunas no banco. Vamos utilizar o mesmo comando, o mesmo procedimento, só mudando na hora de pegar o valor do banco, alteramos o índice numérico para nome da coluna.&lt;br /&gt;&lt;br /&gt;While MeuReader.Read()&lt;br /&gt;    Grid.Rows(IndiceLinha).Cells(IndiceColuna).Value = MeuReader.Item(&lt;span style="font-weight: bold;"&gt;"col1"&lt;/span&gt;).ToString&lt;br /&gt;    Grid.Rows(IndiceLinha).Cells(IndiceColuna).Value = MeuReader.Item(&lt;span style="font-weight: bold;"&gt;"col2"&lt;/span&gt;).ToString&lt;br /&gt;    Grid.Rows(IndiceLinha).Cells(IndiceColuna).Value = MeuReader.Item(&lt;span style="font-weight: bold;"&gt;"col3"&lt;/span&gt;).ToString&lt;br /&gt;End While&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Note que utilizei o alias (apelido) da coluna e não o nome dela. Se na criação do comando Select eu não tivesse nenhum apelido pras colunas, eu usaria no lugar do col1, coluna1 por exemplo.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;Resultado:&lt;/span&gt; A resposta de tudo isso, foi 0,11 segundos mais rápido se utilizarmos o exemplo novamente, o índice das colunas por número.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;Opinião pessoal:&lt;/span&gt; Mais uma vez, a pergunta é: Até onde vale a performance? Lógico que buscamos excelência sempre, porém 10.000 linhas, não é toda aplicação que necessita de 10.000 linhas sempre que vai sentir-se prejudicada por 0,11 segundos. Veja bem, não estamos falando nem de 1 segundo! é 1 décimo de segundo. Muito pouco! Para os desenvolvedores, é muito mais visível durante o código se utilizarmos o nome da coluna. Dessa forma sabemos sem precisar procurar o comando disparado, o valor que a coluna deve retornar e o tipo do valor. Fácil e prático.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;Melhor ainda:&lt;/span&gt; Para dar um "boost" na performance, existe no SqlCommand um ExecuteReader() que usa por parâmetro um System.Data.CommandBehavior. Para deixar realmente mais rápido, podemos utilizar o parâmetro CommandBehavior.SequentialAccess  desta forma SqlCommand.ExecuteReader(CommandBehavior.SequentialAccess).&lt;br /&gt;Ele torna o acesso as colunas, sequêncial e único. Ou seja, você é obrigado a usar as colunas na ordem que foi criado o select. No exemplo, você só pode usar as colunas na ordem Coluna1, Coluna2 e Coluna3, e somente uma vez por coluna. Caso você precisasse utilizar a Coluna2 antes da Coluna1, ou precisasse utilizar mais de uma vez a mesma coluna, um exception ia ser disparado. Este comando torna mais rápido porém é restrito. De qualquer forma, caso você precise alterar as ordens ou utilizar mais de uma vez, basta jogar em variáveis na ordem, e depois utilizar estas variáveis. Dai fica tudo rápido e certo! Com isso, tivemos um ganho de mais de 0,6 segundos. O que em 10 consultas gera 6 segundos e assim por diante.&lt;br /&gt;&lt;br /&gt;Bom, é isso pessoal. O post saiu maior do que eu esperava mas acredito que deu pra ajudar um pouco. Em breve, iremos executar mais testes e postar aqui. Caso tenha vontade de conhecer alguma coisa mais a fundo comente. Vamos verificar, pode ter certeza.&lt;br /&gt;&lt;br /&gt;abraços e até a próxima&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2009107678862211455-118379236693842376?l=bloggernaoencontrado.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bloggernaoencontrado.blogspot.com/feeds/118379236693842376/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://bloggernaoencontrado.blogspot.com/2008/12/net-testes-de-performance-e-melhores.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2009107678862211455/posts/default/118379236693842376'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2009107678862211455/posts/default/118379236693842376'/><link rel='alternate' type='text/html' href='http://bloggernaoencontrado.blogspot.com/2008/12/net-testes-de-performance-e-melhores.html' title='.Net: Testes de Performance e Melhores Práticas - Parte 1'/><author><name>Leandro Fagundes</name><uri>http://www.blogger.com/profile/01187163716994740852</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cmlO51JRC5c/SeTy9mh3b5I/AAAAAAAAALo/Tv0ZC-P08Bs/S220/ATgAAACB6EFcjBZG1FoHovNpB7y56Nhfj8BlFDwXwdKlS280_rBzWuS33IeGQ_yS4KR_mLMZov-__xRp6HWVmWgT7nfGAJtU9VBgSNIqgGPMqd_QqpwainlqPQC6lw.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2009107678862211455.post-5792550098221856598</id><published>2008-12-01T11:21:00.000-02:00</published><updated>2008-12-01T11:40:26.364-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Próximos posts'/><title type='text'>Próximos Posts: Testes de performance e praticidade</title><content type='html'>Em breve, estarei executando alguns testes de performance e praticidade de código que podem ajudar a gente no dia a dia. Tipo um "best pratices", principalmente para VB.NET.&lt;br /&gt;&lt;br /&gt;Dessa forma, vamos ver algumas coisas como:&lt;br /&gt;DataReader: utilizar reader.item(index) é melhor ou pior que utilizar reader.item(columnname)?&lt;br /&gt;Tipos de dados: Ctype, Directcast, TryCast, ou Convert.To"Type"&lt;br /&gt;&lt;br /&gt;entre outras coisas.&lt;br /&gt;&lt;br /&gt;Quem quizer ter um teste executado, post aqui em comentário que faremos&lt;br /&gt;até a proxima&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2009107678862211455-5792550098221856598?l=bloggernaoencontrado.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bloggernaoencontrado.blogspot.com/feeds/5792550098221856598/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://bloggernaoencontrado.blogspot.com/2008/12/prximos-posts-testes-de-performance-e.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2009107678862211455/posts/default/5792550098221856598'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2009107678862211455/posts/default/5792550098221856598'/><link rel='alternate' type='text/html' href='http://bloggernaoencontrado.blogspot.com/2008/12/prximos-posts-testes-de-performance-e.html' title='Próximos Posts: Testes de performance e praticidade'/><author><name>Leandro Fagundes</name><uri>http://www.blogger.com/profile/01187163716994740852</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cmlO51JRC5c/SeTy9mh3b5I/AAAAAAAAALo/Tv0ZC-P08Bs/S220/ATgAAACB6EFcjBZG1FoHovNpB7y56Nhfj8BlFDwXwdKlS280_rBzWuS33IeGQ_yS4KR_mLMZov-__xRp6HWVmWgT7nfGAJtU9VBgSNIqgGPMqd_QqpwainlqPQC6lw.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2009107678862211455.post-4382610784283565020</id><published>2008-11-30T21:39:00.000-02:00</published><updated>2008-11-30T21:45:49.111-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Bugs e erros'/><title type='text'>Da seção Saco de vacilo: Parte 1</title><content type='html'>Inaugurando a seção "Saco de vacilos", onde iremos mostrar alguns errinhos dos aplicativos que usamos no dia a dia, o felizardo escolhido foi o SQL Server Express em Português. Lógico que não podemos reclamar, ferramente free e muito útil, mas erro é erro!&lt;br /&gt;&lt;br /&gt;Estou procurando o grupo de dados que me causou este erro ainda, hehe! Um dia eu pego esse "bando" de dados sem vergonha!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_cmlO51JRC5c/STMlbtbhF9I/AAAAAAAAAIU/XJmj5vt2fhw/s1600-h/imagem.bmp"&gt;&lt;img style="cursor: pointer; width: 400px; height: 244px;" src="http://1.bp.blogspot.com/_cmlO51JRC5c/STMlbtbhF9I/AAAAAAAAAIU/XJmj5vt2fhw/s400/imagem.bmp" alt="" id="BLOGGER_PHOTO_ID_5274600746562688978" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="file:///C:/DOCUME%7E1/Leandro/CONFIG%7E1/Temp/moz-screenshot-1.jpg" alt="" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2009107678862211455-4382610784283565020?l=bloggernaoencontrado.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bloggernaoencontrado.blogspot.com/feeds/4382610784283565020/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://bloggernaoencontrado.blogspot.com/2008/11/da-seo-saco-de-vacilo-parte-1.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2009107678862211455/posts/default/4382610784283565020'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2009107678862211455/posts/default/4382610784283565020'/><link rel='alternate' type='text/html' href='http://bloggernaoencontrado.blogspot.com/2008/11/da-seo-saco-de-vacilo-parte-1.html' title='Da seção Saco de vacilo: Parte 1'/><author><name>Leandro Fagundes</name><uri>http://www.blogger.com/profile/01187163716994740852</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cmlO51JRC5c/SeTy9mh3b5I/AAAAAAAAALo/Tv0ZC-P08Bs/S220/ATgAAACB6EFcjBZG1FoHovNpB7y56Nhfj8BlFDwXwdKlS280_rBzWuS33IeGQ_yS4KR_mLMZov-__xRp6HWVmWgT7nfGAJtU9VBgSNIqgGPMqd_QqpwainlqPQC6lw.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_cmlO51JRC5c/STMlbtbhF9I/AAAAAAAAAIU/XJmj5vt2fhw/s72-c/imagem.bmp' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2009107678862211455.post-5047608374963092792</id><published>2008-11-30T01:10:00.000-02:00</published><updated>2008-11-30T01:22:06.265-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server'/><title type='text'>SQL Server Express - Configurações para acesso remoto em rede</title><content type='html'>A alguns dias me deparei com um pequeno problema. Minha aplicação precisava rodar em 3 máquinas, no escritório do cliente.&lt;br /&gt;&lt;br /&gt;Como já tinha ouvido falar muito bem do SQL Server Express por ser gratuito e tudo mais, decidi usa-lo, mas ao tentar rodar ele em rede tive alguns problemas. Isso tudo, pq por default o SQL não permite conexões externas.&lt;br /&gt;&lt;br /&gt;Sendo assim, procurei e encontrei um tutorial bom. Segue abaixo o passo a passo de como instalar e configurar um SQL SERVER EXPRESS, feito por Nilton Pinheiro do site MCDBA Brasil&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;p align="justify"&gt;&lt;strong&gt;&lt;h5&gt;"Instalação Side-by-Side com o SQL Server 2000&lt;/h5&gt;&lt;/strong&gt; &lt;/p&gt; &lt;p align="justify"&gt;Se você pretende instalar o SQL Express em um computador que já tenha o SQL Server 2000 ou MSDE instalado, garanta que o SQL Server 2000 ou MSDE esteja atualizado com o SP3 ou superior. Versões anteriores ao SP3 não compartilham apropriadamente a porta UDP 1434 e pode fazer com que sua instância do SQL Express não esteja disponível para as aplicações clientes.&lt;/p&gt; &lt;p align="justify"&gt;Embora você possa alterar a ordem de inicialização dos serviços para que o serviço SQL Browse inicie antes do SQL Server 2000 ou MSDE, o recomendado é que você atualize todas as versões do SQL Server 2000 ou MSDE para o SP3 ou superior. Para fazer download do Service Pack mais recente, veja &lt;span style=";font-family:'Times New Roman';font-size:12;"  &gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=14316" target="_blank"&gt;&lt;span style=";font-family:Verdana;font-size:85%;"  &gt;Microsoft SQL Server Web site&lt;/span&gt;&lt;/a&gt;&lt;span style=";font-family:Verdana;font-size:85%;"  &gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;strong&gt; &lt;h5&gt;O Serviço SQL Browser&lt;/h5&gt;&lt;/strong&gt; &lt;/p&gt; &lt;p align="justify"&gt;O serviço SQL Browser (sqlbrowser) permite que aplicações clientes se conectem a uma instância do SQL Server 2005 ou SQL Server 2005 Express Edition sem conhecer a porta  TCP/IP atribuída para a instância.&lt;/p&gt; &lt;p align="left"&gt;&lt;strong&gt;Nota: &lt;/strong&gt;Por razões de securança, o SQL Express não inicia automaticamente o serviço SQL Browser durante a instalação. &lt;/p&gt; &lt;p align="justify"&gt;&lt;strong&gt;Como o Serviço SQL Browser trabalha&lt;/strong&gt;&lt;/p&gt; &lt;p align="justify"&gt;Quando uma instância do SQL Express é iniciada, ela é atribuída a um número de porta TCP/IP. Esta porta será usada pela instância para se comunicar ou trocar dados com as aplicações clientes. Devido este número de porta ser geralmente desconhecido para as aplicações, o serviço SQL Browser atua como um tradutor, traduzindo o nome de instância passado pela aplicação, para o número de porta TCP/IP apropriada. Para fazer isso, o serviço SQL Browser fica escutando por requisições de rede nas portas TCP/IP 1433 e 1434.&lt;/p&gt; &lt;p align="justify"&gt;Por default, o serviço SQL Browser está desativado. Se você esta acessando um cópia local do SQL Express, você não necessitará iniciar este serviço. Entretanto, se você precisa que sua aplicação acesse o SQL Express através da rede, você deverá primeiro habilitar um dos protocolos de rede e então iniciar o serviço SQL Browse. Posteriormente veremos como configurar o SQL Express para trabalhar em uma rede.&lt;/p&gt; &lt;h5&gt;Requisitos Necessários&lt;/h5&gt; &lt;p align="justify"&gt;Antes de iniciar a instalação do SQL Server Express é importante observar que para instalar e funcionar adequadamente alguns requisitos são necessários como:&lt;/p&gt; &lt;p align="justify"&gt;&lt;strong&gt;Processador:&lt;/strong&gt; Pentium III ou compatível 500Mhz, recomendado 1Ghz&lt;br /&gt;&lt;strong&gt;Sistema Operacional:&lt;/strong&gt; Windows Server 2003 SP1, Windows Server 2003 Enterprise Edition SP1, Windows Server 2003 Datacenter Edition SP1, Windows Small Business Server 2003 Standard Edition SP1, Windows Small Business Server 2003 Premium Edition SP1, Windows XP Professional SP2, Windows XP Home Edition SP2, Windows XP Tablet Edition SP2, Windows XP Media Edition SP2, Windows 2000 Professional Edition SP4, Windows 2000 Server Edition SP4, Windows 2000 Advanced Edition SP4, Windows 2000 Datacenter Server Edition SP4&lt;br /&gt;&lt;strong&gt;Memória RAM:&lt;/strong&gt; Mínimo de 192MB, recomendado 512MB ou superior&lt;br /&gt;&lt;strong&gt;Espaço em disco:&lt;/strong&gt; 600MB livres&lt;/p&gt; &lt;p align="justify"&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=45988" target="_blank"&gt;&lt;strong&gt;Microsoft .NET Framework 2.0 (2.0.50727.42)&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=889482fc-5f56-4a38-b838-de776fd4138c&amp;amp;displaylang=en" target="_blank"&gt;&lt;strong&gt;Windows Installer 3.1&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;Microsoft Internet Explorer 6.0 SP1 ou superior&lt;/strong&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;strong&gt;Nota:&lt;/strong&gt;&lt;/span&gt; O Microsoft .NET Framework 2.0 e o Windows Installer 3.1 não são instalados juntos com o SQL Express. Sendo assim, certifique-se de estar com o .NET Framework 2.0 e Windows Installer 3.1 instalados antes de iniciar a instalação do SQL Express.&lt;br /&gt;&lt;/p&gt; &lt;h5&gt;Desinstalando um Relase Anterior do SQL Express e Visual Studio 2005&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/h5&gt; &lt;p align="justify"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Caso você pretenda instalar a versão final do SQL Express na mesma máquina onde já tenha instalado um release Beta ou CTP do SQL Server Express ou Visual Studio 2005, você deverá remover os releases anteriores do SQL Express, Visual Studio 2005 e .NET Framework 2.0 antes da instalação. Como estes produtos dependem da mesma versão do .NET Framework, eles devem ser desinstalados na seguinte ordem:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;table border="0" cellpadding="0" cellspacing="0" width="100%"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td bgcolor="#ffffff" width="100%"&gt;&lt;li&gt;SQL Server 2005 Express&lt;/li&gt; &lt;li&gt;Visual Studio 2005&lt;/li&gt; &lt;li&gt;.NET Framework 2.0&lt;/li&gt; &lt;p align="justify"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;strong&gt;IMPORTANTE:&lt;/strong&gt; Qualquer dúvida sobre o processo de desintalação, veja &lt;a href="http://msdn.microsoft.com/vstudio/express/support/uninstall/" target="_blank"&gt;uninstall any previous versions&lt;/a&gt;.&lt;/span&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;strong&gt; &lt;h5&gt;Instalando o SQL Server Express&lt;/h5&gt;&lt;/strong&gt; &lt;/p&gt; &lt;p align="justify"&gt;1) Para iniciar o processo de instalação do SQL Express, efetue duplo-clique sobre o arquivo &lt;b&gt;SQLEXPR.EXE&lt;/b&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;strong&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Nota:&lt;/span&gt;&lt;/strong&gt; Se preferir, é possível extrair os arquivos de instalação para um diretório temporário utilizando a sintaxe &lt;strong&gt;SQLEXPR.EXE /X&lt;/strong&gt; via linha de comando.&lt;/p&gt; &lt;p align="justify"&gt;2) Na janela &lt;strong&gt;End User License Agreement&lt;/strong&gt;, leia a licença de uso e selecione o check box &lt;strong&gt;I accept the licensing terms and conditions&lt;/strong&gt;. Clique em &lt;strong&gt;Next&lt;/strong&gt; para prosseguir.&lt;/p&gt; &lt;p align="justify"&gt;3) O &lt;strong&gt;SQL Server Component Update&lt;/strong&gt; é executado e instala os requisitos necessários para a instalação do SQL Express como o Microsoft SQL Native Client e Microsoft SQL Server 2005 Setup Support Files.&lt;/p&gt; &lt;p align="justify"&gt;4) Na janela &lt;strong&gt;Welcome to the Microsoft SQL Server Installation Wizard&lt;/strong&gt; clique em &lt;strong&gt;Next&lt;/strong&gt; para prosseguir.&lt;/p&gt; &lt;p align="justify"&gt;5) No próximo passo o SQL Express apresenta a janela &lt;strong&gt;System Configuration Check (SCC)&lt;/strong&gt;.  Da mesma forma como no SQL Server 2005, o SQL Express faz uma verificação em busca de possíveis problemas (requisitos mínimos de hardware e software) que possam impedir a instalação do SQL Express. Caso algum problema seja encontrado você terá a opção de visualizar o relatório sobre o problema encontrado e possível solução.&lt;/p&gt; &lt;p align="center"&gt;&lt;img src="http://www.mcdbabrasil.com.br/imagens/installsql2005/ex_scc.jpg" /&gt;&lt;/p&gt; &lt;p align="left"&gt;6) Na janela &lt;strong&gt;Registration Information&lt;/strong&gt; entre com as informações solicitadas e clique em &lt;strong&gt;Next&lt;/strong&gt;.&lt;/p&gt; &lt;p align="justify"&gt;&lt;strong&gt;Algumas observações importantes devem ser feitas aqui:&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;a)&lt;/strong&gt; Devido ao SQL Express ser um produto gratuito, não existe solicitação para  o &lt;strong&gt;Product Key&lt;/strong&gt;.&lt;br /&gt;&lt;strong&gt;b)&lt;/strong&gt; Se você selecionar a opção &lt;strong&gt;Hide advanced configuration options&lt;/strong&gt;, a janela &lt;strong&gt;Service Account&lt;/strong&gt; - a qual permite definir qual conta de usuário será usada para iniciar os servidor do SQL Express e a janela &lt;strong&gt;Collation Settings&lt;/strong&gt; - o qual permite informar qual Collation e Code Page o SQL Express deverá utilizar, não serão apresentadas. Neste caso o SQL Server Express será instalado com sua configuração padrão.&lt;/p&gt; &lt;p align="center"&gt;&lt;img src="http://www.mcdbabrasil.com.br/imagens/installsql2005/ex_reginfo.jpg" /&gt;&lt;/p&gt; &lt;p align="justify"&gt;7) Na janela &lt;strong&gt;Feature selection&lt;/strong&gt;, selecione os componentes que deseja instalar e clique em &lt;strong&gt;Next&lt;/strong&gt; para prosseguir.&lt;/p&gt; &lt;p align="center"&gt;&lt;img src="http://www.mcdbabrasil.com.br/imagens/install_express3.jpg" /&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;br /&gt;8) A janela &lt;strong&gt;Instance Name&lt;/strong&gt; (não será apresentada se você selecionar a opção &lt;strong&gt;Hide advanced configuration options&lt;/strong&gt;) permite que você selecione uma Default instance ou Named instance para sua instalação. Uma instância pode ser &lt;strong&gt;Default Instance&lt;/strong&gt; (não nomeada) ou &lt;strong&gt;Named Instance&lt;/strong&gt; (nomeada). Quando o SQL Server 2005 é instalado como Default Instance ele não requer que o cliente especifique o nome da instância para fazer a conexão. O cliente necessita conhecer apenas o nome do servidor SQL ao qual deseja se conectar.&lt;/p&gt; &lt;p align="justify"&gt;Uma Named Instance é identificada pelo nome do servidor mais o nome da instância que você especificou durante a instalação. O cliente necessita conhecer o nome do servidor e o nome da instância para se conectar.&lt;/p&gt; &lt;p align="justify"&gt;Por default, o SQL Server é instalado como Default Instance (não nomeada) a menos que você especifique um nome de instância durante a instalação. Ao contrário do SQL Server, o SQL Server Express é por default instalado como Named Instance, tendo como nome padrão para a instância o nome &lt;strong&gt;“SQLExpress”&lt;/strong&gt;. Se você não informar um nome para a instância durante a instalação ou não desmarcar a opção &lt;strong&gt;Hide Advanced configuration options&lt;/strong&gt;, o nome padrão será usado. Neste caso, você deverá acessar o SQL Express como &lt;strong&gt;computername/SQLExpress&lt;/strong&gt; &lt;strong&gt;&lt;em&gt;(a barra utilizada aqui deve ser a mesma utilizada na separação de diretórios)&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt; &lt;p align="justify"&gt;Você também pode instalar o SQL Express como Default Instance (não nomeada) - permitindo que apenas o nome do servidor seja informado durante a conexão se nenhuma outra versão do SQL Server já estiver instalada no servidor como default instance. Para fazer isto, instale o SQL Express como named instance usando como nome para a instância o nome &lt;strong&gt;&lt;em&gt;MSSQLSERVER&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt; &lt;p align="center"&gt;&lt;img src="http://www.mcdbabrasil.com.br/imagens/installsql2005/ex_instancename.jpg" /&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;strong&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Nota:&lt;/span&gt;&lt;/strong&gt; Para que o SQL Express permita informar um nome diferente para a instância, desmarque a opção &lt;strong&gt;Hide Advanced configuration options&lt;/strong&gt; na janela &lt;strong&gt;Registration Information&lt;/strong&gt; no início da instalação.&lt;/p&gt; &lt;p align="justify"&gt;9) A janela &lt;strong&gt;Service Account&lt;/strong&gt; (não será apresentada se você selecionar a opção &lt;strong&gt;Hide advanced configuration options&lt;/strong&gt;) permite que se atribua a conta local system (local system account) ou uma conta de usuário de domínio (domain user account) para iniciar os serviços SQL Server Express. &lt;/p&gt; &lt;p align="justify"&gt;Por default o SQL Server Express é instalado tendo a conta de sistema &lt;strong&gt;Network Service&lt;/strong&gt; como conta para a inicialização dos serviços. Entretando, a recomendação é que se use uma conta de domínio ou então crie-se uma conta local específica para a inicialização dos serviços.&lt;/p&gt; &lt;p align="center"&gt;&lt;img src="http://www.mcdbabrasil.com.br/imagens/install_express5.jpg" /&gt;&lt;/p&gt; &lt;p align="justify"&gt;10) Na janela &lt;strong&gt;Authentication Mode&lt;/strong&gt; especifique o modo de segurança que deverá ser utilizado para se conectar ao SQL Express e clique em &lt;strong&gt;Next&lt;/strong&gt;.&lt;/p&gt; &lt;p align="justify"&gt;11) Na janela &lt;strong&gt;Collations Settings&lt;/strong&gt; selecione o Collation designator e o sort order desejado e clique em &lt;strong&gt;Next&lt;/strong&gt; para continuar.&lt;/p&gt; &lt;p align="center"&gt;&lt;img src="http://www.mcdbabrasil.com.br/imagens/installsql2005/ex_collation.jpg" /&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;strong&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Nota:&lt;/span&gt;&lt;/strong&gt; Por padrão o SQL Express é instalado como &lt;strong&gt;case-insensitive&lt;/strong&gt;, &lt;strong&gt;accent-sensitive&lt;/strong&gt;. Ou seja, não faz restrição a maiúsculas e minúsculas, mas faz restrição a acentuação. Com isso, durante uma pesquisa,  "João" e "joão" são a mesma coisa mas "João" e "Joao" ou "joão" e "joao" &lt;strong&gt;NÃO são&lt;/strong&gt;. Para evitar futuros problemas com acentuação ou caracteres maiúsculos e minúsculos, recomendo que você selecione o Collate conforme tela acima. A não ser é claro, que você precise manter a compatibilidde de collate com outos servidores. Neste caso, selecione seu collate conforme o collate das versões anteriores. &lt;/p&gt; &lt;p align="justify"&gt;12)  Na janela &lt;strong&gt;Error Reporting,&lt;/strong&gt; selecione se você deseja reportar erros para o SQL Express e seus componentes à Microsoft. Esta opção é habilitada por padrão.&lt;/p&gt; &lt;p align="justify"&gt;13) Na janela &lt;strong&gt;Ready to Install&lt;/strong&gt; , clique em &lt;strong&gt;Install&lt;/strong&gt; para iniciar o processo de instalação do SQL Express.&lt;br /&gt;&lt;/p&gt; &lt;p align="justify"&gt;Assim como no SQL Server 2005 a janela &lt;strong&gt;Setup Progress&lt;/strong&gt; permite acompanhar o processo de instalação de cada componente. &lt;/p&gt; &lt;p align="center"&gt;&lt;img src="http://www.mcdbabrasil.com.br/imagens/installsql2005/ex_setupprogress.jpg" /&gt;&lt;/p&gt; &lt;h5&gt;Instalando o SQL Server Express via linha de comando&lt;/h5&gt;  &lt;p align="justify"&gt;Para aqueles que estão acostumados a instalar o MSDE 2000 via linha de comando, verão que instalar o SQL Server Express via linha de comando é tão simples quanto instalar o MSDE. Inclusive, a sintaxe e os parâmetros de instalação são bem semelhantes.&lt;/p&gt; &lt;p align="justify"&gt;Antes de iniciar o processo de instalação do SQL Express via linha de comando, é preciso extrair os arquivos de instalação para um caminho temporário. Para extrair os arquivos de instalação, execute o pacote do SQL Express com a opção &lt;strong&gt;/X&lt;/strong&gt; e informe o caminho onde os aquivos deverão ser extraídos.&lt;/p&gt; &lt;p align="justify"&gt;Exemplo: &lt;strong&gt;C:/SQLEXPR.EXE /X&lt;/strong&gt;&lt;/p&gt; &lt;p align="justify"&gt;Depois de extraído os arquivos, a instalação do SQL Express via linha de comando pode ser realizada de duas formas bastante simples:&lt;/p&gt; &lt;p align="justify"&gt;&lt;strong&gt;1.&lt;/strong&gt; Chamando o setup.exe e especificando os parâmetros desejados na própria linha de comando. &lt;/p&gt; &lt;p align="left"&gt;Exemplo:&lt;br /&gt;start /wait &lt;caminhotemporario&gt;setup.exe /qb ADDLOCAL=ALL INSTANCENAME=SQLEXPRESS SECURITYMODE=SQL SAPWD=pass SQLCOLLATION="SQL_Latin1_General_CP1_CI_AI" SQLAUTOSTART=1 DISABLENETWORKPROTOCOLS=0&lt;/caminhotemporario&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;strong&gt;2.&lt;/strong&gt; Criando um arquivo de configuração e especificando o mesmo na linha de comando&lt;/p&gt; &lt;p align="justify"&gt;Caso você não queira executar o setup especificando os parâmetros, uma alternativa é executá-lo informando um arquivo .ini, o qual deverá conter todos os parâmetros a serem utilizados durante a instalação.&lt;/p&gt; &lt;p align="justify"&gt;O arquivo .ini é um arquivo texto que pode ser criado usando o NotePad e deve ser salvo com a extensão .ini. A primeira linha do arquivo deve ser &lt;strong&gt;[Options]&lt;/strong&gt;, depois se devem especificar os parâmetros sendo um em cada linha. Depois de criado o arquivo .ini, execute o setup usando a opção &lt;strong&gt;/settings&lt;/strong&gt; para informar o arquivo .ini&lt;/p&gt; &lt;p align="justify"&gt;O exemplo abaixo utiliza o arquivo setup.ini para executar o setup.exe e informar os parâmetros desejados.&lt;/p&gt; &lt;p align="justify"&gt;Exemplo:&lt;br /&gt;start /wait &lt;caminhotemporario&gt;setup.exe /qb SAPWD=pass /settings &lt;caminhotemporario&gt;setup.ini&lt;/caminhotemporario&gt;&lt;/caminhotemporario&gt;&lt;/p&gt; &lt;p align="justify"&gt;-- conteúdo do arquivo setup.ini&lt;br /&gt;[Options]&lt;br /&gt;ADDLOCAL=ALL&lt;br /&gt;INSTANCENAME=SQLEXPRESS&lt;br /&gt;SECURITYMODE=SQL&lt;br /&gt;SQLCOLLATION="SQL_Latin1_General_CP1_CI_AI"&lt;br /&gt;SQLAUTOSTART=1&lt;br /&gt;DISABLENETWORKPROTOCOLS=0&lt;/p&gt; &lt;p align="justify"&gt;Nos exemplos acima, o parâmetro &lt;strong&gt;ADDLOCAL=ALL&lt;/strong&gt; informa ao setup do SQL Express que devem ser instalados todos os seus componentes. &lt;strong&gt;INSTANCENAME&lt;/strong&gt; indica o nome da instância, &lt;strong&gt;SECURITYMODE&lt;/strong&gt; indica que o modo de autenticação a ser utilizado é o SQL Authentication, &lt;strong&gt;SQLCOLLATION&lt;/strong&gt; informa o collation default a ser utilizado pelo SQL Express, &lt;strong&gt;SQLAUTOSTART&lt;/strong&gt; informa ao setup para configurar o serviço do SQL Express para inicialização automática, &lt;strong&gt;SAPWD&lt;/strong&gt; informa a senha para o usuário &lt;strong&gt;sa&lt;/strong&gt; e o parâmetro &lt;strong&gt;DISABLENETWORKPROTOCOLS&lt;/strong&gt; indica quais os protocolos deverão estar habilitados.&lt;/p&gt; &lt;p align="justify"&gt;É importante ficar atento ao valor informado no parâmetro DISABLENETWORKPROTOCOLS, o qual &lt;strong&gt;por default é 1&lt;/strong&gt;. O valor 1 informa ao SQL Express para desativar os protocolos TCP/IP e Named Pipes. Como conseqüência o SQL Express não aceitará conexões vindas de outras máquinas da rede. Os possíveis valores para o parâmetro podem ser.&lt;/p&gt; &lt;p align="justify"&gt;DISABLENETWORKPROTOCOLS = 0; Shared Memory= On, Named Pipe= On, TCP= On&lt;br /&gt;DISABLENETWORKPROTOCOLS = 1; Shared Memory= On, Named Pipe= Off (Local Only),TCP= Off&lt;br /&gt;DISABLENETWORKPROTOCOLS = 2; Shared Memory= On, Named Pipe= Off (Local Only), TCP= On&lt;/p&gt; &lt;p align="justify"&gt;Ao utilizar um dos dois métodos de instalação apresentados acima, as contas de serviço SQL Server Express e SQL Server Browser serão iniciadas com o usuário de sistema &lt;strong&gt;NT AUTHORITYNetworkService&lt;/strong&gt;. Para especificar uma conta de serviço diferente, acrescente os parâmetros abaixo:&lt;/p&gt; &lt;p align="justify"&gt;SQLACCOUNT=&lt;domainuser&gt;&lt;br /&gt;SQLPASSWORD=&lt;domainuserpassowrd&gt;&lt;br /&gt;SQLBROWSERACCOUNT=&lt;domainuser&gt;&lt;br /&gt;SQLBROWSERPASSWORD=&lt;domainuserpassowrd&gt;&lt;/domainuserpassowrd&gt;&lt;/domainuser&gt;&lt;/domainuserpassowrd&gt;&lt;/domainuser&gt;&lt;/p&gt; &lt;p align="justify"&gt;Para obter uma lista completa de todos os parâmetros que podem ser utilizados na instalação via linha de comando e seus respectivos significados, após extrair os arquivos do SQL Express para um caminho temporário, leia o arquivo &lt;strong&gt;template.ini&lt;/strong&gt;.&lt;/p&gt; &lt;p align="justify"&gt;&lt;strong&gt; &lt;h5&gt;Configurando o SQL Express para a Rede&lt;/h5&gt;&lt;/strong&gt; &lt;/p&gt; &lt;p align="justify"&gt;Se você esta desenvolvendo ou possui uma aplicação que irá se conectar a uma instância do SQL Express através da rede, existe várias considerações que você deve estar ciente:&lt;/p&gt; &lt;p align="justify"&gt;&lt;strong&gt;1)&lt;/strong&gt; Por razões de segurança, os protocolos de rede são desabilitados por padrão. Você pode habilitar os protocolos individualmente durante a instalação (quando instalando o SQL Express via linha de comando) ou após a instalação.&lt;br /&gt;&lt;strong&gt;2)&lt;/strong&gt; O SQL Express é instalado como named instance por padrão.&lt;br /&gt;&lt;strong&gt;3)&lt;/strong&gt; O serviço SQL Browser é usado por alguns protocolos de rede para associar instâncias nomeadas com números de portas TCP/IP. Entretanto, se o SQL Express é instalado no mesmo computador que uma versão anterior ao SP3 do MSDE ou SQL Server 2000, pode ocorrer alguns conflitos.&lt;/p&gt; &lt;p align="justify"&gt;Quando você instala o SQL Express, os protocolos de rede são desabilitados por padrão. Isto faz com que após a instalação o SQL Express não aceite conexões vindas de outras estações de uma rede. Apenas a conexão local (na própria máquina onde o SQL Express foi instalado) é permitida. Para permitir que o SQL Express se comunique com suas aplicações através de uma rede, você deve primeiro habilitar um dos protocolos de rede e então iniciar o serviço SQL Browser. &lt;/p&gt; &lt;p align="justify"&gt;O SQL Express suporta os seguintes protocolos de rede:&lt;/p&gt; &lt;p align="justify"&gt; &lt;table style="border: 1pt outset ; background: rgb(204, 204, 204) none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: rgb(204, 204, 204);" bg="" align="center" border="1" cellpadding="0" cellspacing="0"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td  style="border: 1pt inset rgb(236, 233, 216); padding: 0cm;color:transparent;"&gt; &lt;p style="text-align: center;" align="center"&gt;&lt;b&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:Times New Roman;"&gt;Protocolo de rede&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt; &lt;td  style="border: 1pt inset rgb(236, 233, 216); padding: 0cm;color:transparent;"&gt; &lt;p style="text-align: center;" align="center"&gt;&lt;b&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:Times New Roman;"&gt;Descrição&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt; &lt;td  style="border: 1pt inset rgb(236, 233, 216); padding: 0cm;color:transparent;"&gt; &lt;p style="text-align: center;" align="center"&gt;&lt;b&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:Times New Roman;"&gt;Padrão&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td  style="border: 1pt inset rgb(236, 233, 216); padding: 0cm;color:transparent;"&gt; &lt;p&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:Times New Roman;"&gt;Shared Memory&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt; &lt;td  style="border: 1pt inset rgb(236, 233, 216); padding: 0cm;color:transparent;"&gt; &lt;p&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:Times New Roman;"&gt;Permite conectar a uma instância do SQL Express rodando no mesmo computador. Não pode ser usado para acesso de outras estações da rede.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt; &lt;td  style="border: 1pt inset rgb(236, 233, 216); padding: 0cm;color:transparent;"&gt; &lt;p&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:Times New Roman;"&gt;Habilitado&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td  style="border: 1pt inset rgb(236, 233, 216); padding: 0cm;color:transparent;"&gt; &lt;p&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:Times New Roman;"&gt;TCP/IP&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt; &lt;td  style="border: 1pt inset rgb(236, 233, 216); padding: 0cm;color:transparent;"&gt; &lt;p&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:Times New Roman;"&gt;Permite que outras estações se conectem ao SQL Express por especificar o nome do servidor e o nome da instância (default SQLExpress) ou o endereço IP e o nome da instância.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt; &lt;td  style="border: 1pt inset rgb(236, 233, 216); padding: 0cm;color:transparent;"&gt; &lt;p&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:Times New Roman;"&gt;Desabilitado&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td  style="border: 1pt inset rgb(236, 233, 216); padding: 0cm;color:transparent;"&gt; &lt;p&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:Times New Roman;"&gt;Named Pipes&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt; &lt;td  style="border: 1pt inset rgb(236, 233, 216); padding: 0cm;color:transparent;"&gt; &lt;p&gt;&lt;span style=""&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:Times New Roman;"&gt;Permite que outras estações se conectem ao SQL Express por suportar vários protocolos de rede, incluindo NetBEUI, TCP/IP e IPX/SPX. Ele seleciona o protocolo de rede automaticamente baseado na configuração do cliente.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt; &lt;td  style="border: 1pt inset rgb(236, 233, 216); padding: 0cm;color:transparent;"&gt; &lt;p&gt;&lt;span lang="EN-US"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:Times New Roman;"&gt;Desabilitado&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt; &lt;h5&gt;Habilitando os protocolos de Rede&lt;/h5&gt;&lt;/strong&gt; &lt;/p&gt; &lt;p align="justify"&gt;Demonstrarei aqui como habilitar e configurar o protocolo TCP/IP no SQL Express usando o utilitário &lt;strong&gt;SQL Server Configuration Manager&lt;/strong&gt;.&lt;/p&gt; &lt;p align="justify"&gt;&lt;strong&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Nota:&lt;/span&gt;&lt;/strong&gt; Você deverá reiniciar o serviço do SQL Express após fazer alterações para os protocolos de rede. Também é recomendado a reinicialização do serviço SQL Browser.&lt;/p&gt; &lt;p align="justify"&gt;&lt;strong&gt;Para habilitar o protocolo TCP/IP siga os passos abaixo:&lt;/strong&gt;&lt;/p&gt; &lt;p align="justify"&gt;1) No menu &lt;strong&gt;Iniciar &lt;/strong&gt;(Start), selecione&lt;strong&gt; Programas, Microsoft SQL Server 2005&lt;/strong&gt; e então clique sobre &lt;strong&gt;SQL Server Configuration Manager&lt;/strong&gt;.&lt;br /&gt;2) Expanda &lt;strong&gt;SQL&lt;/strong&gt; &lt;strong&gt;Server 2005 Network Configuration &lt;/strong&gt;e clique sobre &lt;strong&gt;Protocols for&lt;/strong&gt; &lt;em&gt;&lt;strong&gt;InstanceName&lt;/strong&gt;. &lt;/em&gt;No painel da direita, clique com o botão direito sobre o protocolo TCP/IP e selecione &lt;strong&gt;Enable.&lt;/strong&gt;&lt;/p&gt; &lt;p align="center"&gt;&lt;img src="http://www.mcdbabrasil.com.br/imagens/installsql2005/ex_configmanager.jpg" /&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;strong&gt;Para configurar o protocolo TCP/IP:&lt;/strong&gt;&lt;/p&gt; &lt;p align="justify"&gt;1) No &lt;strong&gt;SQL Server Configutation Manager&lt;/strong&gt;, clique com o botão direito sobre &lt;strong&gt;TCP/IP&lt;/strong&gt; e selecione &lt;strong&gt;Properties &lt;/strong&gt;(Propriedades).&lt;br /&gt;2) Na guia &lt;strong&gt;IP Addresses&lt;/strong&gt;, para &lt;strong&gt;IPAll&lt;/strong&gt; coloque &lt;strong&gt;1433&lt;/strong&gt; em &lt;strong&gt;TCP Port&lt;/strong&gt;.&lt;br /&gt;3) Clique em &lt;strong&gt;OK&lt;/strong&gt; para fechar a janela e salvar as alterações. &lt;/p&gt; &lt;p align="center"&gt;&lt;img src="http://www.mcdbabrasil.com.br/imagens/installsql2005/ex_configport.jpg" /&gt;&lt;/p&gt; &lt;p align="justify"&gt;&lt;strong&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Nota:&lt;/span&gt;&lt;/strong&gt; O procedimento acima configurou a porta 1433 para todos os IP configurados em sua máquina. Caso você deseje configurar uma porta apenas para um IP específico, localize o IP desejado (IP1, IP2...) e siga o mesmo procedimento.&lt;/p&gt; &lt;p&gt;&lt;strong&gt; &lt;h5&gt;Iniciando o serviço SQL Browser&lt;/h5&gt;&lt;/strong&gt; &lt;/p&gt; &lt;p&gt;Para iniciar o serviço SQL Browser, estando no &lt;strong&gt;SQL Server Configuration Manager&lt;/strong&gt;:&lt;/p&gt;1) Selecione &lt;strong&gt;SQL Server 2005 Services&lt;/strong&gt;&lt;br /&gt;2) No painel da direita, clique com o botão direito sobre o serviço &lt;strong&gt;SQL Server Browser&lt;/strong&gt; e selecione &lt;strong&gt;Start (Iniciar)&lt;/strong&gt;.&lt;br /&gt;3) Para fazer com que o serviço seja iniciado automaticamente, clique com o botão direito e selecione &lt;strong&gt;Properties&lt;/strong&gt; (Propriedades)&lt;br /&gt;4) Na guia &lt;strong&gt;Services (Serviços)&lt;/strong&gt;, em &lt;strong&gt;Start Mode&lt;/strong&gt; selecione &lt;strong&gt;Automatic&lt;/strong&gt; &lt;strong&gt;(Automático)&lt;/strong&gt;&lt;br /&gt;5) Clique em &lt;strong&gt;OK&lt;/strong&gt; para fechar a janela e salvar as alterações.   &lt;h5&gt;Testando a Conectividade com o SQL Server Express&lt;/h5&gt; &lt;p&gt;Uma das maneiras mais simples de testar a conectividade com o servidor SQL Express é utilizando o utilitário de linha que comando &lt;strong&gt;sqlcmd.exe&lt;/strong&gt;. Este utilitário é instalado junto com o SQL Express e para testar a conectividade, abra uma janela DOS e execute o comando &lt;strong&gt;sqlcmd -E -S&lt;servidorsqlexpress&gt;&lt;/servidorsqlexpress&gt;&lt;/strong&gt;. &lt;/p&gt; &lt;p&gt;Caso você tenha selecione Mixed Mode como método de autenticação ao SQL Express, então também pode utilizar o comando &lt;strong&gt;sqlcmd -Usa -Psenha_do_sa -S&lt;servidorsqlexpress&gt;.&lt;/servidorsqlexpress&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Se o prompt de comando ficar como &lt;strong&gt;1&gt;&lt;/strong&gt;, é sinal de que a conexão foi estabelecida com sucesso.&lt;/p&gt; &lt;p&gt;Além do utilitário sqlcmd.exe, também é possível testar a conectividade remota com o SQL Express utilizando o utilitário &lt;strong&gt;PortQry&lt;/strong&gt;. O PortQry é um utilitário de linha de comando (também existe uma opção gráfica) que você pode utilizar na solução de problemas de conectividade com o protocolo TCP/IP. Ao ser executado ele mostrará o status da porta TCP ou UDP, seja para um computador local ou remoto. O PortQry pode ser executado sobre o Windows Server 2003/XP e 2000.&lt;/p&gt; &lt;p&gt;Quando executado sobre a porta UDP 1434, o PortQry consulta todas as instâncias do SQL Server que estão rodando no computador.&lt;/p&gt; &lt;p&gt;Para testar a conectividade utilizando o PortQry, supondo que o utilitário estreja na raiz do disco C:&lt;/p&gt; &lt;p&gt;&lt;strong&gt;1)&lt;/strong&gt; Abra uma janela DOS e digite &lt;strong&gt;C:/portqry -n NomedoServidor_ou_IP -e 1434 -p udp&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Um retorno semelhante ao abaixo garante que a porta está funcionando corretamente:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 129, 0);"&gt;Querying target system called:&lt;br /&gt;winxptmp&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="color: rgb(0, 129, 0);"&gt;Attempting to resolve name to IP address...&lt;br /&gt;Name resolved to 128.1.81.62&lt;br /&gt;querying...&lt;br /&gt;UDP port 1434 (ms-sql-m service): LISTENING or FILTERED&lt;br /&gt;Sending SQL Server query to UDP port 1434...&lt;br /&gt;Server's response:&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 129, 0);"&gt;&lt;strong&gt;ServerName WINXPTMP&lt;br /&gt;InstanceName SQLEXPRESS&lt;br /&gt;&lt;/strong&gt;IsClustered No&lt;br /&gt;Version 9.00.852&lt;br /&gt;tcp 1433&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="color: rgb(0, 129, 0);"&gt;==== End of SQL Server query response ====&lt;br /&gt;UDP port 1434 is LISTENING&lt;/span&gt;&lt;/p&gt; &lt;p&gt;2) Para testar a conectividade com a porta TPC/IP 1433 digite &lt;strong&gt;C:/portqry -n NomedoServidor_ou_IP -e 1433 -p tcp&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Um retorno semelhante ao abaixo garante que a porta está funcionando corretamente:     &lt;/p&gt; &lt;p&gt;&lt;span style="color: rgb(0, 129, 0);"&gt;Querying target system called:&lt;br /&gt;winxptmp&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="color: rgb(0, 129, 0);"&gt;Attempting to resolve name to IP address...&lt;br /&gt;Name resolved to 128.1.81.62&lt;br /&gt;querying...&lt;br /&gt;TCP port 1433 (ms-sql-s service): LISTENING&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoBodyText" style="margin: 0cm 0cm 0pt;"&gt;Bom pessoal, espero que com este artigo vocês possam ter uma visão básica do novo SQL Server 2005 Express Edition, que está chegando para substituir o velho e bom MSDE. Seguindo este artigo passo-a-passo vocês conseguirão instalar e testar o SQL Express sem nenhuma dificuldade."&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Post original: &lt;a href="http://www.mcdbabrasil.com.br/modules.php?name=News&amp;amp;file=article&amp;amp;sid=67"&gt;http://www.mcdbabrasil.com.br/modules.php?name=News&amp;amp;file=article&amp;amp;sid=67&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2009107678862211455-5047608374963092792?l=bloggernaoencontrado.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bloggernaoencontrado.blogspot.com/feeds/5047608374963092792/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://bloggernaoencontrado.blogspot.com/2008/11/sql-server-express-configuraes-para.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2009107678862211455/posts/default/5047608374963092792'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2009107678862211455/posts/default/5047608374963092792'/><link rel='alternate' type='text/html' href='http://bloggernaoencontrado.blogspot.com/2008/11/sql-server-express-configuraes-para.html' title='SQL Server Express - Configurações para acesso remoto em rede'/><author><name>Leandro Fagundes</name><uri>http://www.blogger.com/profile/01187163716994740852</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cmlO51JRC5c/SeTy9mh3b5I/AAAAAAAAALo/Tv0ZC-P08Bs/S220/ATgAAACB6EFcjBZG1FoHovNpB7y56Nhfj8BlFDwXwdKlS280_rBzWuS33IeGQ_yS4KR_mLMZov-__xRp6HWVmWgT7nfGAJtU9VBgSNIqgGPMqd_QqpwainlqPQC6lw.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2009107678862211455.post-1784745181394359984</id><published>2008-11-30T00:47:00.000-02:00</published><updated>2008-11-30T01:23:42.696-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Infos do blog'/><title type='text'>Blogger Begins</title><content type='html'>Bom pessoal, após trocar umas idéias com alguns amigos decidi criar este blog. Vai ser um espaço para postar alguns confrontos mentais que tenho e também problemas do dia a dia no mundo da programação e desenvolvimento de sistemas.&lt;br /&gt;&lt;br /&gt;Nos veremos por ai...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2009107678862211455-1784745181394359984?l=bloggernaoencontrado.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://bloggernaoencontrado.blogspot.com/feeds/1784745181394359984/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://bloggernaoencontrado.blogspot.com/2008/11/blogger-begins.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2009107678862211455/posts/default/1784745181394359984'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2009107678862211455/posts/default/1784745181394359984'/><link rel='alternate' type='text/html' href='http://bloggernaoencontrado.blogspot.com/2008/11/blogger-begins.html' title='Blogger Begins'/><author><name>Leandro Fagundes</name><uri>http://www.blogger.com/profile/01187163716994740852</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/_cmlO51JRC5c/SeTy9mh3b5I/AAAAAAAAALo/Tv0ZC-P08Bs/S220/ATgAAACB6EFcjBZG1FoHovNpB7y56Nhfj8BlFDwXwdKlS280_rBzWuS33IeGQ_yS4KR_mLMZov-__xRp6HWVmWgT7nfGAJtU9VBgSNIqgGPMqd_QqpwainlqPQC6lw.jpg'/></author><thr:total>0</thr:total></entry></feed>
