<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-3296965488614147424</atom:id><lastBuildDate>Tue, 21 May 2013 13:55:32 +0000</lastBuildDate><category>Instalador de Software</category><category>IsTool</category><category>VIEW - Tabela Virtual</category><category>Sored Procedure no Firebird</category><category>Inno Setup</category><category>Começando a blogar...</category><category>BOOTMGR is compressed</category><title>Hélio Oliveira</title><description /><link>http://hpensador.blogspot.com/</link><managingEditor>noreply@blogger.com (Hélio Oliveira)</managingEditor><generator>Blogger</generator><openSearch:totalResults>10</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/hpensador" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="hpensador" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">hpensador</feedburner:emailServiceId><feedburner:feedburnerHostname xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://feedburner.google.com</feedburner:feedburnerHostname><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3296965488614147424.post-3281914835214520382</guid><pubDate>Mon, 06 Feb 2012 12:56:00 +0000</pubDate><atom:updated>2012-02-06T05:00:36.056-08:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">IsTool</category><category domain="http://www.blogger.com/atom/ns#">Inno Setup</category><category domain="http://www.blogger.com/atom/ns#">Instalador de Software</category><title>Criando instalador de software juntamento com Firebird utilizando Inno Setup e IsTool</title><description>&lt;h5&gt;&lt;b&gt;&lt;/b&gt;&amp;nbsp;&lt;/h5&gt;Salve galera! &lt;br /&gt;
Neste artigo vou demonstrar como é fácil e simples criarmos um instalador padronizado do nosso software. Para tanto iremos utilizar o &lt;i&gt;Inno Setup&lt;/i&gt; (&lt;a href="http://www.jrsoftware.org/isdl.php"&gt;http://www.jrsoftware.org/isdl.php&lt;/a&gt;) em conjunto com &lt;i&gt;IsTool&lt;/i&gt; (&lt;a href="http://sourceforge.net/projects/istool/"&gt;http://sourceforge.net/projects/istool/&lt;/a&gt;) ambos Free. Não demonstrarei aqui como instalá-los já que a instalação dos mesmos é bem facil e prática (próximo.. próximo…próximo..rs). No momento estou utilizando a versão 5.3.0.1 do &lt;i&gt;IsTool&lt;/i&gt; e 5.3.3 do &lt;b&gt;Inno Setup&lt;/b&gt;. &lt;br /&gt;
Na oportunidade também irei demonstrar como podemos embutir o instalador do &lt;i&gt;Firebird&lt;/i&gt; juntamento com o instalador do nosso software. &lt;br /&gt;
Agora vamos começar nossos trabalhos. &lt;br /&gt;
1 – Crie uma pasta na unidade C ou outra qualquer de sua preferencia com o nome “Instaladores”; &lt;br /&gt;
2 – Dentro da pasta criada anteriormente, crie uma sub-pasta com o nome “Instalador + nome do seu software” – no meu caso criei Instalador Comanda; &lt;br /&gt;
3 – Copie para dentro da pasta criada no item anterior todos os arquivos que serão necessário à instalação do seu software (executável, DLLs … enfim, todo e qualquer arquivo que seja necessário para o perfeito funcionamento do seu software na máquina do seu Cliente); &lt;br /&gt;
4 – Abra o &lt;i&gt;IsTool&lt;/i&gt;; &lt;br /&gt;
&lt;table cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td width="4"&gt;&lt;/td&gt; &lt;td width="290"&gt;&lt;/td&gt; &lt;td width="27"&gt;&lt;/td&gt; &lt;td width="315"&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;&lt;/td&gt; &lt;td valign="top"&gt;&lt;a href="http://lh6.ggpht.com/-KjPnzq3_2yY/Ty_NvZTlb3I/AAAAAAAAAz0/OVsjuISoVjY/s1600-h/clip_image003%25255B3%25255D.jpg"&gt;&lt;img alt="clip_image003" border="0" height="174" src="http://lh5.ggpht.com/-FLGW9P1pR9E/Ty_NvzkCv0I/AAAAAAAAAz8/TE29iCw1dp0/clip_image003_thumb.jpg?imgmax=800" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="clip_image003" width="244" /&gt;&lt;/a&gt;&lt;/td&gt; &lt;td&gt;&lt;/td&gt; &lt;td valign="top"&gt;&lt;a href="http://lh5.ggpht.com/-1s9pZayneiU/Ty_NwOY1T-I/AAAAAAAAA0E/iOCPC0oG8ss/s1600-h/clip_image004%25255B3%25255D.jpg"&gt;&lt;img alt="clip_image004" border="0" height="98" src="http://lh3.ggpht.com/-0X35m96R-aA/Ty_NwpNROFI/AAAAAAAAA0M/2mePlSsrZh4/clip_image004_thumb.jpg?imgmax=800" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="clip_image004" width="244" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;4.1 - &lt;i&gt;Click&lt;/i&gt; no menu arquivo depois novo ou então no botão novo da barra de ferramentas, após executar esta ação será aberta a caixa de diálogo “&lt;i&gt;Inno Setup Script Wizard&lt;/i&gt;” – veja que o &lt;i&gt;IsTool&lt;/i&gt; neste instante invoca o &lt;i&gt;wizard&lt;/i&gt; do &lt;i&gt;Inno&lt;/i&gt;; &lt;br /&gt;
&lt;table cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td width="155"&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;&lt;/td&gt; &lt;td&gt;&lt;a href="http://lh6.ggpht.com/-1I_0dJAkJw4/Ty_NxF6a25I/AAAAAAAAA0U/Yxq7cjam5Zk/s1600-h/clip_image006%25255B3%25255D.jpg"&gt;&lt;img alt="clip_image006" border="0" height="149" src="http://lh3.ggpht.com/-RIv8xQvvZhg/Ty_Nxofp6-I/AAAAAAAAA0c/j8zUBnIlDvo/clip_image006_thumb.jpg?imgmax=800" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="clip_image006" width="244" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;4.2 – &lt;i&gt;Click&lt;/i&gt; em &lt;i&gt;Next&lt;/i&gt; e na caixa de diálogo que se abrirá informe: Nome da sua aplicação, versão, nome e a url da sua empresa – depois &lt;i&gt;click&lt;/i&gt; em &lt;i&gt;Next&lt;/i&gt;, conforme tela abaixo; &lt;br /&gt;
&lt;table cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td width="154"&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;&lt;/td&gt; &lt;td&gt;&lt;a href="http://lh5.ggpht.com/-J4lucu7fNjY/Ty_NyCW5_rI/AAAAAAAAA0k/98OGhhvj2Uo/s1600-h/clip_image008%25255B3%25255D.jpg"&gt;&lt;img alt="clip_image008" border="0" height="157" src="http://lh3.ggpht.com/-RmiXrBqh8GE/Ty_NyqMJa-I/AAAAAAAAA0s/-Ank0vyqVTA/clip_image008_thumb.jpg?imgmax=800" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="clip_image008" width="244" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;4.3 – Na próxima caixa de diálogo &lt;i&gt;click&lt;/i&gt; no botão &lt;i&gt;Browse&lt;/i&gt; e selecione o executável da aplicação que você esta criando o instalador (o mesmo deverá estar dentro da pasta Instalador + nome de seu software, criado no item 2), deixe marcado a opção &lt;i&gt;Allow user to start the application after setup has finished&lt;/i&gt;, depois &lt;i&gt;click&lt;/i&gt; em &lt;i&gt;Next&lt;/i&gt;; &lt;br /&gt;
&lt;table cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td width="156"&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;&lt;/td&gt; &lt;td&gt;&lt;a href="http://lh4.ggpht.com/-Ckc9DpR0fLc/Ty_NzFVYaTI/AAAAAAAAA00/kpwLf4or-ZY/s1600-h/clip_image010%25255B3%25255D.jpg"&gt;&lt;img alt="clip_image010" border="0" height="184" src="http://lh3.ggpht.com/-ffPiOMLwJuU/Ty_NzrBxgOI/AAAAAAAAA08/p77URoIpSfE/clip_image010_thumb.jpg?imgmax=800" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="clip_image010" width="244" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;4.4 – Na caixa de diálogo seguinte informe o nome como deve ser criado a opção de menu no windows para sua aplicação, neste exemplo utilizarei o nome da minha empresa \ nome da minha aplicação (Hélio Sistemas\Comanda). Marque \ desmarque as opções desta tela de acordo com sua necessidade, depois &lt;i&gt;click&lt;/i&gt; em &lt;b&gt;Next&lt;/b&gt;; &lt;br /&gt;
&lt;table cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td width="131"&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;&lt;/td&gt; &lt;td&gt;&lt;a href="http://lh6.ggpht.com/-sBRw4kwhtSw/Ty_N0BP2PrI/AAAAAAAAA1E/EVCPTEhLlh4/s1600-h/clip_image012%25255B3%25255D.jpg"&gt;&lt;img alt="clip_image012" border="0" height="175" src="http://lh5.ggpht.com/-5Q8A5F5I50s/Ty_N0iZTw5I/AAAAAAAAA1M/hVf-D8iFUYQ/clip_image012_thumb.jpg?imgmax=800" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="clip_image012" width="244" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;4.5 – Na caixa de diálogo seguinte selecione os arquivos de Licença do seu software e de informação(ões) que deverá(rão) ser(em) executado(s) antes/após a instalação do mesmo – para tanto &lt;i&gt;click&lt;/i&gt; no botão &lt;i&gt;Browse&lt;/i&gt; ao lado de cada uma das caixas de diálogo e depois &lt;i&gt;click&lt;/i&gt; em &lt;i&gt;Next&lt;/i&gt;; &lt;br /&gt;
&lt;table cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td width="137"&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;&lt;/td&gt; &lt;td&gt;&lt;a href="http://lh3.ggpht.com/-nPf9dvXMZg4/Ty_N1BeffqI/AAAAAAAAA1U/BP2gHGqfIBs/s1600-h/clip_image014%25255B3%25255D.jpg"&gt;&lt;img alt="clip_image014" border="0" height="169" src="http://lh4.ggpht.com/-K0u_SPxyPqY/Ty_N1uiWI1I/AAAAAAAAA1c/qvFZ7OmoqaE/clip_image014_thumb.jpg?imgmax=800" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="clip_image014" width="244" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;4.6 – Na caixa de diálogo seguinte selecione o(s) Idioma(s) que deverá(ão) ser(em) incluído(s) no seu instalador e depois &lt;i&gt;click&lt;/i&gt; e &lt;b&gt;Next&lt;/b&gt;; &lt;br /&gt;
&lt;table cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td width="147"&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;&lt;/td&gt; &lt;td&gt;&lt;a href="http://lh4.ggpht.com/-LY-SEhEidoc/Ty_N168JUBI/AAAAAAAAA1k/Abj1fyzte3c/s1600-h/clip_image016%25255B3%25255D.jpg"&gt;&lt;img alt="clip_image016" border="0" height="175" src="http://lh3.ggpht.com/-XqijWJINKwM/Ty_N2UgyZYI/AAAAAAAAA1s/83P1Vixer60/clip_image016_thumb.jpg?imgmax=800" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="clip_image016" width="244" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;4.7 – Na caixa de diálogo seguinte informe o diretório (pasta) onde deverá ser gerado o arquivo do instalador de sua aplicação, o nome do arquivo que será gerado, o icone (caso queira colocar um icone personalizado para o seu instalador) e senha se assim desejar, depois click em &lt;b&gt;Next&lt;/b&gt; e por último em &lt;i&gt;Finish&lt;/i&gt;. &lt;br /&gt;
&lt;table cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td width="160"&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;&lt;/td&gt; &lt;td&gt;&lt;a href="http://lh4.ggpht.com/-kYjZG2Fa-gc/Ty_N2z9NfXI/AAAAAAAAA10/WjZrfVJvwHo/s1600-h/clip_image018%25255B3%25255D.jpg"&gt;&lt;img alt="clip_image018" border="0" height="176" src="http://lh3.ggpht.com/-zJI6qIkH8Rk/Ty_N3SlWxDI/AAAAAAAAA18/TOLwrIZcveM/clip_image018_thumb.jpg?imgmax=800" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="clip_image018" width="244" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;Após clicar no botão &lt;i&gt;Finish&lt;/i&gt; você irá visualizar no painel script do &lt;i&gt;IsTool&lt;/i&gt; o &lt;i&gt;script&lt;/i&gt; criado pelo &lt;i&gt;Inno Setup&lt;/i&gt; até aqui (conforme figura abaixo), estando assim quase pronto o nosso instalador. &lt;br /&gt;
&lt;table cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td width="160"&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;&lt;/td&gt; &lt;td&gt;&lt;a href="http://lh4.ggpht.com/-9O0nBs5uIY8/Ty_N3hZWJJI/AAAAAAAAA2E/iEK0PGkZnzw/s1600-h/clip_image020%25255B3%25255D.jpg"&gt;&lt;img alt="clip_image020" border="0" height="164" src="http://lh6.ggpht.com/-KQf-yZQdkEA/Ty_N4P-y6jI/AAAAAAAAA2M/zY3h645IpCE/clip_image020_thumb.jpg?imgmax=800" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="clip_image020" width="244" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;Vamos entender um pouco o painel &lt;b&gt;Sections&lt;/b&gt; (seções) do &lt;i&gt;IsTool&lt;/i&gt;: &lt;br /&gt;
O painel &lt;i&gt;Sections&lt;/i&gt; nos mostra as diversas seções que compoem o nosso &lt;i&gt;script&lt;/i&gt; de instalação e será atraves do mesmo que iremos dar continuidade na criação do instalador de nossa aplicação. A medida que formos dando continuidade a criação do nosso instalador, veremos com mais detalhes algumas das principais &lt;i&gt;sections&lt;/i&gt;. &lt;br /&gt;
5 – Retomando o trabalho, navegue até a &lt;i&gt;section&lt;/i&gt; Tarefa e selecione a mesma, depois na barra de ferramentas click no botão novo item, na caixa de diálogo (novo item) que se abrirá informe: Instalação do Servidor para o nome e a descrição da tarefa, selecione os &lt;i&gt;flags&lt;/i&gt; (exclusivo e marcado uma vez) depois click em Ok. Click novamento no botão novo item, na caixa de diálogo (novo item) que se abrirá informe: Instalação de Estação para o nome e a descrição da tarefa, selecione os &lt;i&gt;flags&lt;/i&gt; (exclusivo e desmarcado) e depois click em Ok. &lt;br /&gt;
&lt;table cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td width="23"&gt;&lt;/td&gt; &lt;td width="250"&gt;&lt;/td&gt; &lt;td width="42"&gt;&lt;/td&gt; &lt;td width="262"&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;&lt;/td&gt; &lt;td valign="top"&gt;&lt;a href="http://lh6.ggpht.com/-97Hlm6rVv0M/Ty_N5ysz4gI/AAAAAAAAA2Y/2a2SMSYfmLc/s1600-h/clip_image023%25255B3%25255D.jpg"&gt;&lt;img alt="clip_image023" border="0" height="244" src="http://lh6.ggpht.com/-AeGIwQ_CJxg/Ty_N7uDU3uI/AAAAAAAAA2g/x26dJmZMAKM/clip_image023_thumb.jpg?imgmax=800" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="clip_image023" width="214" /&gt;&lt;/a&gt;&lt;/td&gt; &lt;td&gt;&lt;/td&gt; &lt;td valign="top"&gt;&lt;a href="http://lh5.ggpht.com/-W68g9e2ZSdU/Ty_N8Hv9edI/AAAAAAAAA2o/hLZiC7-rDF0/s1600-h/clip_image024%25255B3%25255D.jpg"&gt;&lt;img alt="clip_image024" border="0" height="244" src="http://lh5.ggpht.com/-X2tEzCARY2c/Ty_N8hkXZTI/AAAAAAAAA2w/ztzE6nbQUvw/clip_image024_thumb.jpg?imgmax=800" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="clip_image024" width="225" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;As tarefas criadas anteriormente servirá para que possamos informar ao nosso instalador qual(is) arquivo(s) deve(m) ser(em) instalado(s) no momento da instalação do servidor/estação. &lt;br /&gt;
6 – Agora navegue até a section Arquivos e Diretórios selecione a mesma (neste momento observe que no Painel da direita Files, já existirá um arquivo, no caso o executável da aplicação a qual estamos criando o instalador), depois na barra de ferramentas click no botão novo item – na caixa de diálogo novo item click nas reticências localizada a direita da caixa de edição Origem e selecione um arquivo (aqui iremos selecionar o arquivo de banco de dados da nossa aplicação) no meu exemplo será o arquivo Comanda.FDB na caixa de edição Dir. destino, selecione {app} e acrescente a \Dados, devendo ficar assim {app}\Dados. Marque os flags Comparar data/hora, Confirmar sobreposição e Nunca desinstalar e click em Ok. Observe que o nosso arquivo será mostrado no painel (&lt;i&gt;Files&lt;/i&gt;). Dê um duplo click no nome do arquivo no painel &lt;i&gt;Files&lt;/i&gt;, será então exibida a caixa de diálogo propriedades, click então na a aba (tarefas) e marque [Instalação do Servidor] em sequida click no botão Ok – aqui vale uma pequena observação… lembra das tarefas que criamos anteriormente e o que disse de como elas seriam utilizadas, pois bem ai esta a sua primeira serventia. &lt;br /&gt;
&lt;table cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td width="31"&gt;&lt;/td&gt; &lt;td width="268"&gt;&lt;/td&gt; &lt;td width="42"&gt;&lt;/td&gt; &lt;td width="269"&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;&lt;/td&gt; &lt;td valign="top"&gt;&lt;a href="http://lh4.ggpht.com/-CsiETjBwLxM/Ty_N9O8w0_I/AAAAAAAAA24/qDnnjW4zKnU/s1600-h/clip_image027%25255B3%25255D.jpg"&gt;&lt;img alt="clip_image027" border="0" height="244" src="http://lh4.ggpht.com/-YK6qAAzX5ME/Ty_N9pHOHhI/AAAAAAAAA3A/9cW_sutanCo/clip_image027_thumb.jpg?imgmax=800" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="clip_image027" width="241" /&gt;&lt;/a&gt;&lt;/td&gt; &lt;td&gt;&lt;/td&gt; &lt;td valign="top"&gt;&lt;a href="http://lh6.ggpht.com/-GQjwoiKzxSA/Ty_N-F8-XKI/AAAAAAAAA3I/AQmbLttBM7o/s1600-h/clip_image028%25255B3%25255D.jpg"&gt;&lt;img alt="clip_image028" border="0" height="244" src="http://lh6.ggpht.com/-kLf0i0n_mfE/Ty_N-rt8ipI/AAAAAAAAA3Q/xjSKwOZ-s2k/clip_image028_thumb.jpg?imgmax=800" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="clip_image028" width="244" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;7 – Repetindo os passos do item anterior (6) insira quantos arquivos se façam necessários serem incluídos na instalação de sua aplicação ativando em cada um os flags que melhor atenda as suas necessidades e também defina em quais tarefas (Instalação do servidor/estação) eles deverão ser adicionados. &lt;br /&gt;
Bem até aqui tudo nos conformes… estamos quase concluindo o nosso instalador, porém devem estar perguntando e o &lt;i&gt;Firebird&lt;/i&gt;? O Fire nós vamos adicioná-lo seguindo os mesmo passos do item (6) – porém com alguns pequenos detalhes – adicione o executável do instalador do Firebird (aqui eu adicionei o instalador da versão 2.5 - Firebird-2.5.0.26074_1_Win32.exe), porém você deverá adicionar o instalador da versão do &lt;i&gt;Firebird&lt;/i&gt; a qual o seu aplicativo utiliza. Agora navegue até a section Executar na instalação, selecione a mesma e depois click no botão novo item – será exibida a caixa de diálogo novo item conforme abaixo. &lt;br /&gt;
&lt;table cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td width="160"&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;&lt;/td&gt; &lt;td&gt;&lt;a href="http://lh6.ggpht.com/-eONpLwFuAt8/Ty_N-1gLbzI/AAAAAAAAA3Y/nhn4dckbs1M/s1600-h/clip_image030%25255B3%25255D.jpg"&gt;&lt;img alt="clip_image030" border="0" height="244" src="http://lh5.ggpht.com/-grpLxiQNLMw/Ty_N_TaUhfI/AAAAAAAAA3g/vEFep1Psd-0/clip_image030_thumb.jpg?imgmax=800" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="clip_image030" width="218" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;Na caixa de diálogo novo item, ao lado do nome Arquivo click no combo e veja que será exibida uma lista com todos os arquivos que foram adicionados por nós inclusive o executável do instalador do &lt;i&gt;Firebird&lt;/i&gt; – selecione o mesmo e marque os &lt;i&gt;flags&lt;/i&gt; Executar maximizado, Pular se arquivo já existir – em Parâmetros digite /SP /SILENT estes parâmetros farão com que a instalação do Firebird não solicite ao usuário se deseja iniciar a instalação e exibirá apenas a barra de progresso da instalação. Deixando o ponteiro do mouse sobre essas &lt;i&gt;flags&lt;/i&gt; será exibida uma breve descrição da funcionalidade de cada uma, por isto não irei descrevê-las aqui. Para saber um pouco mais a respeito dos parâmetros de linha de comando que podemos utilizar na instalação do Firebird consulte &lt;a href="http://www.firebase.com.br/fb/artigo.php?id=1133"&gt;http://www.firebase.com.br/fb/artigo.php?id=1133&lt;/a&gt; . &lt;br /&gt;
Antes de compilar nosso instalador vamos fazer um pequeno ajuste para que a instalação do &lt;i&gt;Firebird&lt;/i&gt; seja feita ao final, antes da execução de nossa aplicação. Navegue até a section Executar na instalação e selecione a mesma, em seguida selecione no Painel Filename o arquivo do instalador do &lt;i&gt;Firebird&lt;/i&gt;, depois click no botão Mover para baixo – devendo os arquivo ficarem conforme imagem abaixo: &lt;br /&gt;
&lt;table cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td width="88"&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;&lt;/td&gt; &lt;td&gt;&lt;a href="http://lh5.ggpht.com/-3SOKiztyk3g/Ty_OALtJTGI/AAAAAAAAA3o/zxOX1BgO7IM/s1600-h/clip_image032%25255B3%25255D.jpg"&gt;&lt;img alt="clip_image032" border="0" height="84" src="http://lh5.ggpht.com/-EGDzpE8yVEI/Ty_OAU6IWeI/AAAAAAAAA3w/zxh-2syhS0I/clip_image032_thumb.jpg?imgmax=800" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="clip_image032" width="244" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;Agora vamos compilar nosso instalador – na barra de ferramentas click no botão Compilar instalador e aguarde o termino da mesma. Se você seguiu todos os passos até aqui corretamente, ao final da compilação irá ocorrer um erro devido aos nome das nossas tarefas que contém caracteres que não são aceitos – conforme imagem abaixo. &lt;br /&gt;
&lt;table cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;
&lt;tr&gt; &lt;td width="162"&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt; &lt;td&gt;&lt;/td&gt; &lt;td&gt;&lt;a href="http://lh5.ggpht.com/-9UNVE7tPCmc/Ty_OBNA5TUI/AAAAAAAAA34/HIRd7gjwzKU/s1600-h/clip_image034%25255B3%25255D.jpg"&gt;&lt;img alt="clip_image034" border="0" height="108" src="http://lh5.ggpht.com/-HKViiqU9Suk/Ty_OBUXcs8I/AAAAAAAAA4A/M39Dj2lD1gw/clip_image034_thumb.jpg?imgmax=800" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="clip_image034" width="244" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;Click no botão Close em seguida navegue até a &lt;i&gt;section&lt;/i&gt; Tarefas dê um duplo click nas tarefas criadas por nós e renomei-as conforme abaixo: &lt;br /&gt;
Nome – Instalação do Servidor – mude para Servidor &lt;br /&gt;
Nome – Instalação da Estação – mude para Estacao &lt;br /&gt;
Observe que em nome não pode haver caracteres especiais. &lt;br /&gt;
Compile novamente o seu instalador, ao final será exibida a mensagem Instalação compilada com sucesso – Testar agora? Click em sim e faça o teste da instalação da sua aplicação. &lt;br /&gt;
Esta foi uma pequena introdução do que podemos fazer com o &lt;i&gt;Inno Setup / IsTool&lt;/i&gt; – essas poderosas ferramentas tem bem + recursos que os aqui por mim demonstrado e que poderão ser explorados. Tanto o &lt;i&gt;Inno Setup&lt;/i&gt; quando o &lt;i&gt;IsTool&lt;/i&gt; fornecem diversos exemplos de instaladores que ficam no diretório de instalação dos mesmos em uma pasta com o nome Examples. &lt;br /&gt;
Bem, duvidas/sugestões serão sempre bem vindas – apesar de não ser nenhum expert em &lt;i&gt;Inno Setup / IsToll&lt;/i&gt; tentarei da melhor forma possível ajudá-los. &lt;br /&gt;
-:) –:)</description><link>http://hpensador.blogspot.com/2012/02/criando-instalador-de-software.html</link><author>noreply@blogger.com (Hélio Oliveira)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh5.ggpht.com/-FLGW9P1pR9E/Ty_NvzkCv0I/AAAAAAAAAz8/TE29iCw1dp0/s72-c/clip_image003_thumb.jpg?imgmax=800" height="72" width="72" /><thr:total>4</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3296965488614147424.post-472255443173893141</guid><pubDate>Thu, 19 Aug 2010 18:42:00 +0000</pubDate><atom:updated>2010-08-19T11:42:23.590-07:00</atom:updated><title>Alterando a forma de login do windows 7</title><description>&lt;p align="justify"&gt;Hoje decidi alterar a forma de login do windows 7 para ficar da mesma forma que o windows XP sem a tela de boas vindas. Fiz algumas pesquisas na net tendo encontrado farto material a respeito, porém foi atraves da dica do amigo Léo (Leh_U) que me passou o link &lt;a title="http://www.mydigitallife.info/2010/01/28/revert-and-change-to-xp-classic-logon-screen-on-windows-7-or-vista/" href="http://www.mydigitallife.info/2010/01/28/revert-and-change-to-xp-classic-logon-screen-on-windows-7-or-vista/"&gt;http://www.mydigitallife.info/2010/01/28/revert-and-change-to-xp-classic-logon-screen-on-windows-7-or-vista/&lt;/a&gt;, que consegui. Como o artigo esta em inglês, resolvi fazer um pequeno tuturial para poder auxiliar outras pessoas que por ventura desejem fazer o mesmo.&lt;/p&gt;  &lt;p align="justify"&gt;1 – Iniciar executar ou (win + R);&lt;/p&gt;  &lt;p align="justify"&gt;2 – Digite secpol.msc &amp;lt;enter&amp;gt;&lt;/p&gt;  &lt;p align="justify"&gt;3 – Será exibida a tela de edição das Diretivas de Segurança Local do windows 7, navegue até o item (Diretivas locais) e expanda a mesma, dentre as diretivas locais selecione (Opções de segurança);&lt;/p&gt;  &lt;p align="justify"&gt;4 – No painel do lado direito, navegue até (Logon interativo: não exibir o último nome do usuário) e dê um duplo click no mesmo;&lt;/p&gt;  &lt;p align="justify"&gt;5 – Na caixa de dialogo propriedades de Logon interativo que será exibibo, marque o checkbox que esta ao lado de “Habilitado”, depois click em “Aplicar” e depois em “Ok”;&lt;/p&gt;  &lt;p align="justify"&gt;6 – Feche a tela de edição das diretivas de segurança local;&lt;/p&gt;  &lt;p align="justify"&gt;7 – Reinicie o computador e veja o resultado.&lt;/p&gt;  &lt;p align="justify"&gt;Obs.: No artigo fonte de onde tirei esta dica e que posto acima, também ensina como fazer esta mesma alteração via registro do windows, porém aconselho ao menos experientes a não se habilitar a fazer tal procedimento.&lt;/p&gt;  &lt;p align="justify"&gt;-:) Até breve!&lt;/p&gt;  </description><link>http://hpensador.blogspot.com/2010/08/alterando-forma-de-login-do-windows-7.html</link><author>noreply@blogger.com (Hélio Oliveira)</author><thr:total>6</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3296965488614147424.post-1243466216672724477</guid><pubDate>Sun, 18 Jul 2010 01:35:00 +0000</pubDate><atom:updated>2010-07-17T18:42:55.447-07:00</atom:updated><title>Firebird Developers Day 1ª participação</title><description>&lt;p&gt;Salve galera!&lt;/p&gt;  &lt;p align="justify"&gt;Após diversas vezes planejar e nunca concretizar, enfim este ano conseguir participar do FDD na sua 7ª edição. Nesta edição foram apresentadas as novidades da versão 2.5 e o que podemos esperar para o 3.0 – Enfim agora é oficial, a partir da versão 3.0 usuários do Firebird não mais serão externos, mais sim parte integrante do BD, aguardarei ansioso por este lançamento que infelizmente nas previsões mais otimistas só daqui a mais um ano teremos provavelmente a primeira versão candidata RC1.&lt;/p&gt;  &lt;p align="justify"&gt;Nesta edição do FDD duas palestras para mim se destacaram, Criando Log utilizando os novos recursos do Fire 2.5 ministrada pelo Carlos Cantu e Controle de versões com Subversion ministrada por Erick Sassé – show – Erick é uma figuraça.&lt;/p&gt;  &lt;p align="justify"&gt;Meus parabens a todos os paletrantes e toda a galera participante que sempre engrandecem este evento maravilhoso.&lt;/p&gt;  &lt;p align="justify"&gt;Galera vocês são demais, até 2011 com o 8º FDD!&lt;/p&gt;  </description><link>http://hpensador.blogspot.com/2010/07/firebird-developer-day-1-participacao.html</link><author>noreply@blogger.com (Hélio Oliveira)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3296965488614147424.post-1530997529576506946</guid><pubDate>Wed, 16 Sep 2009 13:26:00 +0000</pubDate><atom:updated>2009-09-16T06:26:04.944-07:00</atom:updated><title>Clonando um HD na VirtuaBox</title><description>&lt;p&gt;1 - Copie e renomei o disco existente;   &lt;br /&gt;2 - Mova o disco criado anteriormente para pasta    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; C:\Arquivos de Programas\Sun\xVM VirtualBox    &lt;br /&gt;3 - Execute o prompt de comando do windows como Administrador    &lt;br /&gt;4 - Entre no diretorio C:\Arquivos de Programas\Sun\xVM VirtualBox    &lt;br /&gt;5 - Execute o seguinte comando:    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; vBoxManage internalcommands sethduuid &amp;quot;seu_disco.vdi&amp;quot;    &lt;br /&gt;Se tudo ocorrer normalmente será exibido a mensagem UUID Changed to: ....&lt;/p&gt;  </description><link>http://hpensador.blogspot.com/2009/09/clonando-um-hd-na-virtuabox.html</link><author>noreply@blogger.com (Hélio Oliveira)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3296965488614147424.post-7604525913670074220</guid><pubDate>Sun, 29 Jun 2008 17:26:00 +0000</pubDate><atom:updated>2008-07-01T09:18:37.975-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">BOOTMGR is compressed</category><title>BOOTMGR is compressed</title><description>&lt;p&gt;Este erro ocorre na inicialização do windows por motivos até o presente momento desconhecidos. No meu caso eu fui compactar a unidade para liberar espaço e logo após efetuar a compactação e reiniciar a máquina fui surpreendido com a mesma. Bem, após muitas horas de pesquisa na net onde encontrei farto material de outras pessoas reportando este erro mais nada de solução, encontrei uma dica a qual me livrou de ter que perder mais tempo ainda formatando e reinstalando todos os programas. Como é uma experiência nada agradável, aqui irei descrever quais os passos a serem seguidos nesta situação:&lt;/p&gt;  &lt;p&gt;1 - Coloque o DVD do windows vista no drive e dê boot na máquina atráves do mesmo;&lt;/p&gt;  &lt;p&gt;2 - Na primeira tela click em avançar;&lt;/p&gt;  &lt;p&gt;3 - Na tela seguinte click na opção &lt;u&gt;Reparar o Computador&lt;/u&gt;;&lt;/p&gt;  &lt;p&gt;4 - Será detectada a instalação do vista, sendo exibida uma caixa de dialogo com as informações da mesma. Click em avançar;&lt;/p&gt;  &lt;p&gt;5 - Na próxima tela click na opção &lt;u&gt;Prompt de Comando&lt;/u&gt;;&lt;/p&gt;  &lt;p&gt;6 - Na janela que se abrirá (prompt do DOS) digite:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;span style="color:#333333;"&gt;Bootrec/Fixboot - tecle &amp;lt;enter&amp;gt; e aguarde a confirmação da operação bem sucedida;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:#333333;"&gt;Bootrec/fixmbr - tecle &amp;lt;enter&amp;gt; e aguarde novamente a confirmação.&lt;/span&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Pronto! Se tudo correu bem até aqui agora é só reiniciar seu computador e seu sistema iniciará normalmente.&lt;/p&gt;</description><link>http://hpensador.blogspot.com/2008/06/bootmgr-is-compressed.html</link><author>noreply@blogger.com (Hélio Oliveira)</author><thr:total>54</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3296965488614147424.post-5103102438484374859</guid><pubDate>Mon, 09 Jun 2008 17:08:00 +0000</pubDate><atom:updated>2008-06-21T10:02:19.907-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">VIEW - Tabela Virtual</category><title>VIEW - Tabela Virtual</title><description>&lt;p align="justify"&gt;VIEW é uma tabela única derivada de outras tabelas. Essas outras tabelas podem ser tabelas de base ou outras VIEWS existentes. Uma VIEW não existe na forma física; ela pode ser considerada uma &lt;strong&gt;tabela virtual&lt;/strong&gt;, em contraste com tabelas de base, cujos registros são efetivamente armazenados no banco de dados. Podemos imaginar uma VIEW como um modo de especificar uma consulta à qual precisamos com frequência.&lt;/p&gt;  &lt;p align="justify"&gt;O comando para criação de uma VIEW é CREATE VIEW. Uma VIEW é composta do nome de uma tabela, uma lista de nomes de atributos e uma consulta para especificar seu conteúdo. Se um atributo for uma função do banco de dados como SUM, AVG, COUNT, MAX, etc. ou uma operação aritmética você deve especificar um nome para identificar os atributos, senão é opcional.&lt;/p&gt;  &lt;p&gt;Exemplo - tabelas de base:&lt;/p&gt;  &lt;p&gt;Create Table COLABORADOR ( &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;span style="color:#2f2f33;"&gt;id_colaborador integer not null,&lt;/span&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;span style="color:#2f2f33;"&gt;id_supervisor integer,&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:#2f2f33;"&gt;id_depto integer,&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:#2f2f33;"&gt;nomer varchar(50),&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:#2f2f33;"&gt;sexo varchar(1),&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:#2f2f33;"&gt;data_nascimento date,&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:#2f2f33;"&gt;salario numeric(15,4),&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:#2f2f33;"&gt;constraint pk_colaborador primary key (id_colaborador),&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:#2f2f33;"&gt;constraint fk_colab_supervisor foreign key (id_supervisor) references colaborador (id_colaborador),&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:#2f2f33;"&gt;constraint fk_colab_departamento foreign key (id_depto) references departamento (id_depto) on update cascade)&lt;/span&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;);&lt;/p&gt;  &lt;p&gt;Create Table DEPARTAMENTO (&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;span style="color:#333333;"&gt;id_depto integer not null,&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:#333333;"&gt;id_gerente integer not null,&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:#333333;"&gt;nome_depto varchar(30),&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:#333333;"&gt;constraint pk_departamento primary key (id_depto),&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:#333333;"&gt;constraint fk_depto_gerente foreign key (id_gerente) references colaborador (id_colaborador) on update cascade)&lt;/span&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;);&lt;/p&gt;  &lt;p&gt;Create Table PROJETO (&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;span style="color:#333333;"&gt;id_projeto integer not null,&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:#333333;"&gt;id_depto integer not null,&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:#333333;"&gt;nome_projeto varchar(30),&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:#333333;"&gt;constraint pk_projeto primary key (id_projeto),&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:#333333;"&gt;constraint fk_projeto_depto foreign key (id_depto) references departamento (id_depto) on update cascade)&lt;/span&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;);&lt;/p&gt;  &lt;p&gt;Create Table COLABORADOR_PROJETO (&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;span style="color:#333333;"&gt;id_colaborador integer not null,&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:#333333;"&gt;id_projeto integer not null,&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:#333333;"&gt;horas float not null default 0.00,&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:#333333;"&gt;constraint pk_colab_projeto primary key (id_colaborador, id_projeto),&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:#333333;"&gt;constraint fk_cp_colaborador foreign key (id_colaborador) references colaborador (id_colaborador) on update cascade,&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="color:#333333;"&gt;constraint fk_cp_projeto foreign key (id_projeto) references projeto (id_projeto) on update cascade)&lt;/span&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;);&lt;/p&gt;  &lt;p&gt;E a partir delas criar a seguinte view:&lt;/p&gt;  &lt;p&gt;Create View PROJETOS_COLABORADOR&lt;/p&gt;  &lt;p&gt;as Select c.id_colaborador, &lt;/p&gt;  &lt;p&gt;              c.nome, &lt;/p&gt;  &lt;p&gt;              p.nome_projeto, &lt;/p&gt;  &lt;p&gt;              d.nome_depto,&lt;/p&gt;  &lt;p&gt;              cp.horas&lt;/p&gt;  &lt;p&gt;    From Colaborador_Projeto cp&lt;/p&gt;  &lt;p&gt;       Join Colaborador c on (c.id_colaborador = cp_id_coladorador)&lt;/p&gt;  &lt;p&gt;       Join Projeto p on (p.id_projeto = cp.id_projeto)&lt;/p&gt;  &lt;p&gt;       Join Departamento d on (d.id_depto = p.id_projeto)&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p align="justify"&gt;Uma VIEW está sempre atualizada, já que quando alterarmos os registros nas tabelas de base das quais a VIEW é definida, a VIEW deve automaticamente refletir essas alterações. Desta forma, uma VIEW não efetua nenhuma ação na hora de sua criação, e sim na hora que especificamos uma consulta. Sendo de responsabilidade do SGDB e não do usuário assegurar que a VIEW esteja sempre atualizada.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;div align="justify"&gt;Uma VIEW com uma única tabela definidora é atualizável se os atributos contiverem a chave primária da relação de base, porque mapeará cada registro resultante para um único registro da tabela de base; &lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align="justify"&gt;VIEWS definidas em múltiplas tabelas utilizando junções geralmente não são atualizáveis; &lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align="justify"&gt;VIEWS definidas com o uso de funções de agregação e de agrupamento não são atualizáveis. &lt;/div&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p align="justify"&gt;Amigos, este artigo é uma pequena mostra do poder das VIEWS e para aqueles que queiram ter um maior conhecimento, aconselho a leitura de uma bibliografia específica para o SGDB utilizado - para o nosso bom Firebird recomendo os livros "Firebird Essencial" (capítulo 14) e "Firebird - O Banco de Dados  do Novo Milênio" (capítulo 13), ambos de autoria de Carlos Cantu.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Referência:&lt;/p&gt;  &lt;p&gt;Navathe, Elmasri, Sistemas de Banco de Dados - Fundamentos e Aplicações, Rio de Janeiro, 2000, Ed. LTC, 3ª Ed., 837p.&lt;/p&gt;</description><link>http://hpensador.blogspot.com/2008/06/view-tabela-virtual.html</link><author>noreply@blogger.com (Hélio Oliveira)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3296965488614147424.post-6748458144929370625</guid><pubDate>Tue, 03 Jun 2008 18:53:00 +0000</pubDate><atom:updated>2008-06-21T10:03:15.802-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Sored Procedure no Firebird</category><title>Utilizando Stored Procedure (SP) no Firebird</title><description>&lt;p&gt;O uso de Stored Procedures é muito útil em um ambiente cliente/servidor em função de fatores como desempenho, redução do tráfego de informações pela rede, agilidade e segurança. Neste artigo vamos explorar o poder das SPs, inicialmente definirei Stored Procedure, os tipos suportados pelo Firebird, sua estrutura e por fim criaremos uma SP e analisaremos a mesma linha a linha.&lt;/p&gt;  &lt;p&gt;Stored Procedure (SP) é, na sua essência, um programa PSQL, que é armazenada em um banco de dados Firebird. A stored procedure é composta pelos comandos SQL, variáveis&lt;sup&gt;1&lt;/sup&gt; e comandos de fluxo lógico. As SPs podem receber (caso existam) e retornar (caso a SP retorne valores) valores através de parâmetros de entrada e saída.&lt;/p&gt;  &lt;p&gt;O Firebird suporta dois tipos de SPs: &lt;u&gt;executáveis&lt;/u&gt; que retornam no máximo um registro e as &lt;u&gt;selecionáveis&lt;/u&gt; que podem retornar vários registros. As SPs selecionáveis se comportam como “tabelas virtuais - views“ do banco, já que podem ser utilizadas como fonte de dados em selects. As SPs selecionáveis são um extraordinário recurso nos fornecido pelo Firebird e que eu em particular uso e abuso das mesmas para me auxiliar na confecção de relatórios.&lt;/p&gt;  &lt;p&gt;As SPs são executas em um determinado momento, através de chamadas de execução específica, acionada pelo desenvolvedor ou pela aplicação no momento desejado.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Estrutura e criação de uma SP&lt;/u&gt; – O comando para criação de uma SP é o Create Procedure. Uma SP tem duas partes: cabeçalho e corpo. No cabeçalho, temos a definição do nome da SP, parâmetros de entrada (caso existam) e parâmetros de saída (caso a SP retorne valores). O corpo contém declarações de variáveis e comandos a serem executados.&lt;/p&gt;  &lt;p&gt;Create Procedure Minha_Primeira_SP (&lt;/p&gt;  &lt;p&gt;Param1 tipo, --- &lt;b&gt;lista de parâmetros de entrada&lt;/b&gt; -----&lt;/p&gt;  &lt;p&gt;Param2 tipo)&lt;/p&gt;  &lt;p&gt;Returns (&lt;/p&gt;  &lt;p&gt;Valor1 tipo, --- &lt;b&gt;lista de valores de saída&lt;/b&gt; -----&lt;/p&gt;  &lt;p&gt;Valor2 tipo)&lt;/p&gt;  &lt;p&gt;As&lt;/p&gt;  &lt;p&gt;Declare variable var1 tipo; ---- &lt;b&gt;lista de variáveis&lt;/b&gt; -----&lt;/p&gt;  &lt;p&gt;Declare variable var2 tipo;&lt;/p&gt;  &lt;p&gt;Begin&lt;/p&gt;  &lt;p&gt;(Corpo da SP – comandos)&lt;/p&gt;  &lt;p&gt;End&lt;/p&gt;  &lt;p&gt;Vamos agora ver na prática a criação de uma SP que funciona como um gerador de códigos para tabelas – (tipo um generetor);&lt;/p&gt;  &lt;p&gt;1 CREATE PROCEDURE NOVO_CODIGO (&lt;/p&gt;  &lt;p&gt;2     tabela varchar(30))&lt;/p&gt;  &lt;p&gt;3 returns (&lt;/p&gt;  &lt;p&gt;4     proximo_codigo integer)&lt;/p&gt;  &lt;p&gt;5 as&lt;/p&gt;  &lt;p&gt;6 declare variable codigo_atual integer;&lt;/p&gt;  &lt;p&gt;7 begin&lt;/p&gt;  &lt;p&gt;8    --Recupera o valor atual do código&lt;/p&gt;  &lt;p&gt;9    select id_atual from controle_id c&lt;/p&gt;  &lt;p&gt;10  where (c.tabela = :tabela)&lt;/p&gt;  &lt;p&gt;11  into :codigo_atual;  &lt;/p&gt;  &lt;p&gt;12  --Verifica se o valor do código é nulo&lt;/p&gt;  &lt;p&gt;13  if (:codigo_atual is null) then&lt;/p&gt;  &lt;p&gt;14  begin&lt;/p&gt;  &lt;p&gt;15      proximo_codigo = 1;&lt;/p&gt;  &lt;p&gt;16      insert into controle_id (tabela, id_atual)&lt;/p&gt;  &lt;p&gt;17                             values (:tabela, :proximo_codigo);&lt;/p&gt;  &lt;p&gt;18  end&lt;/p&gt;  &lt;p&gt;19  else&lt;/p&gt;  &lt;p&gt;20  begin&lt;/p&gt;  &lt;p&gt;21     proximo_codigo = codigo_atual + 1;&lt;/p&gt;  &lt;p&gt;22     update controle_id set id_atual = :proximo_codigo&lt;/p&gt;  &lt;p&gt;23                                                where (tabela = :tabela);&lt;/p&gt;  &lt;p&gt;24  end&lt;/p&gt;  &lt;p&gt;25  suspend;&lt;/p&gt;  &lt;p&gt;26 end&lt;/p&gt;  &lt;p&gt;Agora vamos analisar nossa SP, linha a linha.&lt;/p&gt;  &lt;p&gt;Linha 1 – Criamos a SP com o nome Novo_Codigo, bastante sugestivo -:) para a finalidade da mesma;&lt;/p&gt;  &lt;p&gt;Linha 2 – Definimos o parâmetro de entrada com seu respectivo tipo, que deverá ser informado para sua execução;&lt;/p&gt;  &lt;p&gt;Linha 3 – Returns( ) – define que os valores ali contidos serão retornados pela SP;&lt;/p&gt;  &lt;p&gt;Linha 4 – A variável com o seu respectivo tipo, que será o nosso valor de retorno;&lt;/p&gt;  &lt;p&gt;Linha 6 – Declaração de uma variável com seu respectivo tipo que será utilizada no processamento da SP;&lt;/p&gt;  &lt;p&gt;Linhas 7 e 26 – Begin/End (bastante conhecidos nosso -:) - um bloco que limita uma seqüência de comandos e instruções) - define o inicio e fim de nossa SP;&lt;/p&gt;  &lt;p&gt;Linhas 8 e 12 – Comentários;&lt;/p&gt;  &lt;p&gt;Linhas 9 a 11 – Fazemos uso de um select para recuperarmos da tabela que será passada por parâmetro para SP o valor do campo id_atual da tabela controle_id e inserimos o valor retornado na variável codigo_atual;&lt;/p&gt;  &lt;p&gt;Linhas 13 a 24 – Verificamos se o valor retornado é nulo e caso verdadeiro atribuímos a nossa variável de retorno (proximo_codigo) o valor 1 e inserimos um novo registro na tabela Controle_Id senão atribuímos a nossa variável de retorno (proximo_codigo) o valor do código_atual + 1 e atualizamos o registro da tabela Controle_Id;&lt;/p&gt;  &lt;p&gt;Linha 25 – Instrução SUSPEND, suspenderá a execução da procedure e retornará o valor de saída.&lt;/p&gt;  &lt;p&gt;Bem amigos, neste artigo tivemos uma breve introdução a este extraordinário recurso que o Firebird nos disponibiliza as Stored Procedures, porém ainda temos muito, mais muito mesmo o que explorar. Num próximo artigo demonstrarei um pouco mais do que podemos fazer utilizando SP, onde iremos usar um loop para podermos resgatar n-registros, tratar valores enfim... usar um pouco mais do poder das SPs.&lt;/p&gt;  &lt;p&gt;Referências:&lt;/p&gt;  &lt;ol&gt;&lt;li&gt;Cantu, Carlos Henrique, Firebird Essencial, Rio de Janeiro, Ed. Ciência Moderna, 2005, 308p. &lt;/li&gt;&lt;li&gt;Cantu, Carlos Henrique, Firebird 2.0 – O Banco de Dados do Novo Milênio, Ed. Ciência Moderna, 2006, 304p.&lt;/li&gt;&lt;/ol&gt;  &lt;ol&gt;    &lt;/ol&gt;  &lt;span style="font-size:85%;"&gt;1&lt;/span&gt; &lt;span style="font-size:85%;"&gt;-&lt;/span&gt; &lt;span style="line-height: 115%;"&gt;Os tipos dessas variáveis podem ser qualquer tipo nativo suportado pelo Firebird, exceto array e blob.&lt;/span&gt;</description><link>http://hpensador.blogspot.com/2008/06/utilizando-stored-procedure-sp-no.html</link><author>noreply@blogger.com (Hélio Oliveira)</author><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3296965488614147424.post-4194589399267231611</guid><pubDate>Sun, 01 Jun 2008 19:41:00 +0000</pubDate><atom:updated>2008-06-01T12:41:52.076-07:00</atom:updated><title>Diversas versões do Firebird em uma máquina - 2ª Parte</title><description>&lt;p&gt;Em um artigo anterior (Instalando duas vers&amp;#245;es do Firebird em uma mesma m&amp;#225;quina) eu demonstrei passo a passo como instalar as vers&amp;#245;es 1.0 e 1.5 ou 2.0 na mesma m&amp;#225;quina e utilizar as mesmas como servi&amp;#231;o sem problemas. Agora demonstrarei como podemos instalar junto a essas duas vers&amp;#245;es, mais a vers&amp;#227;o 2.1 &amp;#8211; isto gra&amp;#231;as &amp;#224; possibilidade que o FB 2.1 nos d&amp;#225; de renomear o servi&amp;#231;o durante o processo de instanciar o mesmo.&lt;/p&gt;  &lt;p&gt;Os passos iniciais s&amp;#227;o os mesmo descritos no artigo anterior &amp;#8211; motrarei o que devemos modificar a partir da instala&amp;#231;&amp;#227;o da vers&amp;#227;o 2.1 isto caso as duas vers&amp;#245;es anteriores j&amp;#225; estejam instaladas... Conforme demonstro abaixo:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/hpensador/SEL7X_K4bMI/AAAAAAAAABM/RKHg7VUNTfE/clip_image002%5B3%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="182" alt="clip_image002" src="http://lh5.ggpht.com/hpensador/SEL7YvK4bNI/AAAAAAAAABU/87SuZ-MF69Y/clip_image002_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Obs: Instaladas as vers&amp;#245;es 1.0 e 1.5;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/hpensador/SEL7ZPK4bOI/AAAAAAAAABc/8Z01L6khUuw/clip_image004%5B3%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="183" alt="clip_image004" src="http://lh5.ggpht.com/hpensador/SEL7ZvK4bPI/AAAAAAAAABk/MqyAf03jx6s/clip_image004_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Ambas em execu&amp;#231;&amp;#227;o como servi&amp;#231;o:&lt;/p&gt;  &lt;p&gt;Durante o processo de instala&amp;#231;&amp;#227;o do FB 2.1 ser&amp;#225; exibido um alerta informado que se encontra em execu&amp;#231;&amp;#227;o um servidor Firebird 1.5 ou posterior em execu&amp;#231;&amp;#227;o e que o servi&amp;#231;o/aplica&amp;#231;&amp;#227;o deve ser finalizado.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/hpensador/SEL7afK4bQI/AAAAAAAAABs/8jAm-ny8dBk/clip_image006%5B3%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="93" alt="clip_image006" src="http://lh5.ggpht.com/hpensador/SEL7avK4bRI/AAAAAAAAAB0/CySlYOZerU8/clip_image006_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Ap&amp;#243;s clicar em Ok a instala&amp;#231;&amp;#227;o ser&amp;#225; abortada. Para que consigamos prosseguir &amp;#233; necess&amp;#225;rio que seja parado o servi&amp;#231;o do FB 1.5 ou 2.0 (V&amp;#225; a Ferramentas Administrativas/Servi&amp;#231;os e pare o mesmo). Pronto feito isto, execute novamente o processo de instala&amp;#231;&amp;#227;o do FB 2.1.&lt;/p&gt;  &lt;p&gt;Conclu&amp;#237;da a instala&amp;#231;&amp;#227;o da vers&amp;#227;o 2.1 &amp;#8211; partiremos agora para instanciar o servi&amp;#231;o e iniciar o mesmo, isto ser&amp;#225; feito manualmente atrav&amp;#233;s da aplica&amp;#231;&amp;#227;o de linha de comando instsvc que faz parte do pacote de instala&amp;#231;&amp;#227;o e encontra-se na pasta bin.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/hpensador/SEL7bvK4bSI/AAAAAAAAAB8/eJeSXvIqRM0/clip_image008%5B3%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="116" alt="clip_image008" src="http://lh3.ggpht.com/hpensador/SEL7cPK4bTI/AAAAAAAAACE/pTjS5cepupE/clip_image008_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Abra um prompt de comando (Iniciar/Executar &amp;#8211; cmd ou Iniciar/Programas/Promp de Comando). Na tela que se abre digite: cd\Arquivos de Programas\Firebird\Firebird_2_1 &amp;lt;Enter&amp;gt;&lt;/p&gt;  &lt;p&gt;Estando neste diret&amp;#243;rio digite: Edit firebird.conf ser&amp;#225; aberta a tela do editor de texto Edit com o conte&amp;#250;do do referido arquivo carregado, localize a linha:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/hpensador/SEL7cvK4bUI/AAAAAAAAACM/fShDmA9Nmf8/clip_image010%5B3%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="131" alt="clip_image010" src="http://lh4.ggpht.com/hpensador/SEL7dfK4bVI/AAAAAAAAACU/rjhAb1uqjog/clip_image010_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;#RemoteServicePort=3050 e fa&amp;#231;a as seguintes altera&amp;#231;&amp;#245;es:&lt;/p&gt;  &lt;p&gt;&amp;#8211; remova ( # ) da frente do nome e depois altere o n&amp;#250;mero da porta 3050 para qualquer outro n&amp;#250;mero de porta permitida. Salve as altera&amp;#231;&amp;#245;es feitas no documento e saia do editor de textos.&lt;/p&gt;  &lt;p&gt;Pronto agora vamos iniciar o processo de cria&amp;#231;&amp;#227;o da inst&amp;#226;ncia do servi&amp;#231;o e a inicializa&amp;#231;&amp;#227;o do mesmo.&lt;/p&gt;  &lt;p&gt;Vamos agora para o diret&amp;#243;rio onde esta localizado o instsvc...&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/hpensador/SEL7dvK4bWI/AAAAAAAAACc/uSvB_XJwqRw/clip_image012%5B3%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="133" alt="clip_image012" src="http://lh4.ggpht.com/hpensador/SEL7efK4bXI/AAAAAAAAACk/VvzkDgaxsAg/clip_image012_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Digite cd bin &amp;lt;Enter&amp;gt;, digite instsvc i &amp;#8211;s &amp;#8211;a &amp;#8211;g &amp;#8211;n Firebird_2_1 &amp;lt;Enter&amp;gt; (observe o par&amp;#226;metro &amp;#8211;n e logo em seguida o nome Firebird_2_1 &amp;#8211; este ser&amp;#225; o nome do meu servi&amp;#231;o para o FB 2.1), ser&amp;#225; mostrada duas linhas de mensagens informando-lhe que foram criados com sucesso as inst&amp;#226;ncias do Server e Guardian. Agora digite instsvc sta &amp;lt;Enter&amp;gt;, ser&amp;#225; mostrada uma nova linha de mensagem lhe informado que o servi&amp;#231;o foi iniciado com sucesso.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/hpensador/SEL7e_K4bYI/AAAAAAAAACs/B4weKbeb3tQ/clip_image014%5B3%5D.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="157" alt="clip_image014" hspace="hspace" src="http://lh5.ggpht.com/hpensador/SEL7fvK4bZI/AAAAAAAAAC0/dfwPJYA91F0/clip_image014_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Bem se tudo ocorreu nos conformes, agora voc&amp;#234; ter&amp;#225; as vers&amp;#245;es 1.0, 1.5 ou 2.0 e 2.1 instaladas e em execu&amp;#231;&amp;#227;o como servi&amp;#231;o em uma mesma m&amp;#225;quina... show.&lt;/p&gt;  &lt;p&gt;Bom trabalho e at&amp;#233; uma pr&amp;#243;xima oportunidade.&lt;/p&gt;  </description><link>http://hpensador.blogspot.com/2008/06/diversas-verses-do-firebird-em-uma_01.html</link><author>noreply@blogger.com (Hélio Oliveira)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh5.ggpht.com/hpensador/SEL7YvK4bNI/AAAAAAAAABU/87SuZ-MF69Y/s72-c/clip_image002_thumb.jpg" height="72" width="72" /><thr:total>3</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3296965488614147424.post-7202123991368987441</guid><pubDate>Sun, 01 Jun 2008 19:02:00 +0000</pubDate><atom:updated>2008-06-01T12:14:11.367-07:00</atom:updated><title>Diversas versões do Firebird em uma máquina - 1ª Parte</title><description>Atualmente eu trabalho dando manutenção a um sistema desenvolvido utilizando a versão 1.0 do Firebird, devido a problemas de compatibilidade ainda não pude migrar o mesmo para uma versão mais recente, porém algum tempo atrás necessitei iniciar um novo projeto utilizando a versão 1.5 e daí me surgiu o problema, como ter as 2 versões instaladas em uma mesma máquina. Após algumas pesquisas e consulta a alguns colegas cheguei a uma solução que acabei tornando em um tutorial passo a passo de como fazer isto.&lt;br /&gt;&lt;br /&gt;&lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;b style=""&gt;&lt;span style="font-size: 10pt;"&gt;INSTALANDO DUAS VERSÕES DE FIREBIRD &lt;st1:personname productid="EM UMA MESMA MÁQUINA" st="on"&gt;EM UMA MESMA MÁQUINA&lt;/st1:PersonName&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;1 – Instale o Firebird 1.0;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;2 – Instale o Firebird 1.5 ou superior;&lt;/p&gt;    &lt;p class="MsoNormal" style="text-align: justify;"&gt;Obs-1.: Durante o processo de instalação da segunda versão, o instalador detectará que já existe uma versão do banco de dados instalada na máquina e será exibida uma mensagem perguntando se você realmente deseja instalar outra versão (click em NÃO), pois ele lhe perguntará se quer cancelar a instalação. A segunda versão será instalada, porém a mesma não será configurada o que deverá ser feito manualmente.&lt;/p&gt;    &lt;p class="MsoNormal" style="text-align: justify;"&gt;Obs-2.: Não é possível ter instalada em uma mesma máquina a versão 1.5 e a versão 2.0, pois o serviço criado pelos mesmos durante o processo de instalação tem o mesmo nome e não pode ser modificado, o que não permite-nos ter as duas versões em execução ao mesmo tempo.&lt;/p&gt;    &lt;p class="MsoNormal" style="text-align: justify;"&gt;Obs-3.: A pasta padrão de instalação do Firebird é: &lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;C:\Arquivos de Programas\Firebird\Firebird_1_5 recomendo que está seja alterada para:&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;C:\Arquivos de Programas\Firebird_1_5;&lt;/p&gt;    &lt;p class="MsoNormal" style="text-align: justify;"&gt;2.1 – Após a conclusão da instalação do Firebird 1.5 ou 2.0 vá para o prompt do MS-DOS (iniciar executar cmd &lt;enter&gt;);&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;2.1.1 – Estando no prompt do MS-DOS digite cd\Arquivos de Programas\Firebird_1_5 &lt;enter&gt;;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;2.1.2 – Digite edit firebird.conf &lt;enter&gt;; sera aberta a tela do editor de texto com o conteúdo do arquivo de configurações do Firebird – localize a linha:&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;#RemoteServicePort=3050 – remova ( # ) e depois altere o numero da porta para 3051 ou qualquer outro número de porta. Salve o documento e saia do editor.&lt;/p&gt;    &lt;p class="MsoNormal" style="text-align: justify;"&gt;Obs – Caso seja necessário coloque a porta que você definiu no arquivo de configuração do Firebird nas exceções do Firewall do windows, pois o mesmo poderá bloquear a mesma por motivos de segurança.&lt;/p&gt;    &lt;p class="MsoNormal" style="text-align: justify;"&gt;2.1.3 – Agora digite cd bin &lt;enter&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;2.1.3 – Estando no diretório bin do Firebird, devemos instanciar o serviço e depois coloca-lo em execução, conforme os procedimentos a seguir:&lt;/p&gt;    &lt;p class="MsoNormal" style="text-align: justify;"&gt;Digite instsvc i –s –a –g &lt;enter&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;Digite instsvc sta &lt;enter&gt;&lt;/p&gt;    &lt;p class="MsoNormal" style="text-align: justify;"&gt;Se tudo correu normalmente após a execução deste último comando será exibida uma mensagem informando que o serviço foi iniciado com sucesso.&lt;/p&gt;    &lt;p class="MsoNormal" style="text-align: justify;"&gt;Pronto, bom trabalho – as duas versões do Firebird encontram-se instaladas e em execução.&lt;/p&gt;</description><link>http://hpensador.blogspot.com/2008/06/diversas-verses-do-firebird-em-uma.html</link><author>noreply@blogger.com (Hélio Oliveira)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3296965488614147424.post-2520069087913211476</guid><pubDate>Sun, 01 Jun 2008 17:17:00 +0000</pubDate><atom:updated>2008-06-01T11:10:47.497-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Começando a blogar...</category><title>Começando a blogar...</title><description>Boa tarde caros colegas!&lt;br /&gt;&lt;br /&gt;A partir de hoje procurarei sempre escrever artigos e publica-los aqui e espero que de alguma forma eles possam ajuda-los.&lt;br /&gt;&lt;br /&gt;Sds,&lt;br /&gt;&lt;br /&gt;Hélio Oliveira</description><link>http://hpensador.blogspot.com/2008/06/boa-tarde-caros-colegas-partir-de-hoje.html</link><author>noreply@blogger.com (Hélio Oliveira)</author><thr:total>3</thr:total></item></channel></rss>
