<?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: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'><id>tag:blogger.com,1999:blog-2987193369531119821</id><updated>2024-09-14T20:34:01.916-03:00</updated><category term="Banco de Dados"/><category term="Aulas TADS - Unipar"/><title type='text'>TADS - Programação</title><subtitle type='html'>Programação!! Desde programação em SQL - PL/SQL (Oracle, Firebird, MySQL), à linguagens estruturadas Pascal e C, como linguagens Orientadas à Objeto Delphi, PHP, Java e C#! Compartilhar conhecimentos e experiências... vamos aprender juntos?</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://tads-programacao.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2987193369531119821/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://tads-programacao.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Danilo</name><uri>http://www.blogger.com/profile/06225188006440317503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>11</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2987193369531119821.post-441834143481937578</id><published>2010-12-21T21:16:00.000-02:00</published><updated>2010-12-21T21:16:50.939-02:00</updated><title type='text'>QUICK TIPS: Gerência de Configuração - Parte Final</title><content type='html'>&lt;a href=&quot;http://www.devmedia.com.br/articles/post-13886-QUICK-TIPS--Gerencia-de-Configuracao-Parte-Final.html&quot;&gt;QUICK TIPS: Gerência de Configuração - Parte Final&lt;/a&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2987193369531119821/posts/default/441834143481937578'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2987193369531119821/posts/default/441834143481937578'/><link rel='alternate' type='text/html' href='http://tads-programacao.blogspot.com/2010/12/quick-tips-gerencia-de-configuracao.html' title='QUICK TIPS: Gerência de Configuração - Parte Final'/><author><name>Danilo</name><uri>http://www.blogger.com/profile/06225188006440317503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-2987193369531119821.post-7921055366633130699</id><published>2010-10-30T18:42:00.000-02:00</published><updated>2010-10-30T18:42:16.305-02:00</updated><title type='text'>Estabelecendo conexões HTTP com J2ME – Parte 02</title><content type='html'>&lt;a href=&quot;http://www.devmedia.com.br/post-8328-Estabelecendo-conexoes-HTTP-com-J2ME-Parte-02.html&quot;&gt;Estabelecendo conexões HTTP com J2ME – Parte 02&lt;/a&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2987193369531119821/posts/default/7921055366633130699'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2987193369531119821/posts/default/7921055366633130699'/><link rel='alternate' type='text/html' href='http://tads-programacao.blogspot.com/2010/10/estabelecendo-conexoes-http-com-j2me_30.html' title='Estabelecendo conexões HTTP com J2ME – Parte 02'/><author><name>Danilo</name><uri>http://www.blogger.com/profile/06225188006440317503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-2987193369531119821.post-1773386458938165647</id><published>2010-10-30T18:41:00.000-02:00</published><updated>2010-10-30T18:41:13.011-02:00</updated><title type='text'>Estabelecendo conexões HTTP com J2ME - Parte 01</title><content type='html'>&lt;a href=&quot;http://www.devmedia.com.br/articles/viewcomp.asp?comp=8316&quot;&gt;Estabelecendo conexões HTTP com J2ME - Parte 01&lt;/a&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2987193369531119821/posts/default/1773386458938165647'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2987193369531119821/posts/default/1773386458938165647'/><link rel='alternate' type='text/html' href='http://tads-programacao.blogspot.com/2010/10/estabelecendo-conexoes-http-com-j2me.html' title='Estabelecendo conexões HTTP com J2ME - Parte 01'/><author><name>Danilo</name><uri>http://www.blogger.com/profile/06225188006440317503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-2987193369531119821.post-9073604385745455277</id><published>2010-10-29T20:24:00.001-02:00</published><updated>2010-10-29T20:24:00.224-02:00</updated><title type='text'>Tutorial: Gerando Relatórios Com JasperReports e iReports no Netbeans</title><content type='html'>Check out this SlideShare Presentation: &lt;div style=&quot;width:425px&quot; id=&quot;__ss_1344906&quot;&gt;&lt;strong style=&quot;display:block;margin:12px 0 4px&quot;&gt;&lt;a href=&quot;http://www.slideshare.net/flaviowd/tutorial-gerando-relatrios-com-jasperreports-e-ireports-no-netbeans&quot; title=&quot;Tutorial: Gerando Relatórios Com JasperReports e iReports no Netbeans&quot;&gt;Tutorial: Gerando Relatórios Com JasperReports e iReports no Netbeans&lt;/a&gt;&lt;/strong&gt;&lt;object id=&quot;__sse1344906&quot; width=&quot;425&quot; height=&quot;355&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=gerandorelatorioscomjasperreports-090426173843-phpapp01&amp;stripped_title=tutorial-gerando-relatrios-com-jasperreports-e-ireports-no-netbeans&amp;userName=flaviowd&quot; /&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;/&gt;&lt;param name=&quot;allowScriptAccess&quot; value=&quot;always&quot;/&gt;&lt;embed name=&quot;__sse1344906&quot; src=&quot;http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=gerandorelatorioscomjasperreports-090426173843-phpapp01&amp;stripped_title=tutorial-gerando-relatrios-com-jasperreports-e-ireports-no-netbeans&amp;userName=flaviowd&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;425&quot; height=&quot;355&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style=&quot;padding:5px 0 12px&quot;&gt;View more &lt;a href=&quot;http://www.slideshare.net/&quot;&gt;presentations&lt;/a&gt; from &lt;a href=&quot;http://www.slideshare.net/flaviowd&quot;&gt;flaviowd&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2987193369531119821/posts/default/9073604385745455277'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2987193369531119821/posts/default/9073604385745455277'/><link rel='alternate' type='text/html' href='http://tads-programacao.blogspot.com/2010/10/tutorial-gerando-relatorios-com.html' title='Tutorial: Gerando Relatórios Com JasperReports e iReports no Netbeans'/><author><name>Danilo</name><uri>http://www.blogger.com/profile/06225188006440317503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-2987193369531119821.post-5874558303117913387</id><published>2010-10-09T10:57:00.001-03:00</published><updated>2010-10-09T10:57:59.600-03:00</updated><title type='text'>Desenvolvimento ágil com Kohana framework</title><content type='html'>Check out this SlideShare Presentation: &lt;div style=&quot;width:425px&quot; id=&quot;__ss_5077597&quot;&gt;&lt;strong style=&quot;display:block;margin:12px 0 4px&quot;&gt;&lt;a href=&quot;http://www.slideshare.net/mrodrigow/desenvolvimento-agil-com-kohana-framework&quot; title=&quot;Desenvolvimento ágil com Kohana framework&quot;&gt;Desenvolvimento ágil com Kohana framework&lt;/a&gt;&lt;/strong&gt;&lt;object id=&quot;__sse5077597&quot; width=&quot;425&quot; height=&quot;355&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=desenvolvimentoagilcomkohanaframeworkphpscconf2010-v3-100828151344-phpapp02&amp;stripped_title=desenvolvimento-agil-com-kohana-framework&amp;userName=mrodrigow&quot; /&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;/&gt;&lt;param name=&quot;allowScriptAccess&quot; value=&quot;always&quot;/&gt;&lt;embed name=&quot;__sse5077597&quot; src=&quot;http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=desenvolvimentoagilcomkohanaframeworkphpscconf2010-v3-100828151344-phpapp02&amp;stripped_title=desenvolvimento-agil-com-kohana-framework&amp;userName=mrodrigow&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;425&quot; height=&quot;355&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style=&quot;padding:5px 0 12px&quot;&gt;View more &lt;a href=&quot;http://www.slideshare.net/&quot;&gt;presentations&lt;/a&gt; from &lt;a href=&quot;http://www.slideshare.net/mrodrigow&quot;&gt;Marcelo Rodrigo&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2987193369531119821/posts/default/5874558303117913387'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2987193369531119821/posts/default/5874558303117913387'/><link rel='alternate' type='text/html' href='http://tads-programacao.blogspot.com/2010/10/desenvolvimento-agil-com-kohana.html' title='Desenvolvimento ágil com Kohana framework'/><author><name>Danilo</name><uri>http://www.blogger.com/profile/06225188006440317503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-2987193369531119821.post-5692376721084984227</id><published>2010-09-16T18:25:00.002-03:00</published><updated>2010-09-16T18:45:20.419-03:00</updated><title type='text'>Palestras PHP - dia 01/10</title><content type='html'>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibtcWyQUMXkWZXApzP_cYCD_sVXzB04OajpuoTyzPCCcPYV5PINhgHQy8xBZ8pqQacXkWVGqXNwr7Gsdol0v2CVzt5RL8dps8BG5WPZxM2l9MxjQUesAVzQtl851e2yHkldxuCP7Dyii4/s1600/Palestra+PHP.png&quot;&gt;&lt;img style=&quot;display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 512px; height: 246px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibtcWyQUMXkWZXApzP_cYCD_sVXzB04OajpuoTyzPCCcPYV5PINhgHQy8xBZ8pqQacXkWVGqXNwr7Gsdol0v2CVzt5RL8dps8BG5WPZxM2l9MxjQUesAVzQtl851e2yHkldxuCP7Dyii4/s400/Palestra+PHP.png&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5517630114007927826&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2987193369531119821/posts/default/5692376721084984227'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2987193369531119821/posts/default/5692376721084984227'/><link rel='alternate' type='text/html' href='http://tads-programacao.blogspot.com/2010/09/blog-post_16.html' title='Palestras PHP - dia 01/10'/><author><name>Danilo</name><uri>http://www.blogger.com/profile/06225188006440317503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibtcWyQUMXkWZXApzP_cYCD_sVXzB04OajpuoTyzPCCcPYV5PINhgHQy8xBZ8pqQacXkWVGqXNwr7Gsdol0v2CVzt5RL8dps8BG5WPZxM2l9MxjQUesAVzQtl851e2yHkldxuCP7Dyii4/s72-c/Palestra+PHP.png" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-2987193369531119821.post-2742639658814207671</id><published>2010-04-04T17:53:00.005-03:00</published><updated>2010-04-04T20:34:39.203-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Banco de Dados"/><title type='text'>Gerenciamento de usuário no Firebird 2.5</title><content type='html'>No projeto de desenvolvimento de software do estágio supervisionado - que é o trabalho de conclusão de curso na UNIPAR - Cianorte, o gerenciamento de usuário para controle de acesso e suas respectivas permissões são componentes/funcionalidades obrigatórias.&lt;br /&gt;&lt;br /&gt;Durante as monitorias do curso que realizo ou em conversas informais com vários colegas de turma, percebi que muitos tem algumas dúvidas ou simplesmente não sabem por onde começar.&lt;br /&gt;&lt;br /&gt;Então vou disponibilizar o que já fiz e fazer alguns comentários sobre o formato adotado. Vale destacar que devido à minha afinidade com o banco de dados utilizado (Firebird) fui impulsionado a adotar a seguinte estratégia: &lt;span style=&quot;font-weight:bold;&quot;&gt;Usuário da Aplicação / Sistema = Usuário do Banco de Dados&lt;/span&gt;, mas pode talvez não seja a melhor forma (para mim, neste momento foi).&lt;br /&gt;&lt;br /&gt;Ou seja, quando um usuário novo registra-se no sistema que estou desenvolvendo, eu também incluo-o no Security2.fdb (a partir da versão 2.0) que é o banco de dados do servidor Firebird onde são armazenados os usuários. O mesmo conceito vale para alteração e exclusão.&lt;br /&gt;&lt;br /&gt;Existe muita informação à respeito deste tópico já disponível na internet, eu recomendo este link &lt;a href=&quot;http://www.firebirdsql.org/manual/pt_br/fbutils-gsec-pt_br.html&quot;&gt;http://www.firebirdsql.org/manual/pt_br/fbutils-gsec-pt_br.html&lt;/a&gt;, pois embora esteja explicando o uso da ferramenta GSec (via linha de comando) que acompanha a instalação do Firebird, fornece uma boa visão de como funciona o gerenciamento de usuário pelo SGBDR.&lt;br /&gt;&lt;br /&gt;Outro motivo que levou-me a fazer assim foi a simplicidade oferecida pela versão 2.5 com a adição dos comando DDL (Data Definition Language) CREATE/ALTER/DROP USER, veja todos os detalhes no &lt;a href=&quot;http://www.firebirdsql.org/rlsnotesh/rlsnotes25.html#rnfb25-ddl-crtusr&quot;&gt;Release Notes da versão 2.5 (versão em html)&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Um ponto polêmico na utilização do Firebird é em relação a segurança de acesso ao arquivo do banco de dados (.fdb), é evidente e já está previsto melhoras neste quesito (disponível no &lt;a href=&quot;http://www.firebirdsql.org/index.php?op=devel&amp;amp;sub=engine&amp;amp;id=roadmap&amp;amp;nosb=1&quot;&gt;Firebird Roadmap&lt;/a&gt;), mas por enquanto no portal Firebase você encontrará respostas para as seguintes perguntas:&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.firebase.com.br/fb/artigo.php?id=528&quot;&gt;Existe alguma maneira de impedir que o SYSDBA tenha acesso ao meu banco de dados?&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.firebase.com.br/fb/artigo.php?id=27&quot;&gt;Como posso proteger meu banco de dados para que outras pessoas não tenham acesso ao meu arquivo GDB/FDB?&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Bem, vamos aos comandos SQLs que utilizei:&lt;br /&gt;Abaixo, minha tabela de usuário. Perceba que foram utilizados &lt;a href=&quot;http://www.firebase.com.br/fb/artigo.php?id=130&quot; title=&quot;Não sabe o que é isso?  Leia este artigo e fique por dentro!&quot;&gt;domínios&lt;/a&gt; na sua definição e que a implementação dos mesmos encontra-se comentada logo a frente do campo da tabela.&lt;br /&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot; ;font-size:small;&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;CREATE TABLE TB$USUARIO (&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;    ID             DOM$ID_SMALL NOT NULL /* DOM$ID_SMALL = SMALLINT NOT NULL */,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;    NOME           DOM$NOME_USUARIO NOT NULL /* DOM$NOME_USUARIO = VARCHAR(32) */,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;    NOME_COMPLETO  DOM$NOME_COMPLETO /* DOM$NOME_COMPLETO = VARCHAR(60) NOT NULL */,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;    SENHA          DOM$SENHA /* DOM$SENHA = VARCHAR(10) NOT NULL */,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;    FUNCAO         DOM$FLAG_CHAR NOT NULL /* DOM$FLAG_CHAR = CHAR(1) NOT NULL */,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;    ATUALIZACAO    DOM$ATUALIZACAO NOT NULL /* DOM$ATUALIZACAO = TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL */,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;CONSTRAINT PK_USUARIO PRIMARY KEY (ID)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;br /&gt;Stored Procedure que centraliza a execução dos comandos DDL, sendo chamada por um trigger da tabela acima. Estou utilizando novos recursos do &lt;a href=&quot;http://www.firebirdsql.org/rlsnotesh/rlsnotes25.html#rnfb25-psql-exctstmnt&quot; title=&quot;Veja na íntegra!&quot;&gt;Execute Statement&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;CREATE OR ALTER PROCEDURE SP$USER_MANAGER (&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;    I$CMD_DDL_USER VARCHAR(255),&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;    I$USER_ADMIN TYPE OF COLUMN TB$USUARIO.NOME = &#39;ADM&#39;,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;    I$PASSWORD TYPE OF COLUMN TB$USUARIO.SENHA = &#39;senha&#39;,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;    I$ROLE_ADMIN VARCHAR(30) = &#39;RDB$ADMIN&#39;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;    )&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;AS&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;BEGIN&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;    EXECUTE STATEMENT I$CMD_DDL_USER&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;    WITH COMMON TRANSACTION&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;    AS USER :I$USER_ADMIN PASSWORD :I$PASSWORD ROLE :I$ROLE_ADMIN;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;END&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;É necessário que o usuário passado como parâmetro de entrada para a procedure acima seja um &quot;super usuário&quot; com direitos equiparados ao SYSDBA, portanto estou utilizando um usuário que é membro da &lt;a href=&quot;http://www.firebirdsql.org/rlsnotesh/rlsnotes25.html#rnfb25-prvlgs&quot;&gt;role Rdb$admin&lt;/a&gt; - que também é um novo recurso da versão 2.5. &lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;CREATE USER ADM&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;PASSWORD &#39;senha&#39;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;FIRSTNAME &#39;Administrador&#39;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;MIDDLENAME &#39;do Sistema&#39;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;LASTNAME &#39;Unipar&#39;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;GRANT ADMIN ROLE&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;Além disso, é necessário atribuir (em cada base de dados) a role rdb$admin ao usuário, assim:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;GRANT RDB$ADMIN TO ADM&lt;/span&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;O Trigger abaixo é responsável por inserir, alterar e excluir o usuário no banco de dados Security2.fdb, condicional ao evento gerado na tabela TB$USUARIO.&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;CREATE OR ALTER TRIGGER TRI$USER_MANAGER FOR TB$USUARIO&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;ACTIVE AFTER INSERT OR UPDATE OR DELETE POSITION 0&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;AS&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;BEGIN&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;    IF (INSERTING) THEN&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;        EXECUTE PROCEDURE SP$USER_MANAGER(&#39;CREATE USER &#39; || NEW.NOME ||&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;            &#39; PASSWORD &#39;&#39;&#39; || NEW.SENHA || &#39;&#39;&#39; &#39;, &#39;ADM&#39;, &#39;senha&#39;);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;    ELSE&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;        IF (UPDATING) THEN&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;            EXECUTE PROCEDURE SP$USER_MANAGER(&#39;ALTER USER &#39; || OLD.NOME ||&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;                &#39; PASSWORD &#39;&#39;&#39; || NEW.SENHA || &#39;&#39;&#39; &#39;, &#39;ADM&#39;, &#39;senha&#39;);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;        ELSE&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;            EXECUTE PROCEDURE SP$USER_MANAGER(&#39;DROP USER &#39; || OLD.NOME,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;                &#39;ADM&#39;, &#39;senha&#39;);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-size:small;&quot;&gt;END&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;É isso ai pessoal! O Firebird está cada vez melhor!!&lt;/div&gt;&lt;div&gt;Até a próxima...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2987193369531119821/posts/default/2742639658814207671'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2987193369531119821/posts/default/2742639658814207671'/><link rel='alternate' type='text/html' href='http://tads-programacao.blogspot.com/2010/04/gerenciamento-de-usuario-firebird-25.html' title='Gerenciamento de usuário no Firebird 2.5'/><author><name>Danilo</name><uri>http://www.blogger.com/profile/06225188006440317503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-2987193369531119821.post-4472704188542515537</id><published>2010-04-03T19:58:00.006-03:00</published><updated>2010-04-03T20:13:56.842-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Banco de Dados"/><title type='text'>Concurso de Stored Procedures Firebird</title><content type='html'>&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipY2lFzmiiifPoB5PLZ7UdmjWu0zqzKFQhM2aUTt9QbRibvVA20ULZccuGkO61gvd2PFxb2yjuQFVwxUZRDZneWbDE410FRLYQARHIua6XcljLHHCpHhZWH0_DVEkJS_PnueX6d8xmNqA/s1600/logoFirebird.jpg&quot;&gt;&lt;img style=&quot;float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 200px; height: 200px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipY2lFzmiiifPoB5PLZ7UdmjWu0zqzKFQhM2aUTt9QbRibvVA20ULZccuGkO61gvd2PFxb2yjuQFVwxUZRDZneWbDE410FRLYQARHIua6XcljLHHCpHhZWH0_DVEkJS_PnueX6d8xmNqA/s200/logoFirebird.jpg&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5456053286525820082&quot; /&gt;&lt;/a&gt;&lt;br /&gt;O portal Firebase está divulgando este &lt;a href=&quot;http://www.firebase.com.br/fb/noticias.php?id=2170&quot;&gt;concurso de stored procedures&lt;/a&gt; anunciado pela campanha &lt;a href=&quot;http://www.mindthebird.com/&quot;&gt;MindTheBird&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;Visite-o e se informe, quem sabe você pode ser tornar um dos três vencedores...</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2987193369531119821/posts/default/4472704188542515537'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2987193369531119821/posts/default/4472704188542515537'/><link rel='alternate' type='text/html' href='http://tads-programacao.blogspot.com/2010/04/concurso-de-stored-procedures-firebird.html' title='Concurso de Stored Procedures Firebird'/><author><name>Danilo</name><uri>http://www.blogger.com/profile/06225188006440317503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipY2lFzmiiifPoB5PLZ7UdmjWu0zqzKFQhM2aUTt9QbRibvVA20ULZccuGkO61gvd2PFxb2yjuQFVwxUZRDZneWbDE410FRLYQARHIua6XcljLHHCpHhZWH0_DVEkJS_PnueX6d8xmNqA/s72-c/logoFirebird.jpg" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-2987193369531119821.post-1273056411950092847</id><published>2010-04-01T20:39:00.009-03:00</published><updated>2010-04-01T23:17:13.088-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Banco de Dados"/><title type='text'>Banco de Dados - Firebird</title><content type='html'>Olá pessoal,&lt;br /&gt;por mais que pareça fora do escopo ao que o blog se propõe a abordar (que é programação), vamos tratar nest post sobre Banco de Dados, mais especificamente o Sistema Gerenciador de Banco de Dados Relacional (SGBDR) Firebird.&lt;br /&gt;&lt;br /&gt;Este banco de dados open-source é descendente do Interbase 6 - devido a Borland abrir o código fonte do mesmo e em versões posteriores voltar a distribuí-lo sob licença comercial, instigando à comunidade a desenvolver, a partir dos fontes do Interbase, uma nova versão aberta à comunidade.&lt;br /&gt;&lt;br /&gt;Aprofunde seus conhecimentos visitando o &lt;a href=&quot;http://www.firebirdsql.org/&quot;&gt;site oficial&lt;/a&gt; ou o portal &lt;a href=&quot;http://www.firebase.com.br/fb/&quot;&gt;Firebase&lt;/a&gt; onde você poderá acessar vários artigos e dicas interessantes.&lt;br /&gt;&lt;br /&gt;Se você não foi convencido a clicar nos links acima, acredito que após visualizar &lt;a href=&quot;http://www.slideshare.net/warmbooter/2-firebird-technical-mindthebird-ptbr&quot;&gt;esta apresentação&lt;/a&gt; irá se convencer!&lt;br /&gt;&lt;br /&gt;A versão 2.5 do Firebird, está no segundo Release Candidate, confira!&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://www.firebirdsql.org/index.php?op=files&amp;id=fb250_rc2&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 50px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglV-orPzQrbN3fPt6U3e0fueKZiFrEzWpgOrQZlbGUift97ktYLZZgKimf6wcXYvkdFcAKf27nfpOHIvCYm_nUvqhPsLa0xdH1qTepiixHV5r-YGqju0CjtSJWYvQ1ChqXn0GAREpy04Q/s400/mtb_horiz.gif&quot; border=&quot;0&quot; alt=&quot;Download Firebird 2.5&quot; title=&quot;Download Firebird 2.5&quot; id=&quot;BLOGGER_PHOTO_ID_5455340539987609378&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Tenho orgulho de dizer que comecei a programar na PL/SQL do Firebird (lembro-me como se fosse hoje), foi um trigger... meu primeiro contato com programação!!&lt;br /&gt;&lt;br /&gt;Dá para fazer muitas coisas legais no banco de dados, ainda mais nas versões superiores à 2.0.&lt;br /&gt;&lt;br /&gt;Segue alguns exemplos:&lt;br /&gt;/**&lt;br /&gt; * A procedure abaixo foi utilizada para gerar uma chave&lt;br /&gt; * de uma informação passada como parâmetro de entrada. &lt;br /&gt; * As funções embutidas (SDF) ASCII_CHAR, ASCII_VAL, &lt;br /&gt; * BIN_XOR foram implementadas na versão 2.1, o&lt;br /&gt; * CHAR_LENGHT já existia na versão 2.0.&lt;br /&gt; */&lt;br /&gt;&lt;br /&gt;CREATE OR ALTER PROCEDURE SP$GERAR_HASH_CHAVE (&lt;br /&gt;    INPUT_HASH VARCHAR(255))&lt;br /&gt;RETURNS (&lt;br /&gt;    OUTPUT_HASH CHAR(1))&lt;br /&gt;AS&lt;br /&gt;DECLARE VARIABLE POS_CHAVE SMALLINT = 3;&lt;br /&gt;DECLARE VARIABLE TAMANHO_CHAVE SMALLINT;&lt;br /&gt;BEGIN&lt;br /&gt;    TAMANHO_CHAVE = CHAR_LENGTH(INPUT_HASH);&lt;br /&gt;    IF (TAMANHO_CHAVE &gt; 1) THEN&lt;br /&gt;    BEGIN&lt;br /&gt;        OUTPUT_HASH =&lt;br /&gt;            ASCII_CHAR(BIN_XOR(ASCII_VAL(SUBSTRING(INPUT_HASH FROM 1 FOR 1)),&lt;br /&gt;                               ASCII_VAL(SUBSTRING(INPUT_HASH FROM 2 FOR 1))));&lt;br /&gt;        WHILE (POS_CHAVE &lt;= TAMANHO_CHAVE) DO&lt;br /&gt;        BEGIN&lt;br /&gt;            OUTPUT_HASH = ASCII_CHAR(BIN_XOR(ASCII_VAL(OUTPUT_HASH),&lt;br /&gt;                                        ASCII_VAL(SUBSTRING(INPUT_HASH&lt;br /&gt;                                            FROM POS_CHAVE FOR 1))));&lt;br /&gt;            POS_CHAVE = POS_CHAVE + 1;&lt;br /&gt;        END&lt;br /&gt;    END&lt;br /&gt;    ELSE&lt;br /&gt;    BEGIN&lt;br /&gt;        OUTPUT_HASH = SUBSTRING(INPUT_HASH FROM 1 FOR 1);&lt;br /&gt;    END&lt;br /&gt;    SUSPEND;&lt;br /&gt;END&lt;br /&gt;&lt;br /&gt;Exemplo de uso/chamada da procedure acima:&lt;br /&gt;/**&lt;br /&gt; * Faço uma instrução select, informando o parâmetro&lt;br /&gt; * de retorno e o nome da procedure na cláusula from, &lt;br /&gt; * seguida do parâmetro de entrada.&lt;br /&gt; */&lt;br /&gt;SELECT OUTPUT_HASH FROM SP$GERAR_HASH_CHAVE(&#39;Firebird&#39;)&lt;br /&gt;&lt;br /&gt;Retorna: &quot;%&quot;&lt;br /&gt;&lt;br /&gt;O trigger abaixo pode ser criado na versão 2.5, quando foi implementado database trigger no Firebird, consulte o Release Notes para ficar por dentro de todas as novidades (e saber como implementá-las!).&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt; * Trigger utilizada para validar a conexão de um&lt;br /&gt; * usuário ao banco de dados, sendo disparada ao &lt;br /&gt; * conectar (&lt;i&gt;active on connect&lt;/i&gt;) assegurando &lt;br /&gt; * que aquele usuário da conexão está cadastrado na&lt;br /&gt; * tabela de usuário daquele banco de dados e não é&lt;br /&gt; * o SYSDBA, caso onde o usuário da aplicação que &lt;br /&gt; * utiliza o banco de dados é o mesmo do Security2.fdb&lt;br /&gt; * -  banco de dados que armazena os usuário do&lt;br /&gt; * servidor Firebird.&lt;br /&gt; */&lt;br /&gt;CREATE OR ALTER TRIGGER TRI$VALIDA_CONEXAO&lt;br /&gt;ACTIVE ON CONNECT POSITION 0&lt;br /&gt;AS&lt;br /&gt;BEGIN&lt;br /&gt;    IF (NOT EXISTS(SELECT&lt;br /&gt;                    1&lt;br /&gt;                   FROM TB$USUARIO&lt;br /&gt;                   WHERE TB$USUARIO.NOME = CURRENT_USER)&lt;br /&gt;        OR (CURRENT_USER = &#39;SYSDBA&#39;)) THEN&lt;br /&gt;     BEGIN&lt;br /&gt;        EXCEPTION E$LOGIN_INVALIDO;&lt;br /&gt;     END&lt;br /&gt;END&lt;br /&gt;&lt;br /&gt;É isso pessoal, como última dica fica a indicação do IBExpert para gerenciamento/manutenção do banco de dados Firebird - é excelente!</content><link rel='replies' type='application/atom+xml' href='http://tads-programacao.blogspot.com/feeds/1273056411950092847/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://tads-programacao.blogspot.com/2010/04/banco-de-dados-firebird.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2987193369531119821/posts/default/1273056411950092847'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2987193369531119821/posts/default/1273056411950092847'/><link rel='alternate' type='text/html' href='http://tads-programacao.blogspot.com/2010/04/banco-de-dados-firebird.html' title='Banco de Dados - Firebird'/><author><name>Danilo</name><uri>http://www.blogger.com/profile/06225188006440317503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglV-orPzQrbN3fPt6U3e0fueKZiFrEzWpgOrQZlbGUift97ktYLZZgKimf6wcXYvkdFcAKf27nfpOHIvCYm_nUvqhPsLa0xdH1qTepiixHV5r-YGqju0CjtSJWYvQ1ChqXn0GAREpy04Q/s72-c/mtb_horiz.gif" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2987193369531119821.post-271768423349965218</id><published>2010-02-28T16:51:00.006-03:00</published><updated>2010-03-27T09:24:15.409-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Aulas TADS - Unipar"/><title type='text'>Materiais trabalhados durante as aulas (2010)</title><content type='html'>Galera, estou utilizando o &lt;a href=&quot;http://www.google.com/google-d-s/hpp/hpp_pt-PT_pt.html&quot;&gt;Google Docs&lt;/a&gt; (se você não conhece, faça a experiência é espetacular!) para fazer minhas anotações das aulas (laboratoriais). Eu compartilhei-as, tornado-as acessíveis por &lt;a href=&quot;https://docs.google.com/leaf?id=0ByCFVVB_h_-3YTg0YjkwOGUtMTU5OC00MDcyLTk3NTYtMmRjM2FlMTkwNGYw&amp;amp;hl=pt_BR&quot;&gt;AQUI&lt;/a&gt;, confira!!!&lt;br /&gt;&lt;br /&gt;Vale o destaque para o doc de &lt;a href=&quot;https://docs.google.com/Doc?docid=0ASCFVVB_h_-3ZGdrd3E2cjdfMTdkOTcyM3N4Zg&amp;amp;hl=pt_BR&quot;&gt;Serviços para Internet&lt;/a&gt; que também possui um link à um &lt;a href=&quot;http://code.google.com/p/project-2010-unipar-php-3ano/&quot;&gt;projeto em PHP&lt;/a&gt; hospedado no Google Code!&lt;br /&gt;&lt;br /&gt;Até o próximo post.</content><link rel='replies' type='application/atom+xml' href='http://tads-programacao.blogspot.com/feeds/271768423349965218/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://tads-programacao.blogspot.com/2010/02/materiais-trabalhados-durante-as-aulas.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2987193369531119821/posts/default/271768423349965218'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2987193369531119821/posts/default/271768423349965218'/><link rel='alternate' type='text/html' href='http://tads-programacao.blogspot.com/2010/02/materiais-trabalhados-durante-as-aulas.html' title='Materiais trabalhados durante as aulas (2010)'/><author><name>Danilo</name><uri>http://www.blogger.com/profile/06225188006440317503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2987193369531119821.post-6644884619538317223</id><published>2010-02-27T12:03:00.000-03:00</published><updated>2010-02-27T12:03:00.355-03:00</updated><title type='text'>Boas vindas e apresentação do nosso objetivo</title><content type='html'>&lt;span style=&quot;font-family: verdana;&quot;&gt;&lt;span style=&quot;font-family: verdana;&quot;&gt;Olá pessoal.&lt;br /&gt;É com muita satisfação que crio este blog, pois através dele abordarei, com a ajuda de todos vocês, aspectos do Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas (inicialmente da Unipar, mas expandir é um objetivo louvável) voltados a programação.&lt;br /&gt;No Campus de Cianorte (PR), estudamos incialmente a linguagem de programação Pascal (primeiro ano, na disciplina de Lógica de programação). Depois, no segundo ano, continuamos nos aprofundando na programação usando Object Pascal através da IDE Delphi (que apartir da versão 7, é chamada de Delphi Language), isso no âmbito de desenvolvimento Desktop (windows). Para web: PHP e muita criatividade (e haja JavaScript e CSS)! Em Banco de Dados, estudamos SQL padrão Ansi, PL/SQL (procedure, function, triggers, blocks). Agora, no terceiro - e último ano!, temos nosso projeto de conclusão de curso e muitas disciplinas interessante que compõe nossa grade curricular. Java por si mesma já inspira arrepios em alguns, mas o objetivo do seu uso é a aprendizagem em Frameworks e Padrões de Projeto em uma das linguagens mais ativas e respeitadas no Desenvolvimento de Software (leia-se também webApp, aplicações mobile, multi-plataforma). Em PHP, teremos a oportunidade de estruturar e desenvolver um web site completo este ano e, em tecnologias emergentes, abordaremos C# (Linguagem proprietária da Microsoft, podendo também ser utilizada na versão Community - Mono!!).&lt;br /&gt;Então galera! Minha proposta é aprofundar nossos conhecimentos nestas linguagens de programação citadas e que tal conhecer novas (exemplo C e/ou C++), refazendo exemplos construídos em nossas aulas em outra linguagem... aposto que vamos surpreender nossos professores (e acredite: a nós mesmos!!).&lt;br /&gt;Espero você nesta caminhada!&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://tads-programacao.blogspot.com/feeds/6644884619538317223/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://tads-programacao.blogspot.com/2010/02/boas-vindas-e-apresentacao-do-nosso.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2987193369531119821/posts/default/6644884619538317223'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2987193369531119821/posts/default/6644884619538317223'/><link rel='alternate' type='text/html' href='http://tads-programacao.blogspot.com/2010/02/boas-vindas-e-apresentacao-do-nosso.html' title='Boas vindas e apresentação do nosso objetivo'/><author><name>Danilo</name><uri>http://www.blogger.com/profile/06225188006440317503</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>