Índice. Coluna Mauro Sant Anna. É o fim de Pirataria?

Tamanho: px
Começar a partir da página:

Download "Índice. Coluna Mauro Sant Anna. É o fim de Pirataria?"

Transcrição

1 agosto 2008

2 agosto 2008

3 Índice Editorial Olá caros associados, é com muita alegria que eu digo, sejam bem vindos, bem vindos à nova fase que nos The Club estamos vivendo, acredito que tudo na vida passa por fases, e a fase que acabamos de entrar é de inovações e crescimento. Coluna Mauro Sant Anna É o fim de Pirataria? Copiar um software sem remuneração às pessoas e empresas que o criaram é algo que todo fabricante de software teme. Evidentemente existem proteções legais, como a Lei de Software de 1991 antes de 1991 *não* era crime 04 copiar software no Brasil. 05 Delphi Leitura de Gabaritos uma abordagem prática Delphi 2007 Utilizando DBExpress 4 e Firebird em uma aplicação Win32 Capturando imagem e video de sua webcam NET Lambda Expressions Expressão lambda foi adicionada ao Visual Basic 2008 e C# 3.0, com o objetivo de apoiar Language Integrated Queries (LINQ).Quanto mais você utilizar a Expressão lambda, mais você verá sua potência e flexibilidade. Legenda Iniciante Intermediário Avançado 18 Miscelânea SQLite - o pequeno notável A maioria dos bancos de dados hoje em dia roda no sistema cliente/ servidor. Isso significa que o banco de dados fica como um serviço e toda vez que a aplicação necessita de dados, ela conecta com esse serviço e pega as informações. Isso também significa que você tem que instalar o Gerenciador, configurar conexões, hostnames, portas e 21 tudo mais. Delphi Dicas Como instalar o pacote de componente Decision Cube no Delphi 2007 Pegando a versão do Firebird que está rodando no servidor Descobrir o nome da tabela no ClientDataSet Desenhar uma linha sobre os registros do DBgrid Habilitar e desbilitar botões no form de forma genérica ASP.NET Rotina para conversor de valores por extenso agosto

4 Bem-vindo Olá caros associados, é com muita alegria que eu digo, sejam bemvindos, bem-vindos à nova fase que nos The Club estamos vivendo, acredito que tudo na vida passa por fases, e a fase que acabamos de entrar é de inovações e crescimento. Com muita energia e entusiasmo toda uma reestruturação está sendo feita, com o principal objetivo de oferecer um conteúdo técnico da melhor qualidade e um suporte ágil. Claro que não é possível fazer uma revolução do dia para a noite, espero que todos entendam, mas acredito que todos perceberão a novas mudanças que virão por ai. E para começar, é de roupa nova que entrego a vocês a edição de Nº 167 do The Club Megazine, agora organizada em seções, sendo elas seção Delphi,.Net, Miscelâneas aberta para assuntos como banco de dados, metodologias de programação entre outras novidades, e além da já conhecida Dicas e Truque, criamos mais uma novidade, a seção Dicas.Net. Nesta ponto da leitura vendo a criação de seções específicas em.net o leitor deve estar se perguntando se o The Club está perdendo o interesse em Delphi, a resposta é não, apenas estamos abrindo mais espaço para outras tecnologias também de interesse de muitos associados, e mantendo o compromisso de inovação. Neste mês passamos a contar com novos colaboradores, e a volta de antigos amigos como Victory Fernandes que neste mês escreve sobre o uso de leitores de gabaritos e a sua integração com aplicações Delphi. E vendo a necessidade de muitos programadores iniciantes, tive a iniciativa de escrever um artigo com conceitos básico de como criar uma aplicação usando Delphi 2007, dbexpress e o Banco de dados Firebird. Temos Fabiano Belmont que em seu primeiro artigo para nossa revista escreve sobre Expressões Lambda, mostrando mais um pouco do potencial da linguagem C# no framework 3.5. Na seção Miscelâneas Luiz Alexandre Oliveira traz o artigo sobre o compacto banco de dados SQLite, com toda sua simplicidade, leveza e aplicabilidade. Verá também na coluna de nosso antigo colaborador Mauro Sant Anna, uma interessante matéria sobre a pirataria e como empresas estão se adaptando ao longo dos anos para evitar este mal. Av. Profº Celso Ferreira da Silva, 190 Jd. Europa - Avaré - SP - CEP Informações: (14) Suporte: (14) Internet Cadastro: Suporte: Informações: Skype Cadastro: theclub_cadastro Skype Suporte: theclub_linha1 theclub_linha2 Copyright The Club Megazine 2008 Diretor Técnico Marco César Silva Diagramação e Arte Vitor M. Rodrigues Revisão Marcos César Silva Colunistas Alessandro Ferreira Fabiano Belmonte Fellipe Capolupo Luís Alexandre de Oliveira Marcos César Silva Mauro Sant Anna Victory Fernandes Impressão e acabamento: GRILL - Gráfica e Editora Rua São Paulo, nº 447 Cep: Taquarituba-SP Tel. (14) Reprodução A utilização, reprodução, apropriação, armazenamento em banco de dados, sob qualquer forma ou meio, de textos, fotos e outras criações intelectuais em cada publicação da revista The Club Megazine são terminantemente proibidos sem autorização escrita dos titulares dos direitos autorais. Desejo a todos uma boa leitura e boa sorte a todos nós. Marcos Césa Silva - Editor Chefe Delphi é marca registrada da Borland International, as demais marcas citadas são registradas pelos seus respectivos proprietários. 04 agosto 2008

5 Coluna Mauro Sant Anna O Fim da Pirataria? Copiar um software sem remuneração às pessoas e empresas que o criaram é algo que todo fabricante de software teme. Evidentemente existem proteções legais, como a Lei de Software de 1991 antes de 1991 *não* era crime copiar software no Brasil. No entanto, as proteções legais são de eficácia limitada, especialmente contra usuários domésticos. Por causa disto, muitas empresas adotaram medidas técnicas de proteção contra cópia para tentar impedir a distribuição indiscriminada do seu software. Por exemplo, os DVDs feitos para a console de jogo XBOX da Microsoft são especiais e só tocam em um drive modificado. Por outro lado, os piratas sempre apareciam com contra-medidas que permitiam a cópia apesar dos bloqueios. No caso do Xbox o destravamento é feito instalando-se uma placa com um circuito dentro da console. Desta forma, durante anos os fabricantes de software e os piratas travaram uma verdadeira guerra de medidas, contra-medidas e contra-contra-medidas. Por exemplo, a Microsoft constantemente modifica o circuito do Xbox de forma a fazer com que so circuitos de destravamento deixem de funcionar. No caso de softwares para microcomputadores, ainda na década de oitenta, apareceram truques visando impedir a cópia de disquetes. Um deles previa até mesmo danificar o disquete com um furo feito por um laser! Depois apareceram os dispositivos de hardware, verdadeiras chaves ( dongles em inglês), ligados inicialmente nas portas de impressora e mais recentemente nas portas USB. O software exigia a presença destas chaves para poder rodar. Ou seja, o software até poderia ser facilmente copiado, mas não era possível copiar o dispositivo físico que o software exigia. Quando a mídia padrão passou a ser discos óticos (CD ou DVD), também surgiram truques para impedir a cópia deste tipo dos discos. Todos estes métodos tinham características em comum: oneravam a produção do software, irritavam os usuários legítimos e sempre eram quebrados pelos piratas. Dada a eficácia limitada dessas medidas, a maioria dos fabricantes de software simplesmente abandonou a proteção contra cópia e assumiu a posição de que a pirataria era parte do preço de se fazer negócio. Os piratas ganharam. Hoje, no entanto a Internet abre novas possibilidades no sentido de reduzir ou até mesmo acabar completamente com a pirataria. Em primeiro lugar, vários produtos podem rodar em uns ambientes hospedados e acessíveis através de navegador Internet. Este acesso exigiria cadastro e pagamento prévio utilizando senhas e criptografia para garantir a inviolabilidade, de forma semelhante a usadas pelos bancos em seus aplicativos de home banking. Por exemplo, tanto a Microsoft como o Google vendem serviços de hospedagem de correio eletrônico corporativo, que dispensam a compra, instalação e manutenção de um servidor de correio. Uma segunda possibilidade é um esquema misto, onde o software roda essencialmente na estação, mas recorre a um servidor para alguma função importante. Por exemplo, um software de contabilidade poderia ter toda a entrada de dados remota, mas armazenaria os dados e rodaria relatórios em um servidor central. As alternativas acima exigem acesso a Internet ou todo o tempo ou pelo menos uma boa parte do tempo. E se o acesso à Internet não for confiável? Bem, isso está cada vez mais raro e tende a desaparecer. Mas, mesmo neste caso, o software poderia consultar um servidor central periodicamente apenas para pegar uma espécie de código de autorização ou atualizações. Embora ainda suscetível a ataques, caso as atualizações sejam bastante freqüentes por exemplo, uma vez por semana os piratas terão que trabalhar rapidamente para quebrar e distribuir a nova versão, algo que pode se revelar simplesmente impraticável. Na verdade, já estamos vendo as primeiras implementações deste tipo de tecnologia. A ativação através da Internet presente em alguns produtos da Microsoft como Windows e Office é ume pequeno exemplo do que está por vir. Outro bom exemplo é o XBox Live, um serviço pago no qual usuários da console de jogos XBox pode não apenas jogar com outras pessoas, mas também adquirir novos jogos ou extensões a jogos já existentes. Diga-se de passagem, o serviço não funciona se a sua console tiver sido desbloqueada. A distribuição de software através da internet tem também o benefício de eliminar intermediários, fazendo que uma parcela maior do dinheiro pago pelo usuário chegue ao fabricante. Ela também acabará com o argumento de que o software tem que ser mais caro para compensar os usuários que não pagam. Com todo mundo pagando, o preço individual deve cair, o que ainda tira mais um incentivo da pirataria. Sobre o autor Mauro Sant Anna nunca trabalhou na Microsoft, mas conhece bastante a empresa, já que é MVP e Regional Director of the Year. Ele coordena os cursos na M. A. S. Informática (www.mas.com.br) e bloga em Português em e em inglês em agosto

6 Delphi Leitura de Gabaritos Uma abordagem prática Seguindo a linha de publicações voltadas à integração de sistemas computacionais a dispositivos externos diversos, apresentamos neste artigo uma abordagem prática para desenvolvimento de aplicativos integrados a leitores de gabaritos, neste caso específico, leitores da série LOHS da HS Informática (www. hsinformatica.com.br). Leitores de Gabaritos OMR - Conceitos gerais Os leitores de gabaritos são utilizados para a rápida correção de avaliações objetivas em escolas e concursos que utilizem a folha de gabarito padrão, porém essas não são as únicas utilidades dos leitores OMR. Por possuírem boa precisão e velocidade, são utilizados também nas áreas de pesquisas de opinião, indústria (apontamentos e controle de qualidade, por exemplo), loterias e outros jogos, área de saúde (para controle de medicamentos, visitas ao paciente etc) e negócios em geral, para a leitura de informações de forma mais ágil e confiável, reduzindo a margem de erro de leitura na contagem das respostas. Tais equipamentos utilizam processo reflexivo para detectar o preenchimento das marcas. Nesse processo um feixe de luz é emitido e caso a opção não esteja assinalada o feixe será reflexivo, e caso esteja marcada, o feixe de luz não será recebido de volta, conforme Figura 1. Dessa forma podemos dizer que caso não haja resposta marcada, o retorno binário é 1, caso contrário é 0. Essa é uma informação importante, pois a usaremos para interpretar a leitura feita pela LOHS de um gabarito. Figura 01: Leitura dos gabaritos por processo reflexivo O equipamento LOHS Nos testes realizados foi utilizado o modelo LOHS40mi Manual conforme mostrado na Figura 2, que faz a leitura de formulários com largura fixa de tamanho 3 ¼ (82,5 mm),este modelo permite dispor da tecnologia de leitura óptica com reduzido investimento, e constitui um equipamento robusto, compacto e simples de operar, Figura 02: Equipamento LOHS40mi Manual utilizado nos testes A conexão do LOHS com o computador pode ser feita de duas formas através da porta Serial (RS232), ou da porta USB, sendo a opção de porta USB disponível apenas para os modelos LOHS4mi, LOHS40mi, LOHS4mi-CEF. Durante os testes, o LOHS foi utilizada a comunicação através da porta USB do computador. Para tal, fez-se necessária a instalação de drivers disponibilizados pelo fabricante e documentados no manual do mesmo. Esses drivers criam outra porta serial no seu computador, chamada de Porta Serial Virtual(Virtual Com Port VCP). A configuração da porta deverá ser a seguinte: 2 stop bits; 1 start bit; 8 bits/caracter; Sem paridade; Full duplex; Velocidade: 9600 bps; Após a adição da nova porta, o LOHS está pronto para ser reconhecido e conectado no computador. Para maiores detalhes sobre os drivers, procedimento de instalação e configuração consulte o manual do equipamento, disponível no site do fabricante. Encontra-se também disponível no site do fabricante um software de teste e configuração conforme mostrado na Figura 3. Esse aplicativo é o primeiro passo para garantir que o equipamento está pronto para ser utilizado. Figura3: Tela principal do software gratuito de teste e configuração do equipamento fornecido pelo fabricante. Depois de instalado, podemos dar inicio aos nossos testes. Selecione a porta serial a qual o LOHS está conectado, após a seleção da porta, digite o número de linhas do seu gabarito. Para tal, é necessária uma breve explicação sobre o número de linhas de um gabarito, chamados também de 06 agosto 2008

7 Clocks. Os clocks são um dos conceitos mais importantes para a leitura óptica, pois é através dele que o leitor diferencia uma linha da outra, são marcações pretas alinhadas à lateral do gabarito. Um clock equivale a uma linha. A seguir um exemplo de um gabarito com 35 linhas, ou seja, 35 clocks, conforme mostrado na Figura 4. Fgura5: Leitura de um gabarito a partir do software de testes. Figura4: Clocks de um gabarito. Uma vez configurada a porta serial e digitado o número de linhas no aplicativo de teste, devemos clicar no botão abre serial. Esse comando configura o seu computador com os parâmetros de comunicação necessários ao LOHS, acessa a porta serial e inicia a comunicação com o equipamento. Com a porta serial configurada e aberta, clique no botão Ler e insira um formulário no equipamento. A imagem da leitura do gabarito é exibida no espaço ao lado dos comandos conforme mostrado na Figura 5. Repita a leitura quantas vezes for necessário para testar o equipamento e confira se o resultado dos valores lidos apresentados no aplicativo correspondem com a marcação feita no gabarito. Antes de sair do aplicativo e teste, clique em Fecha Serial para restaurar as configurações padrão da porta e libera-la para que outros dispositivos possam usá-la. Figura6: Aplicativo demo de uso da LOHS.dll em Delphi. Além do software de teste, encontra-se disponível no site do fabricante diversos outros softwares que facilitam a comunicação e a leitura de informações dos gabaritos, incluindo a biblioteca LOHS. dll que permite a integração com o equipamento a partir do seu aplicativo desenvolvido em qualquer plataforma Win32. A biblioteca LOHS.dll O acesso ao download do manual da LOHS. dll só é possível através de senha fornecida pelo fabricante, e além do manual utiliza-se como referência o aplicativo demo de uso da dll também disponível para download, conforme mostrado na Figura 06. Neste aplicativo é possível se verificar as chamadas às funções disponibilizadas na LOHS.dll, conforme mostrado a seguir no código fonte 01: agosto

8 function AbreSerial( porta : char; bps : longint; paridade : char; databits : char; stopbits : char; cmodelo : Byte; cnumlinhasfrente : Byte; cnumcolunasfrente : Byte; cnumlinhasverso : Byte; cnumcolunasverso : Byte; cnumcodbarras : Byte; LeituraDupla : Boolean) : ShortInt; stdcall; external.\lohs.dll ; De das informações da tabela anterior que lista os principais bytes de um quadro de dados, veremos agora como o quadro é formatado, sua sintaxe. A estrutura de formação dos quadros é sempre igual, variando apenas o tamanho total do quadro e o tipo de CRC utilizado, salvo a resposta de leitura de cartão. O quadro é formatado da seguinte maneira: Utilizando CRC o <STX> <TAM> <ID> <TEXTO> <ETX> <CRC1> <CRC2> Utilizando XOR o <STX> <TAM> <ID> <TEXTO> <ETX> <XOR1> function LerCartao() : TResultBiblioteca; stdcall; external.\lohs.dll ; function LerCartaoParametro() : TResultBiblioteca; stdcall; external.\lohs.dll ; function FechaSerial() : ShortInt; stdcall; external.\lohs.dll ; function Aceita() : Boolean; stdcall; external.\ LOHS.DLL ; procedure Alarme; stdcall; external.\lohs.dll ; procedure DesligaMotor; stdcall; external.\lohs. DLL ; código fonte 01 Um problema encontrado pela maioria dos desenvolvedores ao utilizar este equipamento é que a alternativa para comunicação utilizando a dll do próprio fabricante do equipamento não é gratuita! Ou seja, o fabricante além de vender o equipamento, vende também a dll de acesso ao equipamento que é protegida por hardlocks Proteq ou Hasp. É um contra-senso, mas é como se a Bematech além de vender impressoras fiscais ECF, cobrasse também pela venda das dlls de acesso ao seu próprio equipamento. Para um cliente que adquira duas máquinas e deseje utilizar o seu software que se integra ao equipamento através da LOHS.dll, o cliente precisará adquirir 2 licenças de uso da dll, caso contrário não conseguirá utilizar os 2 equipamentos ao mesmo tempo. Infelizmente este tipo de política de licenças onera demais as soluções de software dos desenvolvedores, e os mesmos acabam buscando soluções alternativas que possibilitem maior flexibilidade e autonomia. Protocolo de comunicação com o LOHS Uma alternativa ao uso da biblioteca LOHS.dll, que dispensa a necessidade da compra de licenças, é utilizar a comunicação direta com o equipamento através do seu protocolo de comunicação. Desta forma é possível ter total autonomia sobre o processo de comunicação com o equipamento independente de soluções de terceiros, de forma que ao aconselhar a sua solução, tudo o que o cliente precisará fazer é adquirir o equipamento e nada mais, enquanto para solução de outros desenvolvedores, cada novo cliente terá ainda de pagar para adquirir a dll. Esse protocolo em formato texto deve ser rigidamente seguido para que a comunicação entre o equipamento e o computador acontece de forma correta, conforme a lista de principais comandos apresentada na Tabela 1. Para um mesmo quadro de dados é possível se obter uma das duas respostas anteriores, a depender da configuração do tipo de CRC utilizado. Com base na estrutura geral dos quadros apresentada é possível enviar comandos ao equipamento e receber o retornos. A seguir alguns comandos são apresentados. Comando Beep Esse comando faz com que o LOHS soe um beep ao recebê-lo. Formato do Comando Utilizando CRC o <STX> <06> <03> <ETX> <CRC1> <CRC2> Formato do Comando Utilizando XOR o <STX> <05> <03> <ETX> <XOR1> O LOHS responderá esse comando com ACK, caso seja enviado com sucesso, ou NACK, caso possua algum erro. Comando Habilita Leitura Comanda o LOHS a realizar uma leitura de um cartão que deverá ser introduzido pelo operador. Abreviação Nome Descrição Valor Byte STX Star of Text Marca o início do quadro de dados 02H ETX End of Text Marca o fim do quadro de dados 03H ACK Acknowledgement Indica o recebimento de um quadro SEM 06H erro NACK Negative Acknowledgement Indica o recebimento de um quadro COM erro 15H CRC Cyclic Redundancy Check O CRC16 é um verificador constituído de 2 Bytes, gerado através de um polinômio. Utilizado para testar a consistência dos dados recebidos em um quadro. XDR Exclusive OR Também utilizado para teste de consistência do quadro e é montado através da operação XOR Tabela1: Comandos LOHS Word Resultado do Cálculo do polinômio (2 Bytes) Byte Resultado da operação XOR 08 agosto 2008

9 Formato do Comando Utilizando CRC o <STX> <06> <01> <ETX> <CRC1> <CRC2> Formato do Comando Utilizando XOR o <STX> <05> <01> <ETX> <XOR1> O LOHS responderá esse comando com ACK, caso seja enviado com sucesso, ou NACK, caso possua algum erro. Após a leitura do cartão, um quadro é enviado automaticamente do LOHS para o computador, contendo: 1. Quadro de dados do cartão, caso a leitura seja feita corretamente. 2. Quadro de Estado de Leitura Errônea, caso a leitura seja feita incorretamente. Se o quadro recebido for o de dados do cartão, o mesmo deverá ser tratado pelo computador. O formato do quadro é o seguinte: Formato do Quadro Utilizando CRC o <STX> <TAM> <F1> <TEXTO> <ETX> <CRC1> <CRC2> Formato do Quadro Utilizando XOR o <STX> <TAM> <F1> <TEXTO> <ETX> <XOR1> No caso de haver erro de leitura, o Quadro de Estado de Leitura Errônea é recebido, o quadro segue o seguinte formato: Formato do Quadro Utilizando CRC o <STX> <07> <F0> <ESTADO> <ETX> <CRC1> <CRC2> Formato do Quadro Utilizando XOR o <STX> < 06> < F0> < ESTADO > <ETX> <XOR1> O byte ESTADO carrega consigo a descrição do erro na leitura. Para identificar qual o erro, ou os erros, devemos verificar o byte ESTADO bit a bit. Os valores dos bits são conforme Tabela 2. Bit 0 Erro de RAM 1 Uso futuro Informação 2 Leitora foi ativada mas não foi passado cartão 3 Leitura inconsistente (em caso de múltipla leitura) 4 Número de clocks lidos diferente do definido pelo comando. Define tamanho do buffer 5 Uso futuro 6 Uso futuro 7 Uso futuro Tabela2: Bits de Leitura Errônea Para lista completa de comandos e suas respectivas descrições, consulte o manual de programação do equipamento. Exemplo em Delphi de integração com equipamento LOHS Com um pouco de conhecimento em Delphi e com base na estrutura do protocolo do equipamento é possível implementar funções que formatem mensagens a serem enviadas, tratem e interpretem as mensagens recebidas. A seguir apresentamos a implementação da função de Beep descrita anteriormente, onde o primeiro passo é criar um novo projeto e adicionar o seguinte código ao evento OnClick de um botão. Ver código fonte 02 No código, uma função chamada Beep é chamada e o seu retorno, do tipo String, é atribuído à variável Comando. A seguir é apresentado o código executado pela função Beep. Ver código fonte 03 A função Beep cria a estrutura básica do comando, calcula e concatena à String resultante, os valores dos bytes de CRC, conforme descrito no protocolo de comunicação do equipamento. O resultado é então transmitido através da função Envia_Comando que faz o acesso à porta serial através do componente TCommPortDriver, conforme código apresentado a seguir: Ver código fonte 04 procedure TForm1.BtnBeepClick(Sender: TObject); var comando: String; comando := Beep; //Chama funcao Beep da Unit LOHS_OMR Envia_Comando(Comando, BEEP ); //Envia comando para porta serial código fonte 02 // Função: faz soar o beep interno do equipamento. Function Beep: String; Comando := stx + #06 + #03 + etx; //Cria estrutura básica do comando Calculo_CRC16(comando, MyCRC); //Calcula o CRC do comando result := comando + chr(hi(mycrc)) + chr(lo(mycrc)); código fonte 03 //Funcao genérica utilizada para enviar o comando pela porta serial e escrever no memo. Function TForm1.Envia_Comando(Comando, DescritivoComando: String): Boolean; result := false; try //tenta enviar comando pela serial Result := CommPortDriver1.SendString(comando); except memo1.lines.add(descritivocomando + - Erro ao enviar comando ); if result then //se enviar corretamente memo1.lines.add(descritivocomando + - Comando Enviado com Sucesso ); else //Senão, acusa na tela o erro ocorrido memo1.lines.add(descritivocomando + - Erro ao enviar comando ); código fonte 04 agosto

10 Além do comando de Beep podem ser implementados os comandos conforme lista a seguir. A implementação dos demais comandos segue a mesma sistemática, e permite a implementação do tratamento de todos os comandos disponíveis no manual do fabricante. Ver código fonte 05 Com base nos códigos apresentados anteriormente e na documentação completa fornecida pelo fabricante foi implementado um demo em Delphi, conforme apresentado na Figura XX, disponível para download em downloads/lohs_omr/projeto_lohs_omr_v1.zip, e que implementa todos os recursos necessários à configuração e comunicação com o equipamento LOHS, permitindo que sua aplicação tenha controle completo sobre o equipamento sem a necessidade do uso de soluções de terceiros, reduzindo custos e dando maior flexibilidade e autonomia ao seu aplicativo. Function Habilita_Leitura: String; Function Reseta: String; Function Beep: String; Function Ativa_Teste_Comunicacao: String; Function Desativa_Teste_Comunicacao: String; Function Nro_De_Linhas: String; Function Verificador(vVerificador: String): String; Function Nro_De_Clocks(vNroClocks: string): String; Function Mascara_De_Leitura(vMascara1, vmascara2: char): String; Function Tipo_Controle_De_Fluxo(vTipo_De_Fluxo: char): String; Function Nro_De_Leituras(vNro_De_Leituras: String): String; Function trata_informacao_texto(buffer: String; var Resposta: TStrings): Boolean; Function Transmite_Buffer_i(Nro_Buffer: char): String; Function Exibe_Display(Mensagem:String) :String; Function Transmite_Versao: String; código fonte 05 Maiores informações podem ser obtidas no site Conclusões Leitores óticos para automação do processo de leitura de gabaritos são uma necessidade nos dias de hoje, onde grande parte dos processos de correção e leitura de provas ou gabaritos precisa ser feita com agilidade e precisão. Entretanto nem sempre temos à mão soluções simples e baratas de integração entre software e o equipamento, tendo a necessidade de depender de dlls proprietárias ou licenças onerosas, amarrando o usuário ao fabricante do equipamento. Neste artigo apresentamos solução, que permite redução de custos, e total autonomia para o desenvolvedor, que passa a ter controle completo do processo de comunicação entre seu software e o equipamento, uma vez que a implementação é baseada no protocolo de comunicação de dados do fabricante, possibilitando mudanças futuras no processo de comunicação, aumentando assim o diferencial competitivo do seu software frente aos concorrentes. Links Tecnologia da Informação e Conhecimento. Figura7: Aplicativo demo em Delphi demonstrando a implementação de todos os comandos do protocolo. Sobre os autores Victory Fernandes é Engenheiro Mestrando em Redes de Computadores, e desenvolvedor sócio da TKS Software - Soluções de Automação e Softwares Dedicados. Pode ser contatado em ou através dos sites www. igara.com.br/victory Fellipe Capolupo é estudante de Engenharia Elétrica e desenvolvedor da TKS Software - Soluções de Automação e Softwares Dedicados. Pode ser contatado em 10 agosto 2008

11 Delphi 2007 Utilizando DBExpress 4 e Firebird em uma aplicação Win32 Criando uma Agenda de Telefones Quando vamos escrever um artigo sempre buscamos temas inovadores e inéditos, mas ai surge um dilema, não é todo dia que surgem grandes novidades, e muitas vezes para programadores de primeira viagem, o que eles precisam é o bom arroz com feijão, assim este artigo tem como objetivos passar os conceitos básicos para iniciantes no Delphi de como fazer uma pequena aplicação usando técnicas simples de criação, conexão e manutenção de dados, e para os desenvolvedores mais experientes que ainda não tiveram contato com a ferramenta, também é valida uma leitura para se familiarizarem com a IDE do Delphi 2007 e reforçarem o conhecimento. 1. Criação do Banco de dados Criaremos uma simples agenda telefônica, armazenando os contatos e seus respectivos números de telefones. Assim teremos duas tabelas a CONTATOS a e TELEFONES, veja na figura 1 o diagrama de ER (Entidade Relacionamento). Alem das duas tabelas criaremos o relacionamento entre as duas tabelas com a condição de deleção em cascata (delete cascade), para quando o contato for excluído, os telefones relacionados do contato também seja apagados. Além destes um generator será criado para incrementar o numero seqüencial da chave primária. Assim para criação do banco de dados execute o script a seguir em qualquer ferramenta de manutenção do banco firebird, no meu caso eu uso o IBExpert Personal Edition (no final do artigo encontrará os link das ferramentas disponíveis citadas ). Figura 1 - Diagrama de ER (Entidade Relacionamento) /*Script de criação do banco*/ SET SQL DIALECT 3; CREATE DATABASE LOCALHOST:E:\THECLUB\ Artigo\IntroducaoD2007\ CONTATOS.FDB USER SYSDBA PASSWORD masterkey PAGE_SIZE = 4096; /*Script de criação da tabela contatos */ CREATE TABLE CONTATOS ( ID_CONTATO INTEGER NOT NULL, NOME VARCHAR(80), APELIDO VARCHAR(20), ENDERECO VARCHAR(80), CIDADE VARCHAR(80), UF CHAR(2), PRIMARY KEY (ID_ CONTATO) ); /*Script de criação da tabela telefones*/ CREATE TABLE TELEFONES ( ID_CONTATO INTEGER NOT NULL, ITEM INTEGER NOT NULL, NUMERO VARCHAR(13), TIPO VARCHAR(20), PRIMARY KEY (ID_ CONTATO, ITEM) ); /*Script de criação do relacionamento entre tabelas telefones e contatos*/ alter table TELEFONES agosto

12 add constraint FK_ TELEFONES_CONTATOS foreign key (ID_CONTATO) references CONTATOS(ID_ CONTATO) on delete CASCADE; /*Script de criação do Generator da criação do código de Contatos*/ CREATE GENERATOR GEN_ID_ CONTATO; 2. Criando a aplicação Com nosso banco de contatos criado iremos criar nossa aplicação, para isto no Delphi 2007 vá em File -> New -> VCL Forms Application Delphi for Win 32, e salvaremos a unit uncontatos.pas e o projeto como Contatos.dproj, no form altere as seguintes propriedades: Figura 2 New Items Caption = Agenda Telefônica Name = frmcontatos Iremos agora criar um Datamodule para criamos a conexão e componentes de acesso a dados, desta forma em New -> Others.. em New Items (Figura 2) na categoria Delphi Files, e salve-o como undm.pas e sua propriedade Name = DMContatos A conexão Agora selecione o componente SQLConnection na paleta dbexpress e adicione-o no Datamodule, e altere sua propriedade Name para sqlconexao. Com um duplo clique no componente iremos abrir o editos de propriedades de conexão, clique em Add Connection para criamos uma nova conexão, em Driver Name selecione Interbase e em Connection Name CONTATOS, confirme e em Connection Settings basta apenas informar o caminho do banco de dados na propriedade Database (Figura 2), clique em Ok e pronto a conexão está feita, veja na figura 3 as propriedades preenchidas no componente, além é claro da propriedade params: Altere mais tres propriedades, uma é o LoginPrompt = False, para que ao ativar a conexão seja confirmado usuário e senha, e VendorLib = fbclient.dll, aonde iremos usar a DLL cliente do firebird, e deixe a conexão ative com a propriedade Active = True (Figura 3). Figura 3 - Editor de propriedades de conexão 2.2. Componentes de consulta Incluiremos agora os componentes de consulta ao banco, primeiro um SQLDataset para a consulta de contatos que chamaremos sdscontatos, e um outro para exibir os telefones do contato com o nome sdstelefones, ambos devem ter a propriedade SQLConnection apontando para o sqlconexao. Este dois componentes estarão ligados de maneira a criar um relacionamento mestre detalhe, para isto adicione um terceiro componente, o DataSource da paleta DataAccess que receberá o nome de dscontatos. Este componente Datasource deve estar com a propriedade Dataset Ligada ao sds- Contatos, e o componente de sdstelefones com a propriedade Datasource ligada dscontatos. Figura 3 propriedades do sqlconexao 12 agosto 2008

13 Iremos agora na propriedade CommandText, inserir a instrução SQL de consulta ao contatos como pode ver na Figura 4: No caso do sdstelefone receberá na propriedade CommandText, a seguinte instrução: select * from TELEFONES where ID_CONTATO = :ID_CONTATO Observe que para os Telefones incluímos uma cláusula where onde o parâmetro :ID_CONTATO através do dscontatos, faz o filtro do relacionamento mestre detalhe. Agora adicione os TFields em ambos componentes sqldataset, para isto de um duplo clique no componente para abrir o Fields Editor e adicione os campos (Add Fields.. Ctrl + A), após incluir os campo selecione o campo chave primária, e no ObjectInspector altere as propriedades do ProviderFlags pfinupdate, pfinwhere e pfinkey para True, no caso dos demais campos deixe a apenas a propriedade pfinupdate como True. Este procedimento deve ser feito para os dois componente SqlDataSet. Apenas para testar as configurações destes componentes ative o sdscontatos e depois o sdstelefones alterando a propriedade Active para True, após o teste e verificando que as ligações e instruções estão corretas volte a propriedade para false, o que é o padrão neste caso. Figura 4 Instrução SQL de consulta dos contatos 2.3. Trabalhando com Clientdatasets Neste ponto adicionaremos os componentes Clientdataset que ira trabalhar desconectados do banco, assim coloque no datamodule dois Clientdataset e um DataSetProvider que se encontram na paleta DataAccess, veja abaixo as propriedades alteradas de cada um dos três componentes: DataSetProvider Name = dspcontatos DataSet = sdscontatos ClientDataSet de Contatos Name = cdscontatos ProviderName = dspcontatos Adicione os Campos no Fields Editor e configure os Provider flags da mesma forma que foi feito para os componentes SqlDataset, veja que além dos campos já existentes um campo novo é criado, este campo que no exemplo foi criado automaticamente com o nome de cdscontatossdstelefones é um TDataSetField, ou seja é um campo responsável pelo relacionamento entre os dois clientdatasets, após ligar a propriedade DataSetField ao cdsconta- Figura 5 - Os componente no Datamodule tossdstelefones, adicione os campos e configure-os da mesma forma feita anteriormente ao outros componente, veja na figura 5 os componente no Datamodule. ClientDataSet de Telefones Name = cdstelefones DataSetField = cdscontatossdstelefones 2.4. A Interface Voltaremos ao form frmcontatos para Desenhar a tela de manutenção dos dados dos contatos e dos telefones, para que os componente dataware possam enxergar os componentes do datamodule, adicione o datamodule na uses do form frmcontatos (Alt + F11). Veja abaixo os principais componentes inseridos e suas propriedades alteradas, veja que para a entrada dos telefones uso um Dbgrid. Na Figura 6 poderá ver como deve ficar o layout da tela, sendo apenas uma sugestão, onde as cores, botões e imagens, podem dar um visual muito agradável para aplicação, isto vai da criatividade do programador na hora de fazer esta perfumaria. DataSource1 DataSet = DMContatos.cdsContatos DataSource2 DataSet = DMContatos.cdsTelefones DBEdit1 DataField = ID_ CONTATO DataSource = DataSource1 agosto

14 DBEdit2 DataField = NOME DataSource = DataSource1 DBEdit3 DataField = APELIDO DataSource = DataSource1 DBEdit4 DataField = ENDERECO DataSource = DataSource1 DBEdit5 DataField = CIDADE DataSource = DataSource1 DBEdit6 DataField = UF DataSource = DataSource1 DBNavigator1 DataSource = DataSource1 DBNavigator2 VisibleButtons = [nbinsert, nbdelete, nbpost, nbcancel] DataSource = DataSource2 DBGrid1 DataSource = DataSource A Programação Ate este momento apenas adicionamos componentes, alteramos e ligamos propriedades, agora chegou a hora de uma pouco mais de ação, iremos digitar algumas linhas de código responsáveis por gerar código, gravar informações e confirmar atualizações e exclusões. Assim voltando novamente no datamodule DMContatos, incluiremos no datamodule função AutoInc já bastante conhecida de programadores mais experientes, esta Figura 6 Tela de Contatos função tem por objetivo informar o nome de um generator e retornar seu novo valor, veja o código da função abaixo: function TdmBase. AutoInc(Generator: string; Conexao: TSQLConnection): Integer; var SQLGen: TSQLDataSet; SQLGen := TSQLDataSet. Create(Application); try SQLGen.SQLConnection := Conexao; SQLGen.CommandText := Select Cast(Gen_Id( + Generator +,1) as Integer) as Codigo From Rdb$Database ; SQLGen.Open; Result := SQLGen. FieldByName( Codigo ). AsInteger; SQLGen.Close; finally SQLGen.Free; No evento BeforePost do cdscontatos iremos usar a função AutoInc para atribuir para o campo ID_CONTATO o novo valor do generator GEN_ ID_CONTATO. Para isto selecione e componente cdscontatos e na aba Events do object Inspector, de um duplo clique no evento BeforePost e inclua o código abaixo: procedure TDMContatos. cdscontatosbeforepost (DataSet: TDataSet); if cdscontatos.state in dsinsert then cdscontatosid_ CONTATO.AsInteger := AutoInc( GEN_ID_ CONTATO,sqlConexao); No caso da tabela Telefones que possui uma chave primaria composta, o campo ID_CONTATO é atribuído automaticamente através pelo relacionamento mestre detalhe entre os ClientDataset, devido mantermos o mesmo nome em ambas tabelas relacionadas. Para o segundo campo da chave, o 14 agosto 2008

15 campo ITEM apenas iremos atribuir o contador do numero de telefones de um contato, para simplificar invés de ficarmos usando contadores, apenas ire verificar o numero de registros de telefones, e atribuir este valor somando + 1 para o campo no evento BeforePost do cdstelefones. procedure TDMContatos. cdstelefonesbeforepost (DataSet: TDataSet); if cdstelefones.state in [dsinsert] then cdstelefonesitem. AsInteger := cdstelefones. RecordCount; Com tudo isto falta um ultimo código que irá gravar todas as alterações no banco, o ApplyUpdates assim no evento AfterPost do cdscontatos, adicione o código: procedure TDMContatos. cdscontatosafterpost (DataSet: TDataSet); cdscontatos. ApplyUpdates(0); Uma ultima sugestão: para não repetir o código do ApplyUpdates na deleção, e também na para as atualizações e exclusões de telefones, ligue o evento AfterDelete do cdscontatos ao evento já criado dscontatosafterpost, faça o mesmo para AfterDelete e AfterPost do cdstelefones. Pronto, temos um simples cadastro de contatos e telefones (Figura 7). Conclusão Como foi dito no inicio este artigo teve por objetivo, introduzir conceitos básicos para um iniciante na arte da programação, proporcionando um programador de primeira viagem criar uma aplicação simples e útil. Agora para os mais experientes posso provar que tirando a interface da IDE Figura 7 A agenda de contatos do Delphi 2007, onde a disposição de componentes e recursos mudou completamente, no que diz respeito à programação, tudo continua praticamente igual ao que era no Delphi 7. Despeço-me com um grande abraço a todos, e ate o mês que vem. Links enix&s= :25325&page=ibp_download Sobre o autor Marcos César Silva, Consultor de Sistemas na consultoria de sistemas DataSmart e Consultor Técnico do The Club, Bacharel em Ciência da Computação, MBA em Gestão Empresarial, Certificações MCAD (Microsoft Certified Application Developer) e MCSD.NET (Microsoft Certified Solution Developer.NET) agosto

16 Capturando Imagem e Vídeo de sua WebCam Recentemente fui questionado por um amigo relativamente leigo em informática como poderia gravar as imagens de sua webcam em seu computador, sugeri a ele um dos muitos aplicativos disponíveis que tem este tipo de recurso, depois dessa nossa conversa surgiu uma pergunta que veio curiosidade nata da maioria dos programadores, e se um dos meus clientes solicitasse este recurso no seu aplicativo? Isto poderia acontecer, este seria um recurso bastante útil, desde cadastros clientes de uma vídeo locadora, recepção de hotéis, ate sistemas mais simples de monitoramento para segurança. Assim comecei a pesquisa na imensidão da Internet, entre muito lixo eletrônico que encontrei pela frente, achei um componentinho freeware, bastante simples e eficiente o TCamera. Este componente junto do projeto de exemplo pode ser encontrado no link: www. theclub.com.br/revista/rev0808/pegawebcam.zip Instalando o TCamera Descompacte o arquivo TCamera.zip em um diretório qualquer de sua máquina, no Delphi em File Open abra o arquivo TWebCam.dpk, abrindo o pacote clique nos botões compile e Install, e em Tools Enviroment Options na abra Library Path adicione o caminho onde descompactou o componente. Feche o pacote, não precisa salva-lo, Simples não é?!!! Criando a Aplicação Vamos cria uma simples aplicação para conhecermos alguns dos recursos deste componente, assim no Delphi em File New clique em Application para criar uma nova aplicação, na unit1 insira o componente TCamera que se encontra na paleta Yves, que será responsável por capturar, exibir, gravar vídeo e imagem tudo em apenas um componente, um componente Image para exibir uma foto capturada, e três botõs, um para gravar o vídeo, outro para parar a gravação e um terceiro para capturar a foto. Veja na figura 1 a sugestão do layout do formulário. Veja na Figura 2 o exemplo do aplicativo filmando e na Figura 3 ele capturando a foto. Agora no form adicione o evento Onshow onde ativaremos o capturar da Imagem apenas atribuindo true para a propriedade Camera1.Actif como pode ver abaixo: 16 agosto 2008

17 Camera1 Image1 procedure TForm1. FormShow(Sender: TObject); try Camera1.Actif := True; except MessageDlg( Não foi possilve capturar a Imagem da WebCam!, mterror, [mbok], 0); Figura 1 No Botão captura foto iremos adicionar o seguinte código, aonde salvo a foto em formato bmp no diretório raiz usando a função CaptureImageDisque do componente, logo a seguir carrego a imagem no componente TImage. Figura 2 procedure TForm1. BitBtn1Click(Sender: TObject); Camera1.FichierImage := c:\foto.bmp ; Camera1. CaptureImageDisque; Image1.Picture. LoadFromFile( c:\foto. bmp ); Para iniciar a gravação da imagem usaremos a função CaptureVideoDisque, salvando o vídeo em formato avi também no diretório raiz: procedure TForm1. BitBtn2Click(Sender: TObject); Camera1.FichierVideo := c:\video.avi ; Figura 3 Camera1. CaptureVideoDisque; agosto

18 E para parar a gravação StopVideo, como pode ver a seguir: procedure TForm1. BitBtn3Click(Sender: TObject); Camera1.StopVideo; Agora para parar a captura da imagem apenas atribua False para Camera1.Actif, isto pode ser feito num clique de botão o no Destroy do próprio formulário: procedure TForm1. FormDestroy(Sender: TObject); Camera1.Actif := False; Conclusão Agora posso dormir tranqüilo, se um cliente quiser inventar moda de capturar imagens na sua aplicação, temos um recurso simples e prático, que pode ser implementado rapidamente. Ate mais e boa sorte com seus clientes. Sobre o autor Marcos César Silva, Consultor de Sistemas na consultoria de sistemas DataSmart e Consultor Técnico do The Club, Bacharel em Ciência da Computação, MBA em Gestão Empresarial, Certificações MCAD (Microsoft Certified Application Developer) e MCSD.NET (Microsoft Certified Solution Developer.NET) 18 agosto 2008

19 Lambda Expressions Expressão lambda foi adicionada ao Visual Basic 2008 e C# 3.0, com o objetivo de apoiar Language Integrated Queries (LINQ).Quanto mais você utilizar a Expressão lambda, mais você verá sua potência e flexibilidade. A lambda é uma grande inovação da linguagem, mas para você que está iniciando agora como desenvolvedor ou tem pouco tempo com a linguagem pode parecer bem complicado. Não desanime, pois quando você começar a conhecer mais sobre lambda irá entender o quanto ela pode ser útil para o seu dia a dia. class ShowClassDelegate delegate void MeuDelegate(); public void EiMetodo() MeuDelegate del = new MeuDelegate(ImprimeMensagem); del(); void ImprimeMensagem() Console.WriteLine( E ai!! ); código fonte 01 Métodos Anônimos Veja como fica com Métodos Anônimos Não poderia falar sobre expressão lambda sem falar de método anônimos que é uma das evoluções existentes no framework 2.0 lançado no final de Eles podem ser usados para passar um bloco de código para um delegate, de acordo com o parâmetro do delegate, também podem ser utilizados em lugares onde a criação de um método não é realmente necessária.vejamos abaixo dois exemplos, um utilizando delegate e outro utilizando métodos anônimos. Ver códigos fontes 01 e 02 Note que não precisamos escrever o método ImprimeMensagem, fazemos diretamente. No entanto, métodos anônimos tem uma desvantagem no que diz respeito à legibilidade. Ele modifica a escrita e o código, por vezes se torna realmente difícil de ler. Então, se tivermos realmente que fazer alguma coisa que seja fácil de ler, e também simples de usar, é aí que as expressões lambda trabalham a class ShowClassComAnonimos delegate void MeuDelegate(); public void EiMetodo() MeuDelegate delanonimo = delegate() Console.WriteLine( E ai!! ); ; delanonimo(); nosso favor. Por isso muitos dizem que as Expressão lambda são uma evolução natural dos Métodos Anônimos. Expressão lambda? O C# 2.0 introduziu o conceito de métodos código fonte 02 anônimos, que permitem que blocos de código sejam escritos em linha onde delegamos os valores esperados. Assim podemos escrever códigos mais inteligentes e com um menor número de linhas. As expressões lambda são muito utilizadas quando escrevemos métodos anônimos, elas nos permitem trabalhar de uma forma mais inteligente e lógica. Eles também se tornam muito úteis quan- lagosto

20 do escrevemos expressões LINQ para pesquisa e também podem ser utilizadas em funções, como anteriormente já comentadas conseguimos escrever funções muito mais enxutas. Criamos uma Lambda desta forma (parametro => o que teremos de retorno), onde o => e o operador e o que vem a antes dele é o parâmetro e após, o retorno. Vamos dizer que queremos uma função que irá receber um inteiro, e irá retornar se o inteiro é superior a 10. private bool Emaiorq10(int i) if (i > 10) return true; else return false; A mesma função pode ser escrita como uma expressão lambda, em uma linha. (int i => i > 10); A Expressão lambda faz o mesmo trabalho como a função acima. O mais interessante é que podemos escrever isso em apenas uma linha. Agora vamos criar uma classe para que possamos exemplificar melhor a Expressão lambda, como disse anteriormente ela é muito utilizada em consultas LINQ que é o que veremos a seguir: public class Carros public string Marca get; set; public string Modelo get; set; public int Ano get; set; Agora vou construir e popular minha Classe de Carros. Ver código fonte 03 PS: Se você ainda não está familiarizado com List<Carro> Carros = new List<Carro> new Carro Modelo = Astra, Marca= Chevrolet, Ano=2005, new Carro Modelo = Corsa, Marca= Chevrolet, Ano=2004, new Carro Modelo = Stilo, Marca= FIAT, Ano=2008, new Carro Modelo = Doblo, Marca= FIAT, Ano=2006, new Carro Modelo = Escort, Marca= Ford, Ano=2000, new Carro Modelo = Explorer, Marca= Ford, Ano=2007 ; código fonte 03 var Resultado = Carros.Where(p => p.marca == FIAT ); var Resultado1 = Carros.Average(p => p.ano); o C# 3.0 deve estar estranhando a criação das propriedades com os gets e sets direto e também a da Lista de carros populando direto no construtor sem antes ter criado um construtor para fazer isso. Pois bem, seja bem-vindo, essas são apenas duas de muitas novidades da linguagem, mas isto é assunto para o próximo artigo. Eu mostrei como criar e instanciar um List<Carro> já passando os valores, agora vou utilizar alguns métodos chamados métodos estendidos no namespace LINQ onde podemos fazer consultas em coleções. Ver código fonte 04 Note que o (p =>) é Expressão lambda, que no Sobre o autor código fonte 04 var Resultado2 = Carros.Where(p => p.ano > 2005); var Resultado3 = Carros.Where(p => p.modelo. Contains( o )).OrderBy(o => o.ano); código fonte 05 primeiro exemplo especifica um filtro para a Marca FIAT em seguida utilizamos uma lambda a partir do Objeto Carro para calcular a média. A partir daí podemos explorar vários exemplos de utilização. Ver código fonte 05 Pra finalizar, um filtro utilizando o Contains que funciona como o Like do SQL e um OrderBy para ordenar o resultado pelo ano. Bem pessoal espero ter passado o conceito básico da Expressão lambda, agora é só você se aprofundar e colocar em prática mais uma das novidades do C# e Visual Basic.NET 9. Fabiano Belmonte Senior Architect da InfoMoney.com, especialista em aplicações e-business com larga experiência em B2B (Submarino.Com e Saraiva.Com). Trabalha há 5 anos com a tecnologia.net, aplicando conhecimentos nas diversas áreas: instituições financeiras (sistema SPB), e-commerce, gerenciamento logístico entre outras. Trabalhando com Visual Studio desde suas primeiras versões, responsável pela implementação de uma Metodologia de trabalho e melhoras significativas no resultados e na qualidade do time de Desenvolvimento de muitas empresas por onde passou como (Saraiva.Com) e ferramentas como TFS (Team Foundation Server). Foi palestrante em eventos como Codificando. NET 2008 e outros eventos sobre Tecnologia.NET. Instrutor da e-tniax Group especialista em C#, ASP.NET e Silverlight. 20 agosto 2008

Trabalhando com conexão ao banco de dados MySQL no Lazarus. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

Trabalhando com conexão ao banco de dados MySQL no Lazarus. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011 Trabalhando com conexão ao banco de dados MySQL no Lazarus Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011 Edição 4 O Componente Trabalhando com conexão ao banco de dados MySQL no Lazarus Ano: 03/2011

Leia mais

Conteúdo O que é?... 4 Histórico... 4 Onde Baixar?... 4 Diferença entre Firebird e o Interbase... 4 Como instalar?... 4 Instalando o Ibexpert...

Conteúdo O que é?... 4 Histórico... 4 Onde Baixar?... 4 Diferença entre Firebird e o Interbase... 4 Como instalar?... 4 Instalando o Ibexpert... Apostila FIREBIRD 1 Firebird Equipe: BARBARA CAROLINE SOUZA DE OLIVEIRA Nº 04 GUILHERME ROBERTO PINTO DE SOUZA Nº 16 JOSÉ ROSA MARTINS NETO Nº 22 RAFAEL ALVES DE SOUSA Nº 36 WELLINGTON COSTA SANTOS OLIVEIRA

Leia mais

Aula Extra Conexão ODBC para aplicações Delphi 7 que usam SQL Server 2005

Aula Extra Conexão ODBC para aplicações Delphi 7 que usam SQL Server 2005 Nome Número: Série Aula Extra Conexão ODBC para aplicações Delphi 7 que usam SQL Server 2005 Proposta do projeto: Competências: Compreender a orientação a objetos e arquitetura cliente-servidor, aplicando-as

Leia mais

Microsoft Visual Studio Express 2012 for Windows Desktop

Microsoft Visual Studio Express 2012 for Windows Desktop Microsoft Visual Studio Express 2012 for Windows Desktop Apresentação da ferramenta Professor: Danilo Giacobo Página pessoal: www.danilogiacobo.eti.br E-mail: danilogiacobo@gmail.com 1 Introdução Visual

Leia mais

Android e Bancos de Dados

Android e Bancos de Dados (Usando o SQLite) Programação de Dispositivos Móveis Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do

Leia mais

ETEC DR. EMÍLIO HENRNANDEZ AGUILAR PROGRAMAÇÃO DE COMPUTADORES II PROFESSOR RAFAEL BARRETO DELPHI FORMULÁRIO COM ABAS E BUSCAS DE REGISTROS

ETEC DR. EMÍLIO HENRNANDEZ AGUILAR PROGRAMAÇÃO DE COMPUTADORES II PROFESSOR RAFAEL BARRETO DELPHI FORMULÁRIO COM ABAS E BUSCAS DE REGISTROS ETEC DR. EMÍLIO HENRNANDEZ AGUILAR PROGRAMAÇÃO DE COMPUTADORES II PROFESSOR RAFAEL BARRETO DELPHI FORMULÁRIO COM ABAS E BUSCAS DE REGISTROS FORMULÁRIOS COM ABAS Trabalhar com abas (ou guias) é um recurso

Leia mais

Fortes Report Parte 1 Desenvolvendo o Primeiro Relatório

Fortes Report Parte 1 Desenvolvendo o Primeiro Relatório Fortes Report Parte 1 1 Fortes Report Parte 1 Desenvolvendo o Primeiro Relatório Amigos, fazer relatórios é o famoso mal necessário, que particularmente eu não me incomodo em desenvolver, até porque, geralmente

Leia mais

Instalando o IIS 7 no Windows Server 2008

Instalando o IIS 7 no Windows Server 2008 Goiânia, 16/09/2013 Aluno: Rafael Vitor Prof. Kelly Instalando o IIS 7 no Windows Server 2008 Objetivo Esse tutorial tem como objetivo demonstrar como instalar e configurar o IIS 7.0 no Windows Server

Leia mais

Instalando o IIS 7 no Windows Server 2008

Instalando o IIS 7 no Windows Server 2008 Goiânia, 16/09/2013 Aluno: Rafael Vitor Prof. Kelly Instalando o IIS 7 no Windows Server 2008 Objetivo Esse tutorial tem como objetivo demonstrar como instalar e configurar o IIS 7.0 no Windows Server

Leia mais

ETEC DR. EMÍLIO HENRNANDEZ AGUILAR PROGRAMAÇÃO DE COMPUTADORES I PROFESSOR RAFAEL BARRETO

ETEC DR. EMÍLIO HENRNANDEZ AGUILAR PROGRAMAÇÃO DE COMPUTADORES I PROFESSOR RAFAEL BARRETO ETEC DR. EMÍLIO HENRNANDEZ AGUILAR PROGRAMAÇÃO DE COMPUTADORES I PROFESSOR RAFAEL BARRETO DELPHI - UTILIZANDO OPENDIALOG PARA ARMAZENAR IMAGENS EM BANCO DE DADOS Criaremos uma solução simples para criar

Leia mais

Manual do Usuário. Sistema Financeiro e Caixa

Manual do Usuário. Sistema Financeiro e Caixa Manual do Usuário Sistema Financeiro e Caixa - Lançamento de receitas, despesas, gastos, depósitos. - Contas a pagar e receber. - Emissão de cheque e Autorização de pagamentos/recibos. - Controla um ou

Leia mais

Acesso à Dados ZEOS x Delphi. Professor Anderson

Acesso à Dados ZEOS x Delphi. Professor Anderson Acesso à Dados ZEOS x Delphi Professor Anderson Introdução O ZEOS é uma biblioteca que provê o acesso à uma base de dados em MYSQL. Através dessa Library, podemos realizar operações de manipulação da base

Leia mais

Projeto Supermercado - Produtos

Projeto Supermercado - Produtos OBJETIVO: Este projeto possibilitará fazer a manutenção dos dados da tabela de Produtos. Didaticamente, ele permite ao programador iniciante ter os primeiros contatos com os objetos de visualização individual

Leia mais

Structure Query Language SQL Guilherme Pontes lf.pontes.sites.uol.com.br

Structure Query Language SQL Guilherme Pontes lf.pontes.sites.uol.com.br 1. Abordagem geral Structure Query Language SQL Guilherme Pontes lf.pontes.sites.uol.com.br Em primeiro plano, deve-se escolher com qual banco de dados iremos trabalhar. Cada banco possui suas vantagens,

Leia mais

SUMÁRIO 1. AULA 7 INTRODUÇÃO À REDES PONTO A PONTO = PARTE 1:... 2

SUMÁRIO 1. AULA 7 INTRODUÇÃO À REDES PONTO A PONTO = PARTE 1:... 2 SUMÁRIO 1. AULA 7 INTRODUÇÃO À REDES PONTO A PONTO = PARTE 1:... 2 1.1 Introdução... 2 1.2 Montando Redes Ponto-a-Ponto... 3 1.2.1 Parte lógica... 3 1.2.2 Escolhendo o sistema operacional... 3 1.2.3 Instalação

Leia mais

Interface para Regras de Negócios em Multi-Banco

Interface para Regras de Negócios em Multi-Banco 1 Interface para Regras de Negócios em Multi-Banco MARCELO JALOTO (marcelo@jaloto.net) é graduado no curso superior Projetos e Gestão de Redes de Computadores e formado no curso Técnico em Processamento

Leia mais

Revisando sintaxes SQL e criando programa de pesquisa. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

Revisando sintaxes SQL e criando programa de pesquisa. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011 Revisando sintaxes SQL e criando programa de pesquisa. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011 Edição 5 SELECT * FROM Minha_memoria Revisando Sintaxes SQL e Criando programa de Pesquisa Ano:

Leia mais

Sistema básico de cadastro em Delphi com banco de dados InterBase.

Sistema básico de cadastro em Delphi com banco de dados InterBase. Sistema básico de cadastro em Delphi com banco de dados InterBase. Nesta apostila vamos abordar o uso do banco de dados Interbase e o acesso nativo com os componentes da paleta InterBase do Delphi, eu

Leia mais

Alternate Technologies Fevereiro/2013. FórmulaCerta Procedimentos para Atualização Versão 5.8 (Fevereiro/2013)

Alternate Technologies Fevereiro/2013. FórmulaCerta Procedimentos para Atualização Versão 5.8 (Fevereiro/2013) FórmulaCerta Procedimentos para Atualização Versão 5.8 () 1 Sumário: PROCEDIMENTOS PARA ATUALIZAÇÃO VERSÃO 5.8... 4 ATUALIZAÇÃO DO SISTEMA VIA CD... 6 1º Passo Atualizações e Alterações da Versão 5.8...

Leia mais

Manual de Instalação e Configuração do SQL Express

Manual de Instalação e Configuração do SQL Express Manual de Instalação e Configuração do SQL Express Data alteração: 19/07/11 Pré Requisitos: Acesse o seguinte endereço e faça o download gratuito do SQL SRVER EXPRESS, conforme a sua plataforma x32 ou

Leia mais

Prof. Carlos Majer Aplicações Corporativas UNICID

Prof. Carlos Majer Aplicações Corporativas UNICID Este material pertence a Carlos A. Majer, Professor da Unidade Curricular: Aplicações Corporativas da Universidade Cidade de São Paulo UNICID Licença de Uso Este trabalho está licenciado sob uma Licença

Leia mais

Listando itens em ComboBox e gravando os dados no Banco de Dados MySQL.

Listando itens em ComboBox e gravando os dados no Banco de Dados MySQL. Listando itens em ComboBox e gravando os dados no Banco de Dados MySQL. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2012 Edição 7 Listando e Gravando Listando itens em ComboBox e gravando os dados no

Leia mais

Índice. Tutorial para Desenvolvimento de Conduits em Delphi

Índice. Tutorial para Desenvolvimento de Conduits em Delphi Índice Índice...1 Desenvolvendo Conduits...2 (Passo a Passo)...2 Criando um Arquivo.mdb... 2 Arquivos...6 Instalando os componentes... 7 Recompilando os Comonentes do Delphi...13 Configurando a Conexão

Leia mais

Criando uma aplicação Web em C# usando o NHibernate

Criando uma aplicação Web em C# usando o NHibernate Criando uma aplicação Web em C# usando o NHibernate Apresento neste artigo como criar uma aplicação web totalmente orientada a objetos usando o framework NHibernate e a linguagem C#. Nossa meta é construir

Leia mais

Memória Flash. PdP. Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos

Memória Flash. PdP. Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos TUTORIAL Memória Flash Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006 PdP Pesquisa e Desenvolvimento de Produtos http://www.maxwellbohr.com.br contato@maxwellbohr.com.br

Leia mais

Define o campo ID com chave primaria com gerator de auto incremento ALTER TABLE CONTATO ADD CONSTRAINT PK_CONTATO PRIMARY KEY (ID);

Define o campo ID com chave primaria com gerator de auto incremento ALTER TABLE CONTATO ADD CONSTRAINT PK_CONTATO PRIMARY KEY (ID); Agenda 1 IBDatabase (Paleta Interbase) 1 IBTransaction (Paleta Interbase) 2 IBQuery (Paleta Interbase) 1 IBUpdateSQL (Paleta Interbase) 1 DataSource (Paleta Interbase) 4 Bitbnt (Paleta Addicional) 1 Dbgrid

Leia mais

Criação de uma base de dados em MS SQL Server e acesso com VB 6. Professor Sérgio Furgeri

Criação de uma base de dados em MS SQL Server e acesso com VB 6. Professor Sérgio Furgeri OBJETIVOS DA AULA: Criação de uma base de dados em MS SQL Server e acesso com VB 6. Fazer uma breve introdução a respeito do MS SQL Server 7.0; Criar uma pequena base de dados no MS SQL Server 7.0; Elaborar

Leia mais

Manual de Instalação e Configuração

Manual de Instalação e Configuração e Configuração MyABCM 4.0 Versão 4.00-1.00 2 Copyright MyABCM. Todos os direitos reservados Reprodução Proibida Índice Introdução... 5 Arquitetura, requisitos e cenários de uso do MyABCM... 7 Instalação

Leia mais

Índice. Atualizado em: 01/04/2015 Página: 1

Índice. Atualizado em: 01/04/2015 Página: 1 MANUAL DO USUÁRIO Índice 1. Introdução... 3 2. Acesso ao Sistema... 4 2.1. Instalação... 4 2.1.1. Servidor - Computador Principal... 4 2.1.2. Estação - Computador na Rede... 6 2.1.3. Estação - Mapeamento

Leia mais

SENAI São Lourenço do Oeste. Introdução à Informática. Adinan Southier Soares

SENAI São Lourenço do Oeste. Introdução à Informática. Adinan Southier Soares SENAI São Lourenço do Oeste Introdução à Informática Adinan Southier Soares Informações Gerais Objetivos: Introduzir os conceitos básicos da Informática e instruir os alunos com ferramentas computacionais

Leia mais

Estratégia para fazer cópias de segurança ( backup ) em nuvem

Estratégia para fazer cópias de segurança ( backup ) em nuvem 1 de 20 Estratégia para fazer cópias de segurança ( backup ) em nuvem Resolvi documentar uma solução que encontrei para fazer minhas cópias de segurança. Utilizo um software gratuito chamado Cobian Backup

Leia mais

AMBIENTE. FORMULÁRIO: é a janela do aplicativo apresentada ao usuário. Considere o formulário como a sua prancheta de trabalho.

AMBIENTE. FORMULÁRIO: é a janela do aplicativo apresentada ao usuário. Considere o formulário como a sua prancheta de trabalho. DELPHI BÁSICO VANTAGENS Ambiente de desenvolvimento fácil de usar; 1. Grande Biblioteca de Componentes Visuais (VCL - Visual Component Library), que são botões, campos, gráficos, caixas de diálogo e acesso

Leia mais

Acessando a Porta Paralela com o Delphi. Vitor Amadeu Souza. vitor@cerne-tec.com.br

Acessando a Porta Paralela com o Delphi. Vitor Amadeu Souza. vitor@cerne-tec.com.br Acessando a Porta Paralela com o Delphi Vitor Amadeu Souza vitor@cerne-tec.com.br Introdução A Porta Paralela pode ser usada de forma a permitir a interface do computador com o mundo externo para acionamento

Leia mais

www.neteye.com.br NetEye Guia de Instalação

www.neteye.com.br NetEye Guia de Instalação www.neteye.com.br NetEye Guia de Instalação Índice 1. Introdução... 3 2. Funcionamento básico dos componentes do NetEye...... 3 3. Requisitos mínimos para a instalação dos componentes do NetEye... 4 4.

Leia mais

CRIAÇÃO DE RELATÓRIOS EM DELPHI

CRIAÇÃO DE RELATÓRIOS EM DELPHI PROGRAMAÇÃO DE COMPUTADORES II PROFESSOR RAFAEL BARRETO CRIAÇÃO DE RELATÓRIOS EM DELPHI Relatórios são tão importantes quanto as consultas, com a vantagem de poder imprimir os valores armazenados nos Bancos

Leia mais

MANUAL PARA USO DO SISTEMA GCO Gerenciador Clínico Odontológico

MANUAL PARA USO DO SISTEMA GCO Gerenciador Clínico Odontológico MANUAL PARA USO DO SISTEMA GCO Gerenciador Clínico Odontológico O GCO é um sistema de controle de clínicas odontológicas, onde dentistas terão acesso a agendas, fichas de pacientes, controle de estoque,

Leia mais

Prof. Omero, pág. 63. Banco de Dados InterBase.

Prof. Omero, pág. 63. Banco de Dados InterBase. Prof. Omero, pág. 63 O que é o InterBase? O InterBase é um SGBDR - Sistema Gerenciador de Banco de Dados Cliente/Servidor Relacional 1 que está baseado no padrão SQL ANSI-9, de alta performance, independente

Leia mais

Segurança de Acesso a Banco de Dados no MS SQL Server

Segurança de Acesso a Banco de Dados no MS SQL Server Segurança de Acesso a Banco de Dados no MS SQL Server Para efetuar com sucesso os exemplos que serão mostrados a seguir é necessário que exista no SQL Server uma pessoa que se conecte como Administrador,

Leia mais

ETEC DR. EMÍLIO HENRNANDEZ AGUILAR PROGRAMAÇÃO DE COMPUTADORES II PROFESSOR RAFAEL BARRETO

ETEC DR. EMÍLIO HENRNANDEZ AGUILAR PROGRAMAÇÃO DE COMPUTADORES II PROFESSOR RAFAEL BARRETO ETEC DR. EMÍLIO HENRNANDEZ AGUILAR PROGRAMAÇÃO DE COMPUTADORES II PROFESSOR RAFAEL BARRETO DELPHI CRIANDO UMA AUTENTICAÇÃO DE USUÁRIO UTILIZANDO O COMPONENTE QUERY A autenticação de usuários serve para

Leia mais

Inserindo Dados no Banco de Dados Paradox.

Inserindo Dados no Banco de Dados Paradox. Inserindo Dados no Banco de Dados Paradox. - Construção do Banco de Dados: Para podermos inserir algo em um banco precisaremos de um Banco de Dados, para isto iremos montar um utilizando o Programa Database

Leia mais

1. Introdução. 2. Funcionamento básico dos componentes do Neteye

1. Introdução. 2. Funcionamento básico dos componentes do Neteye 1. Introdução Esse guia foi criado com o propósito de ajudar na instalação do Neteye. Para ajuda na utilização do Software, solicitamos que consulte os manuais da Console [http://www.neteye.com.br/help/doku.php?id=ajuda]

Leia mais

Manual PAG700/800 c/ comunicação WiFi

Manual PAG700/800 c/ comunicação WiFi Manual PAG700/800 c/ comunicação WiFi Prezado cliente, Parabéns por adquirir um Terminal modelo PAG700 / 800 padrão WiFi TCP/IP Colleter. Este manual irá ajudálo a compreender mais as características técnicas

Leia mais

Introdução a Banco de Dados em Delphi

Introdução a Banco de Dados em Delphi Introdução a Banco de Dados em Delphi Daniela Caio André Gomes Roberto Scalco 2013 3 Sumário CAPÍTULO 1 ELEMENTOS DE UM BANCO DE DADOS... 4 1. O ARQUIVO DADOS... 4 2. CONCEITOS BÁSICOS DE BANCOS DE DADOS...

Leia mais

Guia do Usuário do Avigilon Control Center Server

Guia do Usuário do Avigilon Control Center Server Guia do Usuário do Avigilon Control Center Server Versão 4.10 PDF-SERVER-D-Rev1_PT Copyright 2011 Avigilon. Todos os direitos reservados. As informações apresentadas estão sujeitas a modificação sem aviso

Leia mais

GUIA DE INSTALAÇÃO. Plataforma Windows. Relatório Técnico Versão 0.1 (201305032030) Leandro Gomes da Silva, Tiago França Melo de Lima

GUIA DE INSTALAÇÃO. Plataforma Windows. Relatório Técnico Versão 0.1 (201305032030) Leandro Gomes da Silva, Tiago França Melo de Lima Laboratório de Engenharia e Desenvolvimento de Sistemas LEDS/UFOP Universidade Federal de Ouro Preto UFOP GUIA DE INSTALAÇÃO Plataforma Windows Relatório Técnico Versão 0.1 (201305032030) Leandro Gomes

Leia mais

Entradas Digitais. PdP. Autores: Luís Fernando Patsko e Tiago Lone Nível: Intermediário Criação: 27/12/2005 Última versão: 18/12/2006

Entradas Digitais. PdP. Autores: Luís Fernando Patsko e Tiago Lone Nível: Intermediário Criação: 27/12/2005 Última versão: 18/12/2006 TUTORIAL Entradas Digitais Autores: Luís Fernando Patsko e Tiago Lone Nível: Intermediário Criação: 27/12/2005 Última versão: 18/12/2006 PdP Pesquisa e Desenvolvimento de Produtos http://www.maxwellbohr.com.br

Leia mais

Moodle FTEC Versão 2.0 Manual do Usuário Acesse a área de LOGIN do site da FTEC www.ftec.com.br

Moodle FTEC Versão 2.0 Manual do Usuário Acesse a área de LOGIN do site da FTEC www.ftec.com.br Moodle FTEC Versão 2.0 Manual do Usuário Acesse a área de LOGIN do site da FTEC www.ftec.com.br Índice Como acessar o Moodle Editando seu PERFIL Editando o curso / disciplina no Moodle Incluindo Recursos

Leia mais

TABELAS RELACIONADAS: CAPTURANDO VALOR DE OUTRA TABELA ATRAVÉS DE DBGRID

TABELAS RELACIONADAS: CAPTURANDO VALOR DE OUTRA TABELA ATRAVÉS DE DBGRID PROGRAMAÇÃO DE COMPUTADORES II PROFESSOR RAFAEL BARRETO TABELAS RELACIONADAS: CAPTURANDO VALOR DE OUTRA TABELA ATRAVÉS DE DBGRID Imagine que estejamos trabalhando com tabelas relacionadas e que, em determinado

Leia mais

Manual do Teclado de Satisfação Local Versão 1.2.2

Manual do Teclado de Satisfação Local Versão 1.2.2 Manual do Teclado de Satisfação Local Versão 1.2.2 18 de fevereiro de 2015 Departamento de Engenharia de Produto (DENP) SEAT Sistemas Eletrônicos de Atendimento 1. Introdução O Teclado de Satisfação é

Leia mais

Centro de Computação - Unicamp Gerência de Atendimento ao Cliente (e-mail:apoio@turing.unicamp.br) Sumário

Centro de Computação - Unicamp Gerência de Atendimento ao Cliente (e-mail:apoio@turing.unicamp.br) Sumário Sumário Conceitos Microsoft Access 97... 01 Inicialização do Access... 02 Convertendo um Banco de Dados... 03 Criando uma Tabela... 06 Estrutura da Tabela... 07 Propriedades do Campo... 08 Chave Primária...

Leia mais

Tutorial de Computação Introdução a Programação Gráfica em Lazarus Para MEC 1100 v2010.10

Tutorial de Computação Introdução a Programação Gráfica em Lazarus Para MEC 1100 v2010.10 Tutorial de Computação Introdução a Programação Gráfica em Lazarus Para MEC 1100 v2010.10 Linha de Equipamentos MEC Desenvolvidos por: Maxwell Bohr Instrumentação Eletrônica Ltda. Rua Porto Alegre, 212

Leia mais

Persistência de Classes em Tabelas de Banco de Dados

Persistência de Classes em Tabelas de Banco de Dados UTFPR DAELN - Disciplina de Fundamentos de Programação II ( IF62C ). 1 Persistência de Classes em Tabelas de Banco de Dados 1) Introdução! Em algumas situações, pode ser necessário preservar os objetos

Leia mais

Manual de Administração

Manual de Administração Manual de Administração Produto: n-mf Xerox Versão do produto: 4.7 Autor: Bárbara Vieira Souza Versão do documento: 1 Versão do template: Data: 04/04/01 Documento destinado a: Parceiros NDDigital, técnicos

Leia mais

Software de monitoramento Módulo CONDOR CFTV V1 R1

Software de monitoramento Módulo CONDOR CFTV V1 R1 Software de monitoramento Módulo CONDOR CFTV V1 R1 Versão 30/06/2014 FOR Segurança Eletrônica Rua dos Lírios, 75 - Chácara Primavera Campinas, SP (19) 3256-0768 1 de 12 Conteúdo A cópia total ou parcial

Leia mais

Manual de Instalação e Configuração

Manual de Instalação e Configuração e Configuração MyABCM 4.2 Versão 4.20-1.00 2 Copyright MyABCM. Todos os direitos reservados Reprodução Proibida Índice Introdução... 5 Arquitetura, requisitos e cenários de uso do MyABCM... 7 Instalação

Leia mais

RESTAURAÇÃO E BACKUP DE BANCO DE DADOS FIREBIRD

RESTAURAÇÃO E BACKUP DE BANCO DE DADOS FIREBIRD RESTAURAÇÃO E BACKUP DE BANCO DE DADOS FIREBIRD "internal gds software consistency check (can't continue after bugcheck)" Este processo de restauração, visa fazer correções na base de dados que o cliente

Leia mais

Shavlik Protect. Guia de Atualização

Shavlik Protect. Guia de Atualização Shavlik Protect Guia de Atualização Copyright e Marcas comerciais Copyright Copyright 2009 2014 LANDESK Software, Inc. Todos os direitos reservados. Este produto está protegido por copyright e leis de

Leia mais

2008.1. A linguagem SQL

2008.1. A linguagem SQL SQL 2008.1 A linguagem SQL SQL - Structured Query Language. Foi definida nos laboratórios de pesquisa da IBM em San Jose, California, em 1974. Teve seus fundamentos no modelo relacional Sua primeira versão

Leia mais

APOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL

APOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL 1. O que é Linguagem SQL 2. Instrução CREATE 3. CONSTRAINT 4. ALTER TABLE 5. RENAME TABLE 6. TRUCANTE TABLE 7. DROP TABLE 8. DROP DATABASE 1 1. O que é Linguagem SQL 2. O SQL (Structured Query Language)

Leia mais

Conhecendo o Visual FoxPro 8.0 Parte 1

Conhecendo o Visual FoxPro 8.0 Parte 1 AULA Conhecendo o Visual FoxPro 8.0 Parte 1 Em qualquer profissão é importante que se conheça bem as ferramentas que serão usadas para executar o trabalho proposto. No desenvolvimento de software não é

Leia mais

Usando o evento OnFilterRecord para filtrar ClientDataSets

Usando o evento OnFilterRecord para filtrar ClientDataSets Usando o evento OnFilterRecord para filtrar ClientDataSets O objetivo mais importante no desenvolvimento de um programa é fornecer ao cliente maior liberdade para usar as interfaces e ao mesmo tempo tornar

Leia mais

G-Bar IGV. Instalação Versão 4.0

G-Bar IGV. Instalação Versão 4.0 G-Bar Software para Gerenciamento de Centrais de Corte e Dobra de Aço IGV Software Interpretador/ Gerenciador/ Visualizador de dados digitais de projetos CAD-TQS Instalação Versão 4.0 Manual do Usuário

Leia mais

Backup dos Bancos de Dados Interbase

Backup dos Bancos de Dados Interbase Backup dos Bancos de Dados Interbase Interbase... O que é? InterBase é um gerenciador de Banco de dados relacionais da Borland. O Interbase é uma opção alternativa aos bancos de dados tradicionais como

Leia mais

Manual do Teclado de Satisfação Local Versão 1.4.1

Manual do Teclado de Satisfação Local Versão 1.4.1 Manual do Teclado de Satisfação Local Versão 1.4.1 26 de agosto de 2015 Departamento de Engenharia de Produto (DENP) SEAT Sistemas Eletrônicos de Atendimento 1. Introdução O Teclado de Satisfação é uma

Leia mais

INTRODUÇÃO. A SKA preparou este documento técnico com o objetivo de auxiliar seus clientes a realizar a instalação do SolidWorks 2009.

INTRODUÇÃO. A SKA preparou este documento técnico com o objetivo de auxiliar seus clientes a realizar a instalação do SolidWorks 2009. Guia de Instalação do SolidWorks 2009 INTRODUÇÃO A SKA preparou este documento técnico com o objetivo de auxiliar seus clientes a realizar a instalação do SolidWorks 2009. O SolidWorks pode ser instalado

Leia mais

Tarifação ON-LINE Sistema de Tarifação Telefônica V. 6.0 GUIA DE INSTALAÇÃO COLETOR

Tarifação ON-LINE Sistema de Tarifação Telefônica V. 6.0 GUIA DE INSTALAÇÃO COLETOR Tarifação ON-LINE Sistema de Tarifação Telefônica V. 6.0 GUIA DE INSTALAÇÃO COLETOR Net Manager Informática Ltda Versão 6.0 1998-2007 1) Instalação do Software Coletor Guia de Instalação Executar o programa

Leia mais

ANTES DE TUDO, FAÇA ISTO...

ANTES DE TUDO, FAÇA ISTO... ATENÇÃO PARA SAT DIMEP: o EXISTEM 2 TIPOS DE SAT DIMEP. o O DE COR BRANCA QUE DEVE SER USADO PARA FAZER DEMONSTRAÇÕES. CASO A REVENDA DESEJE APARELHO PARA DEMONSTRAÇÃO, É ESTE QUE DEVE SER ADQUIRIDO o

Leia mais

Manual de Usuário do UnB Webmail Destinado aos usuários de e-mail da Universidade de Brasília MODO DINÂMICO

Manual de Usuário do UnB Webmail Destinado aos usuários de e-mail da Universidade de Brasília MODO DINÂMICO Destinado aos usuários de e-mail da Universidade de Brasília MODO DINÂMICO Elaboração: Equipe de Suporte Avançado do CPD SA/SRS/CPD/UnB suporte@unb.br Universidade de Brasília Brasília / 2014 Resumo A

Leia mais

Instalando o driver USB para ECF S Bematech. Nome: André L. Schikovski Bematech Software Partners

Instalando o driver USB para ECF S Bematech. Nome: André L. Schikovski Bematech Software Partners para ECF S Bematech Nome: André L. Schikovski Bematech Software Partners Introdução Neste tutorial, você aprenderá em um rápido passo a passo como é feita a instalação do driver USB das impressoras fiscais

Leia mais

Gabarito - Banco de Dados SQL - 30/07/2013 AULA 01

Gabarito - Banco de Dados SQL - 30/07/2013 AULA 01 Gabarito - Banco de Dados SQL - 30/07/2013 AULA 01 1 1- Bancos de dados compreendem desde agendas telefônicas até sistemas computadorizados. (Sim) 2- Só podemos instalar o SQL Server Express se tivermos

Leia mais

Terminal Portátil PAT-1000 Wi-Fi

Terminal Portátil PAT-1000 Wi-Fi Terminal Portátil PAT-1000 Wi-Fi Prezado cliente, Parabéns por adquirir um terminal portátil modelo PAT1000 / 2000 Colleter. Este manual irá ajudá-lo a compreender mais as características técnicas do equipamento

Leia mais

Construtor Iron Web. Manual do Usuário. Iron Web Todos os direitos reservados

Construtor Iron Web. Manual do Usuário. Iron Web Todos os direitos reservados Construtor Iron Web Manual do Usuário Iron Web Todos os direitos reservados A distribuição ou cópia deste documento, ou trabalho derivado deste é proibida, requerendo, para isso, autorização por escrito

Leia mais

Display de 7. PdP. Autor: Tiago Lone Nível: Básico Criação: 16/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos

Display de 7. PdP. Autor: Tiago Lone Nível: Básico Criação: 16/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos TUTORIAL Display de 7 Segmentos Autor: Tiago Lone Nível: Básico Criação: 16/12/2005 Última versão: 18/12/2006 PdP Pesquisa e Desenvolvimento de Produtos http://www.maxwellbohr.com.br contato@maxwellbohr.com.br

Leia mais

WWW.cerne-tec.com.br. Comunicação USB com o PIC Vitor Amadeu Souza Parte II vitor@cerne-tec.com.br

WWW.cerne-tec.com.br. Comunicação USB com o PIC Vitor Amadeu Souza Parte II vitor@cerne-tec.com.br 1 Comunicação USB com o PIC Vitor Amadeu Souza Parte II vitor@cerne-tec.com.br Continuando com o artigo apresentado na edição passada de comunicação USB com o PIC, continuaremos nesta edição o estudo do

Leia mais

Iniciando o MySQL Query Brower

Iniciando o MySQL Query Brower MySQL Query Brower O MySQL Query Browser é uma ferramenta gráfica fornecida pela MySQL AB para criar, executar e otimizar solicitações SQL em um ambiente gráfico. Assim como o MySQL Administrator foi criado

Leia mais

Coleção de Dicas sobre programação Delphi. Retiradas do E-Zine Grandes Dicas em Delphi

Coleção de Dicas sobre programação Delphi. Retiradas do E-Zine Grandes Dicas em Delphi Coleção de Dicas sobre programação Delphi. Retiradas do E-Zine Grandes Dicas em Delphi Por Ramos de Souza Janones www.ramosdainformatica.com.br 1 Índice 1 Índice... 2 Descobrindo o código ASCII de uma

Leia mais

Aula 02 Software e Operações Básicas. Prof. Bruno Gomes bruno.gomes@ifrn.edu.br http://www.profbrunogomes.com.br/

Aula 02 Software e Operações Básicas. Prof. Bruno Gomes bruno.gomes@ifrn.edu.br http://www.profbrunogomes.com.br/ Aula 02 Software e Operações Básicas Prof. Bruno Gomes bruno.gomes@ifrn.edu.br http://www.profbrunogomes.com.br/ Revisando Como um computador funciona: Entrada (Dados) Processamento (Análise dos Dados)

Leia mais

Para que o NSBASIC funcione corretamente em seu computador, você deve garantir que o mesmo tenha as seguintes características:

Para que o NSBASIC funcione corretamente em seu computador, você deve garantir que o mesmo tenha as seguintes características: Cerne Tecnologia www.cerne-tec.com.br Conhecendo o NSBASIC para Palm Vitor Amadeu Vitor@cerne-tec.com.br 1. Introdução Iremos neste artigo abordar a programação em BASIC para o Palm OS. Para isso, precisaremos

Leia mais

Tutorial: Instalando Linux Educacional em uma maquina virtual

Tutorial: Instalando Linux Educacional em uma maquina virtual Maria Augusta Sakis Tutorial: Instalando Linux Educacional em uma Máquina Virtual Máquinas virtuais são muito úteis no dia-a-dia, permitindo ao usuário rodar outros sistemas operacionais dentro de uma

Leia mais

Instalando o Lazarus e outros sistemas de suporte. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011

Instalando o Lazarus e outros sistemas de suporte. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011 Instalando o Lazarus e outros sistemas de suporte Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2011 Edição 1 Levante e ande - Instalando o Lazarus e outros sistemas de suporte. Ano: 02/2011 Nesta Edição

Leia mais

CRIANDO UM BANCO DE DADOS

CRIANDO UM BANCO DE DADOS CRIANDO UM BANCO DE DADOS Bem, antes de iniciarmos propriamente no delphi, devemos aprender a usar sua ferramentas, sendo uma das mais importantes o Database Desktop, pois é com esta que construímos nossos

Leia mais

Programação para Android. Aula 08: Persistência de dados SQL

Programação para Android. Aula 08: Persistência de dados SQL Programação para Android Aula 08: Persistência de dados SQL Persistência de dados Na maioria das aplicações precisamos ter algum tipo de persistência de dados. Para guardar informações de forma persistente

Leia mais

Boolean Sistemas 2 MANUAL DA ROTINA MENU DOS SISTEMAS Atualizado em Maio/2006

Boolean Sistemas 2 MANUAL DA ROTINA MENU DOS SISTEMAS Atualizado em Maio/2006 Boolean Sistemas 2 MANUAL DA ROTINA DE MENU DOS SISTEMAS Atualizado em Maio/2006 Empresas Especiais Suporte 2.01. Cadastro das empresas 2.02. Relação das empresas 2.03. Controle das emissões 2.04. Exclusão

Leia mais

AULA 1 PHP O QUE É APACHE FRIENDS

AULA 1 PHP O QUE É APACHE FRIENDS O QUE É PHP Se você já programa PHP, aconselho que pule para o capítulo 7 desse livro. Pois até esse capitulo iremos abordar algoritmos em PHP até a construção de uma classe com seus métodos e atributos

Leia mais

Persistindo dados com TopLink no NetBeans

Persistindo dados com TopLink no NetBeans Persistindo dados com TopLink no NetBeans O que é TopLink? O TopLink é uma ferramenta de mapeamento objeto/relacional para Java. Ela transforma os dados tabulares de um banco de dados em um grafo de objetos

Leia mais

Manual do Teclado de Satisfação Online Web Opinião Versão 1.0.5

Manual do Teclado de Satisfação Online Web Opinião Versão 1.0.5 Manual do Teclado de Satisfação Online Web Opinião Versão 1.0.5 09 de julho de 2015 Departamento de Engenharia de Produto (DENP) SEAT Sistemas Eletrônicos de Atendimento 1. Introdução O Teclado de Satisfação

Leia mais

Seu manual do usuário XEROX 6279 http://pt.yourpdfguides.com/dref/5579951

Seu manual do usuário XEROX 6279 http://pt.yourpdfguides.com/dref/5579951 Você pode ler as recomendações contidas no guia do usuário, no guia de técnico ou no guia de instalação para XEROX 6279. Você vai encontrar as respostas a todas suas perguntas sobre a XEROX 6279 no manual

Leia mais

Guia de administração. BlackBerry Professional Software para Microsoft Exchange. Versão: 4.1 Service pack: 4B

Guia de administração. BlackBerry Professional Software para Microsoft Exchange. Versão: 4.1 Service pack: 4B BlackBerry Professional Software para Microsoft Exchange Versão: 4.1 Service pack: 4B SWD-313211-0911044452-012 Conteúdo 1 Gerenciando contas de usuários... 7 Adicionar uma conta de usuário... 7 Adicionar

Leia mais

MANUAL DO BLOG. Blog IBS

MANUAL DO BLOG. Blog IBS MANUAL DO BLOG Blog IBS Seja bem vindo! O Blog é um website dinâmico, um espaço virtual que usa a internet para compartilhar informações. Por meio do blog você pode publicar textos, opiniões, notícias,

Leia mais

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA AGRÍCOLA DE JUNDIAÍ EAJ - PRONATEC / REDE etec MÓDULO III DESENVOLVIMENTO PROFESSOR ADDSON COSTA

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA AGRÍCOLA DE JUNDIAÍ EAJ - PRONATEC / REDE etec MÓDULO III DESENVOLVIMENTO PROFESSOR ADDSON COSTA UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA AGRÍCOLA DE JUNDIAÍ EAJ - PRONATEC / REDE etec MÓDULO III DESENVOLVIMENTO PROFESSOR ADDSON COSTA RESUMO DE AULA CRIAÇÃO E MANIPULAÇÃO DO BANCO DE DADOS

Leia mais

MANUAL DO CLIENTE DIGITAL CONCURSOS

MANUAL DO CLIENTE DIGITAL CONCURSOS MANUAL DO CLIENTE DIGITAL CONCURSOS Digital Concursos Neste manual você encontrará as respostas para todas suas dúvidas relacionadas ao procedimento de desbloqueio para visualização dos produtos adquiridos

Leia mais

Manual de Instalação Corporate

Manual de Instalação Corporate Manual de Instalação Corporate Sumário 1. Sobre este documento...3 2. Suporte técnico...3 3. Requisitos de hardware...3 3.1. Estação...3 3.2. Servidor...4 4. Instalação...4 4.1. Instalação do Imobiliária21

Leia mais

Utilizando os componentes da paleta DBExpress para acesso ao banco Firebird

Utilizando os componentes da paleta DBExpress para acesso ao banco Firebird Utilizando os componentes da paleta DBExpress para acesso ao banco Firebird Esta apostila destina-se aqueles que tem algum interesse em aprender a conectar-se com um banco Firebird. Caso você seja um iniciante

Leia mais

Impressão de Código de Barras Uma abordagem prática para Zebra EPL2

Impressão de Código de Barras Uma abordagem prática para Zebra EPL2 1 Impressão de Código de Barras Uma abordagem prática para Zebra EPL2 por Victory Fernandes Na internet estão disponíveis diversos componentes para geração e impressão de Código de Barras utilizando o

Leia mais

Oficina de Software Livre.

Oficina de Software Livre. Professor: Igor Patrick Silva Contato: (38)88037610 E-Mail: igorsilva88037610@hotmail.com 1 Índice CAP. 1 O computador e seus componentes 2 CAP. 2 O que é software livre e o que é software proprietário

Leia mais

SECRETARIA DA JUSTIÇA E DEFESA DA CIDADANIA FUNDAÇÃO DE PROTEÇÃO E DEFESA DO CONSUMIDOR - PROCON/SP MANUAL DE INSTALAÇÃO DO SISTEMA

SECRETARIA DA JUSTIÇA E DEFESA DA CIDADANIA FUNDAÇÃO DE PROTEÇÃO E DEFESA DO CONSUMIDOR - PROCON/SP MANUAL DE INSTALAÇÃO DO SISTEMA MANUAL DE INSTALAÇÃO DO SISTEMA 1. INTRODUCÃO Este manual tem como objetivo orientar o usuário durante o processo de instalação do SIGA Sistema Global de Atendimento. 2 de 27 2. PRÉ-REQUISITOS DE INSTALAÇÃO

Leia mais

Como funcionam os comandos de SQL no Logic Basic Por Alan Oliveira

Como funcionam os comandos de SQL no Logic Basic Por Alan Oliveira Como funcionam os comandos de SQL no Logic Basic Por Alan Oliveira www.linksinfo.com.br Tutorial versão 1.0 Sobre o Logic basic: Parte 1 Sobre o Logic Basic e o SQL O Logic Basic é uma linguagem de programação

Leia mais

Manual de Instalação de Telecentros Comunitários. Ministério das Comunicações

Manual de Instalação de Telecentros Comunitários. Ministério das Comunicações Manual de Instalação de Telecentros Comunitários Ministério das Comunicações As informações contidas no presente documento foram elaboradas pela International Syst. Qualquer dúvida a respeito de seu uso

Leia mais

Manual de Instalação: Agente do OCS Inventory NG

Manual de Instalação: Agente do OCS Inventory NG Manual de Instalação: Agente do OCS Inventory NG Abril 2013 Sumário 1. Agente... 1 2. Onde instalar... 1 3. Etapas da Instalação do Agente... 1 a. Etapa de Instalação do Agente... 1 b. Etapa de Inserção

Leia mais