32

EDITORIAL - The Club · A matéria do Fábio Câmara também é muito interessante. Um problema recorrente em equipes de 2 ou mais programadores, as versões de um projeto, ... ·

Embed Size (px)

Citation preview

3

THE CLUBAv. Profº Celso Ferreira da Silva, 190

Jd. Europa - Avaré - SP - CEP 18.707-150Informações: (14) 3732-3689

Suporte: (14) 3733-1588 - Fax: (14) 3732-0987

Internethttp://www.theclub.com.br

Cadastro: [email protected]: [email protected]

Informações: [email protected]

DúvidasCorrespondência ou fax com dúvidas devem

ser enviados ao - THE CLUB, indicando"Suporte".

OpiniãoSe você quer dar a sua opinião sobre o clube

em geral, mande a sua correspondência para aseção "Tire sua dúvida".

ReproduçãoA utilização, reprodução, apropriação,

armazenamento em banco de dados, sobqualquer forma ou meio, de textos, fotos e

outras criações intelectuais em cada publicaçãoda revista “The Club Megazine” são

terminantemente proibidos sem autorizaçãoescrita dos titulares dos direitos autorais.

Impressão e acabamento:HIPERGRAF Indústria Gráfica

Tel.: (14) 3641-1665 - Cep 17340-000Rua Francisca A. Pereira Borges, 436

Barra Bonita - Vila São CaetanoTiragem: 5.000 exemplares

Copyright The Club Megazine 2007

Diretor TécnicoMauro Sant’Anna

ColaboradoresFábio Camara, Alexandre Tarifa

EDITORIAL

Editorial

Editorial .................................................................................. 03.Net - Smart Client - Introdução .............................................. 04Utilizando o Controlador de Versões ...................................... 07Exportando tabelas utilizando o Datapump ............................ 14Executando programas com o Delphi .NET........................... 16Microsoft Visual Studio Code Name “Orcas” .......................... 20Perguntas & Respostas ......................................................... 27Delphi é marca registrada da Borland International,

as demais marcas citadas são registradaspelos seus respectivos proprietários.

Feliz ano novo! Feliz 2007!

Neste mês você verá em primeira mão as novidades em relação à próxima versãodo Visual Studio, que a Microsoft está chamando neste estágio de desenvolvimento de“Orcas”. Apesar de não haver mudanças significativas no visual do produto, muitasnovas funcionalidades já estão disponíveis, como o Windows Presentation Foundationpor exemplo. O interessante é que ninguém precisará esperar até o lançamento dapróxima versão do Visual Studio para saber como serão estas novas tecnologias oumesmo para utilizá-las. A maioria já está disponível hoje mesmo no site da Microsoftpara ser utilizada conjuntamente com .Net Framework 3.0. Trocando em miúdos:você pode a partir de hoje começar a programar aplicações que utilizem o novosistema de saída gráfica da Microsoft, deixando estas com o mesmo visual doWindows Vista e do Office 2007. Isso é apenas a ponta do iceberg. Leia a matéria, nelavocê também encontrará inúmeros links para ficar por dentro de tudo!

A matéria do Fábio Câmara também é muito interessante. Um problemarecorrente em equipes de 2 ou mais programadores, as versões de um projeto,componente ou outro detalhe qualquer sempre pode ocasionar problemas às vezesinsolúveis sem que se perca demasiado tempo totalmente desnecessário. Neste artigo oFábio demonstra como utilizar uma ferramenta para facilitar este serviço aosdiversos desenvolvedores e evitar a perda de tempo e conseqüentemente a perda dedinheiro.

Outro artigo interessante é o do Thiago que explica como exportar tabelasutilizando o Datapump, muito útil em migrações ou mesmo cópias de banco de dados.

No artigo do Claudinei você aprenderá como executar programas a partir do .NetFramework ao invés de usar o WinExec e ShellExecute.

É claro que você também conta com a seção de perguntas e respostas que sempreajuda todos com dicas valiosas.

Até o mês que vem!

4

.Net - Smart Client.Net - Smart Client.Net - Smart Client.Net - Smart Client.Net - Smart ClientIntroduçãoIntroduçãoIntroduçãoIntroduçãoIntrodução

.Net

Introdução

Nos últimos anos, nos projetos de software comerciais ecorporativos, uma pergunta que ocorre no início do projeto acabatendo uma resposta simples e “óbvia”:

Esta aplicação será Windows ou Web?

A resposta em coro é dada pela equipe de desenvolvimento ouafins:

Web... é claro!

Esta resposta está certa ou errada? Depende! Aliás, dependemuito e de inúmeros pontos que devem ser discutido antes destaresposta.

Acompanho diversos projetos em empresas de diversos ramose portes e vejo em pelo menos 70% dos casos um erro dearquitetura. Às vezes erros grotescos que geram a necessidade desimplesmente refazer o sistema. Isso porque a resposta “óbvia” foiseguida.

Nada contra a Web, muito pelo contrário. A idéia principaldeste artigo é apresentar os pontos de cada tecnologia edependendo de cada caso, teremos uma resposta coerente esignificativa.

Outro cenário baseado em fatos reais.

O Consultor chega a um cliente para uma reunião onde ocliente vai pedir um sistema:

- Olá amigo consultor. Eu gostaria de um sistema Web decontrole de estoque!

Veja: o cliente já definiu a arquitetura do projeto!

Tipos de aplicações

Arquitetura Thin Client

São baseadas em navegador, ou seja, executadas dentro deum navegador, seguindo suas características e limitações.

Principais vantagens:

· Eficiência na exposição – Seu sistema pode funcionar naChina! Em “qualquer” browser, em qualquer sistemaoperacional;

· Gerenciamento centralizado – O sistema fica em um pontoúnico (servidor) e o controle de quem controla a aplicação é muitomais simples. O gerenciamento engloba: configurações, versões,controle de acesso, etc;

· Solução interna e externa – Seu sistema funciona tanto naintranet da sua empresa como na internet para todos.

Principais desvantagens:

· 100% conectado – O sistema fica em um servidor e toda asua execução ocorre no servidor. Com isso para que o usuáriomanipule o sistema a cada ação tomada no sistema, deve-seocorrer uma conexão com o servidor da aplicação;

· Limitações do navegador – Controles pobres, recursossimples e para funcionalidades relativamente simples, deve terum conhecimento absurdo de DHTM e Java Script;

· Produtividade do usuário baixa – O usuário (cliente) que éa pessoa que deve ficar feliz com o sistema, acaba perdendo muitona usabilidade e produtividade no seu dia-a-dia;

· Produtividade do desenvolvedor baixa – Mesmo com novas

.Net - Smart Client.Net - Smart Client.Net - Smart Client.Net - Smart Client.Net - Smart ClientIntroduçãoIntroduçãoIntroduçãoIntroduçãoIntrodução

Por Alexandre Tarifa

5

tecnologias AJAX, desenvolver recursos mais avançados paramelhorar a usabilidade acabam sendo de extrema dificuldade etrabalhoso e ainda sim não chega a ser uma tecnologia queoferece uma usabilidade 100% efetiva, porque nunca podemosesquecer: estamos dentro de um navegador.

Arquitetura Rich Client

Principais vantagens:· Baseada em Windows – Todo o poder do sistema operacional

Windows;· Trabalha conectado e desconectado – Podem-se criar

aplicações com funcionalidades Off-line e a aplicação não dependede nenhum serviço servidor para executar a não ser que tenhadependência de Banco de Dados ou algum outro recurso;

· Solicitação ao servidor somente quando necessário – Aaplicação só faz uma solicitação ao servidor caso algum recursoexterno da aplicação é solicitado;

· Produtividade do usuário – O usuário ganha emprodutividade já que ele está utilizando uma aplicação que utilizatodos os recursos do sistema operacional;

· Produtividade do desenvolvedor – O desenvolvedorpraticamente só gasta o seu tempo no negócio da aplicação epraticamente nada com funcionalidades de interface, já que atecnologia oferece os recursos nativamente.

Principais desvantagens:· DIFICULDADE NA DISTRIBUIÇÃO – A distribuição é muito

complicada já que cada máquina tem suas particularidades quepode afetar no funcionamento do sistema ou até mesmo na nãoinstalação do sistema.

Resumindo

Comparando as duas arquiteturas apresentadas, temosentão Thin Client como a arquitetura ideal para termos umadistribuição e gerenciamento centralizado, já Rich Client acabasendo uma arquitetura ideal para produtividade tanto do usuáriocomo do desenvolvedor.

Arquitetura Smart Client

Combina as principais vantagens das duas arquiteturas jáapresentadas.

· Gerenciamento e distribuição centralizada e inteligente(click once);

· Aplicações executadas localmente, trazendo todos osrecursos do sistema operacional;

· Produtividade para o desenvolvedor e usuário;

· Trabalha conectado e desconectado;· Flexibilidade de dispositivos;· Etc etc etc etc etc.

Resumindo

A arquitetura Smart Client consolida as principaisvantagens das arquiteturas Thin Client e Smart Clienttornando-se muito efetiva e funcional para aplicaçõescorporativas e comerciais.

O funcionamento é simples:

· Gerenciamento e distribuição são feitos através da Web(IIS);

· Execução da aplicação é local (Computador do usuário);· Comunicação da aplicação com regras de negócio com Web

Services (Veja outros tipos a seguir).

Opiniões

Algumas opiniões de sites internacionais:

Tipos de clientes

· Windows Forms;· Aplicações Windows Mobile;· Visual Studio Tools for Office.

Obs.: Lembrando que os clientes não devem conterabsolutamente nenhuma regra de negócio do sistema... Somenteinterface de apresentação, já que todo o negócio deve estar emum serviço servidor.

.Net

6

Escolhendo entre Smart Clients e Thin Clients

· Fatores determinantes· Analisar bem antes do início do projeto.· Uma arquitetura Thin Client é, freqüentemente, a mais

apropriada se você precisa tornar uma aplicação externadisponível para um grupo externo diverso, enquanto umaarquitetura Smart Client é geralmente a mais apropriada parauma aplicação interna que necessita integrar-se com oucoordenar outras aplicações ou hardware do cliente, ou que sejarequerido que trabalhe offline ou forneça funcionalidade de altodesempenho específico por meio de uma interface de usuário comboa resposta. (ver tabela comparativa).

Desafios da Arquitetura Smart Client

· Separar completamente: camada de apresentação dacamada de negócios

· Colocar dados em cache no cliente, fará com que odesempenho e a aproveitamento de uma aplicação melhoremsignificativamente, mas você deve assegurar-se de que os dadossejam atualizados adequadamente e que dados desatualizadosnão sejam utilizados.

· Distribuição simples· O advento de arquiteturas orientadas a serviços significa

que você pode projetar Smart Clients para utilizar serviços. Todosesses serviços são fornecidos em padrões de mercado, o quemelhora a interoperabilidade, suporte à ferramenta deprogramação e a facilidade com que novos atributos podem serdesenvolvidos em uma aplicação Smart Client.

Manipulação de Dados

· Os dados da aplicação podem ser disponibilizados ao clientepor meio de uma aplicação de servidor, ou a aplicação podeutilizar seus próprios dados locais.

· Cache de dados.· Simultaneidade de dados.· Utilização dos DataSets ADO.NET para gerenciar dados

· Vinculação de dados no Windows Forms.

Conexões e Serviços

· Microsoft® .NET Enterprise Services;· Microsoft .NET remoting;· Microsoft Windows® Message Queuing (também conhecido

como MSMQ);· Web Services;· WCF – Windows Comunication Foundation.

Distribuição, gerenciamento e atualização – ClickOnce

· Mecanismo de distribuição automática, onde o cliente édistribuído através da Web;

· Cliente acessa através de uma URL;· Auto Update através de configuração ou API;· Segurança integrada;· Isolado por usuário do Windows;· Parte do .NET Framework 2.0.

Conclusão

A arquitetura Smart Client trás benefícios claros quefacilitam muito o desenvolvimento e oferece um resultadoexcelente. Nos próximos artigos será apresentado na práticacomo utilizar a arquitetura.

Descrição Smart Client Thin Client

Fornece uma rica interface de usuário Sim e sofre uma evolução no WindowsVista (WPF).

Sim, mas não tão rica (ATLAS)

Pode interagir com outrasaplicações/hardware locais

Sim Em poucos casos

Qualquer plataforma Não, somente Windows (Desvantagem?) Sim, Browser atualizado.

Tabela comparativa:

Sobre o autorAlexandre Tarifa, [email protected] palestras e treinamentos, MVP (Most Valuable Professional), MCAD(Microsoft Certified Application Developer) e MCT (Microsoft CertifiedTrainer). Bacharel pela UMESP e pós-graduando pela Universidade Federalde São Carlos em Ciência da Computação. Analista de Sistemas e Líder dogrupo de usuários Codificando.net São Paulo (sp.codificando.net). Escreveartigos para a revista MSDN Magazine e para os sites Linha de Código, MSDNBrasil e Enterpriseguys. http://weblogs.pontonetpt.com/alexandretarifa/.

.Net

7

Utilizando o ControladorUtilizando o ControladorUtilizando o ControladorUtilizando o ControladorUtilizando o Controladorde Versõesde Versõesde Versõesde Versõesde Versões

Quando se está desenvolvendo em equipe (2 ou mais pessoas),o controle de versões dos artefatos do projeto como por exemplodocumentação e código fonte, fica inviável de ser feitomanualmente.

Para ilustrar bem a questão, confesso que tive problemascom meu penúltimo livro quando recebi os retornos dos revisores.Em meu último livro, intitulado Visual Studio Team SystemRocks, não vacilei e trabalhei com uma ferramenta de controle deversão.

Adotando uma ferramenta para gerenciar essa tarefa,ganhamos produtividade e, com disciplina, eliminamosproblemas de retrabalho com perda de arquivos e versõesinconsistentes.

Pasta de trabalho – (Working Folder)

A forma mais comum de se utilizar o controlador de versões émanter uma versão local onde são feitas as alterações e depoissubmetidas à base centralizada.

Working folder (pasta de trabalho) é a definição dada paraum diretório na máquina local dos integrantes da equipe ondesão baixados todos os arquivos para consulta e edição.

Cada pessoa tem sua forma de organizar os arquivos nocomputador, porém, recomendamos que seja definido um padrãode diretório para todos os integrantes da equipe, pois existemarquivos que referenciam outros dentro do mesmo projeto, e se apasta de trabalho não for padronizada, essas referências ficarãoquebradas. Definiremos que o diretório padrão para a pasta detrabalho, será: C:\VSSBase.

Para definir a pasta de trabalho no Microsoft Source Safe,clique com o botão direito sobre a raiz dos projetos e selecione: “SetWorking Folder...”

Utilizando o ControladorUtilizando o ControladorUtilizando o ControladorUtilizando o ControladorUtilizando o Controladorde Versõesde Versõesde Versõesde Versõesde Versões

Por Fábio Câmara

Digite o caminho “C:\VSSBase” e clique em ok.

MCP, MCSA, MCAD Charter, MCDBA e MCSD.NET. Escreveu os livros “Projetos com Windows DNA e .NET” e “Orientação a Objeto com .NET” dentre outros, editados pela Visual Books Editora. http://blogs.vstsrocks.com.br/fabcamara/

.Net

8

Pronto, agora todos os projetos partindo dessa estrutura serãomanipulados no diretório “C:\VSSBase”.

Você poderá definir outra pasta de trabalho para projetosespecíficos, caso não queira que tudo seja manipulado no mesmodiretório, inclusive poderá definir uma pasta compartilhada pelarede de um outro computador ou servidor de arquivos.

Criando projetos

O que entendemos como diretórios o Microsoft Source Safetrata como projetos.

Para criar um novo projeto, selecione a pasta (projeto) queconterá o novo projeto, clique com o botão direito e selecione“Create Project...”.

Digite o nome do projeto que você está criando, obedecendo asmesmas regras de criação de diretórios do sistema operacional.

Caso deseje, coloque na caixa”Comment” um comentáriosobre o projeto

Adicionando arquivos a projetos

Para adicionar arquivos aos projetos, selecione o projeto eclique em File/Add Files...

Se preferir utilize a opção na barra de ferramentas:

Localize o(s) arquivo(s) na janela auxiliar e clique em “Add”

.Net

9

Novamente você poderá adicionar comentários para osarquivos adicionados caso deseje.

Conceito Check-In / Check-Out – EditandoArquivos

Para alterar um arquivo, você sempre precisará reservá-locom check-out, depois de fazer as alterações, utilizar check-in,para subir a nova versão para o database.

Esse processo funciona como um semáforo, e impede que umarquivo seja alterado por duas pessoas, a não ser que o databaseesteja configurado para aceitar múltiplos check-outs.

Para reservar um arquivo para edição, selecione o arquivo,clique com o botão direito e escolha “Check-out”, você poderácadastrar um comentário para a alteração que irá fazer.

O arquivo ficará com um ícone vermelho indicando o estadode check-out:

Agora você pode abrir o arquivo e realizar as alteraçõesnecessárias.

Para subir a nova versão do arquivo, realizamos o processo decheck-in, depois de salvar o arquivo, selecione-o, clique com obotão direito e escolha “Check-in”, a janela de comentários seráexibida novamente para que você cadastre o comentário final e anova versão do arquivo será armazenada no database.

Multiple Check-Out / Merge Check-In

O Visual Source Safe também oferece o suporte para aconfiguração de ambientes onde um mesmo arquivo pode seralterado simultaneamente por dois ou mais usuários, essa é umaconfiguração interessante para ambientes onde existem fontesque precisem constantemente serem alterados por um mesmodesenvolvedor.

Para isso é necessário habilitar isso na interface deadministração do repositório do Visual Source Safe dentro dasopções do Database (Veja figura abaixo) a opção “Allow multiplecheckouts”.

.Net

10

Trabalhando em um ambiente com múltiplos check-outs.Quando estamos trabalhando em ambiente com múltiplos

check-outs, se faz necessário a demonstração da situação de usoonde um arquivo é alterado simultaneamente por mais de umusuário.

Bom o primeiro impacto que podemos verificar é que o íconede um arquivo com check-out em ambientes de múltiplos check-outs é um pouco diferente, veja abaixo:

Abaixo ilustramos passo a passo um cenário de alteraçõessimultâneas.

Imagine que o arquivo teste.cs será alteradosimultaneamente pelo Usuário A e pelo Usuário B.

1. Usuário A faz o check-out do arquivo para edição eimplementa algumas modificações conforme a figura abaixo:

2. Usuário B faz o check-out do arquivo para edição;Nesse momento o Visual Source Safe irá alertar o Usuário B

que já existe um usuário com esse arquivo em check-out:

O Usuário B deverá clicar em “Yes” para continuar com aação de check-out.

Abaixo as alterações que o usuário irá realizar no mesmoarquivo:

.Net

11

3. O Usuário A salva o arquivo e faz o check-in das suasalterações;

4. O Usuário B salva o arquivo e faz o check-in das suasalterações;

Nesse momento o Visual Source Safe reconhece quehouveram mais de um check-in do mesmo arquivo e pede apermissão ao último usuário para que seja feito um “merge” dasduas versões ajustando os conflitos;

5. O Visual Source Safe “entende” as alterações feitas pelodois usuários e faz o merge dos arquivos, veja como ficou oarquivo:

E se os dois usuários alterarem a mesma linha decódigo ?

Em um ambiente que permite múltiplos check-outs, podemacontecer situações em que dois usuários tentam alterar amesma linha do código fonte simultaneamente.

Nesses casos o último usuário a realizar o check-in terá quetomar a decisão de como será a real versão do fonte.

O Visual Source Save exibe automaticamente uma janelaigual a janela a baixo para que seja feito a decisão final de comodeve ficar o arquivo:

Baixando a ultima versão de um projeto

Para manter sua pasta de trabalho atualizada, ao iniciar aalteração dos insumos do projeto, selecione o projeto e baixe asúltimas versões dos arquivos, para isso, basta selecionar oprojeto, clicar com o botão direito e escolher “Get Latest Version...”

O Source Safe exibirá a janela “Get”, para você selecionar olocal onde deseja baixar os arquivos, se você não alterar o local eleassume a estrutura hierárquica idêntica partindo do“C:\VSSBase”. Para baixar projetos e sub-projetos, selecione asopções “Recursive” e “Build tree (override working folders)”, dessa

.Net

12

forma você terá a última versão de todos os insumos do projeto.

Recuperando o Histórico de versões – (ShowHistory...)

A maior vantagem da utilização do controlador de versão é apossibilidade de voltarmos facilmente para uma versão maisantiga de um determinado arquivo ou projeto.

Para visualizar o histórico de versões de projetos ou arquivos,selecione o arquivo ou projeto e escolha “Show History...”:

O Source Safe exibirá uma janela com todas as versões doarquivo ou projeto selecionado.

O Source Safe irá exibir uma janela de alerta informandoque algumas versões (as intermediárias entre a última versão e aversão que está sendo recuperada) serão perdidas. Confirmeclicando em “Yes”.

Note na figura abaixo que a versão 2 do arquivo foi perdida enão poderá mais ser recuperada.

Comparando Versões de Arquivos – (Show History/ Show Differences...)

Podemos visualizar também as diferenças entre as versões deum mesmo arquivo, isso sempre auxilia quando precisamosidentificar um bug de um arquivo de código fonte ou apenas paravisualizar as diferenças de uma versão para outra de um mesmoarquivo. Para ver as diferenças entre versões de um mesmoarquivo, selecione o arquivo e peça o a janela de histórico deversões, utilize a tecla CTRL para selecionar as duas versões doarquivo e clique em “Diff”

Nessa janela você poderá visualizar (View), recuperar (Get),voltar a versão (RollBack) e comparar duas versões de ummesmo arquivo (Diff). Alem de emitir relatórios e permitiratachar uma versão.

Voltando versões de um arquivo

Para voltar a versão de um arquivo, selecione a versão quevocê deseja que seja recuperada e clique em rollback.

IMPORTANTE: Tenha cuidado ao utilizar RollBack, pois asversões intermediárias sempre são perdidas.

.Net

13

O Source Safe exibirá a janela “Difference Options”, nela vocêpoderá configurar as diferenças que você quer considerar naanálise.

em um diretório no sistema operacional, para isso selecione oprojeto que deseja comparar, clique com o botão direito e selecione“Show Differences...”, o Source Safe exibirá a janela “ProjectDiferences”.

A melhor forma para se analisar diferenças de conteúdo dosarquivos texto de forma visual é manter a janela configuradacom o a imagem acima. Clique em “OK” e o Source Safe exibirá ajanela com os dois arquivos selecionados e as diferenças entre elesserão descritas por fontes de cores diferentes, observe a legendaabaixo da janela.

Note que nos campos “Compare” e “To” podem serselecionados tanto projetos no Source Safe como diretórios dosistema operacional, selecione o projeto ou diretório do sistemaoperacional que deseja comparar, marque a opção “Recursive”para que o Source Safe considere sub-projetos ou sub-diretórios ecompare recursivamente toda a estrutura e clique em “Ok”.

A janela exibida, mostra todas as diferenças entre asestruturas comparadas. Utilize o botão “Reconcile All” para criaruma equivalência entre as versões, baixando os arquivos que nãoestão no diretório comparado e subindo os diretórios e arquivosque estão no diretório comparado e não estão no projeto do sourcesafe. Essa é uma boa tática para subir grandes conteúdos parauma base do Source Safe, principalmente se as estruturas foremmuito complexas e cheia de sub-diretórios.

Comparando Diretórios e Projetos – (ShowDifferences...)

Você poderá ainda comparar um projeto do Source Safe comum outro projeto no Source Safe ou com uma versão que esteja

.Net

14

Exportando tabelasExportando tabelasExportando tabelasExportando tabelasExportando tabelasutilizando o Datapumputilizando o Datapumputilizando o Datapumputilizando o Datapumputilizando o Datapump

Delphi

O Datapump é um programa que vem junto com o Delphi, eé uma solução simples para realizar a exportação de tabelas deum banco de dados para outro. A seguir irei montar um exemploque servirá de base para realizar outras importações.

Neste exemplo estarei exportando as tabelas do MicrosoftAccess 2003 para o Firebird 1.5. Antes de começar a criá-lo, vocêdeverá instalar o driver ODBC para o Firebird que poderá serencontrado no seguinte link http://prdownloads.sourceforge.net/firebird/Firebird_ODBC_1.2.0.69-Win32.exe, já no Access estedriver é instalado automaticamente com sua instalação.

A instalação do driver ODBC é extremamente simples, nãohá nenhuma configuração especial na sua instalação.

O primeiro passo é criar dois aliases para os respectivosbancos citados anteriormente.Vá para o Painel de Controle/Ferramentas Administrativas/Fontes de Dados (ODBC) /Fontesde dados de usuário conforme ilustra a figura 01.

Exportando tabelasExportando tabelasExportando tabelasExportando tabelasExportando tabelasutilizando o Datapumputilizando o Datapumputilizando o Datapumputilizando o Datapumputilizando o Datapump

Por Thiago Montebugnoli – [email protected]

Figura 01. Fontes de dados do usuário.

Clique no botão Adicionar e escolha o Driver do MicrosoftAccess(.*mdb) e configure conforme indica a figura 02:

Figura 02. Configuração do Alias do Access.

Não esqueça de selecionar o caminho do banco de dados nobotão Selecionar. Faça o mesmo com o Firebird, adicionando odriver Firebird/Interbase e configure conforme ilustra a figura 3:

Figura 03:Configuraçãodo Alias doFirebird.

No Database escolha o caminho do seu banco de dados, o qualirá receber as tabelas do Microsoft Access. Não esqueça decolocar o Dialeto como 1, mesmo que o seu banco de dados tenhasido criado no dialeto 3. Pronto, agora com os dois alias criadosacesse o DataPump conforme indicado na figura 04.

15

Delphi

Escolha o Alias Name ACCESS e clique em Next, iráaparecer uma telinha para colocar o User Name e o Password,como nós não colocamos nem Usuário e nem senha apenas dêum Enter e você verá uma tela igual a mostrada na figura 5.

Figura 05. Selecionando o Alias Firebird.

Escolha o Alias Name FIREBIRD, clique em Next e como noBanco ACCESS, deixe o Usuário e a Senha em branco dando umEnter, pois no caso do Firebird nós já informamos o usuário e asenha no momento da criação do alias..

Selecione as tabelas e clique em Next. Depois disto o botãoUpsize será habilitado. Clique no botão Upsize e você terá umatela iaugla a mostrada na imagem 07.

Agora clique em Done e pronto, só isso, você acabou deexportar as suas tabelas do Microsoft Access para o Firebird.

Fique atento a um detalhe, ao exportar tabelas de um bancopara outro, pode ocorrer uma incompatibilidade de tipos decampos, um exemplo: se a chave primária da tabelaTBCLIENTE do Access tem como tipo de campo Auto-

Figura 06. Escolher tabelas

Figura 07. Exportação completa

Figura 04. Selecionando o Alias Access.

Numeração consequentemente o campo exportado para oFirebird não será Auto-Numeração e sim Inteiro, pois não existeeste tipo no mesmo. Uma solução para corrigir este problemaneste caso específico seria criar um Generator e incrementá-lodentro de uma Trigger. Aqui vai um exemplo:

CREATE TRIGGER TRIGGER_INCREMENTA FORTBCLIENTE ACTIVEAFTER INSERT POSITION 1ASBEGIN NEW.COD_CLIENTE = GEN_ID(incrementa,1);END

ConclusãoEsta ferramenta já acompanha o Delphi a muito tempo e tem

auxiliado inúmeros programadores a converter suas bases dedados de uma forma rápida e simples.

16

Executando programasExecutando programasExecutando programasExecutando programasExecutando programascom o Delphi .NETcom o Delphi .NETcom o Delphi .NETcom o Delphi .NETcom o Delphi .NET

Delphi

É muito comum os programadores executarem outrosprogramas a partir do programa atual por diversas razões como,por exemplo, chamar uma calculadora, calendários, programasde backup, etc.

No ambiente Win32 nós utilizávamos os comandos WinExece ShellExecute, mas e agora no ambiente .NET?

No ambiente .NET isto ficou muito mais fácil. Agora nestenovo ambiente nós temos um componente específico chamadoProcess que pertence ao namespace “System.Diagnostics”.

Apesar deste componente estar disponível no .NETFramwork, ele não está instalado no Delphi. Para resolver isto váaté o menu do Delphi em Component | Install .NET Component.

Executando programasExecutando programasExecutando programasExecutando programasExecutando programascom o Delphi .NETcom o Delphi .NETcom o Delphi .NETcom o Delphi .NETcom o Delphi .NET

Por Claudinei Rodrigues – [email protected]

Feito isto você verá uma tela igual a mostrada na figura 1.Selecione os itens que pertencem ao NamespaceSystem.Diagnostics e informe o nome Components na caixaCategory.

Pronto, agora vamos montar uma aplicação de exemplo paraque você possa entender melhor. Estando com o Delphi 2006aberto clique em File | New | Windows Forms Application –Delphi for .NET.

Agora vamos incluir nesta aplicação de exemplo umcomponente Label, um componente TextBox, quatrocomponentes Button e um componente ListBox e um componenteProcess. Feito isto, você terá uma tela semelhante a mostrada nafigura 2.

Figura 1: Instalando ocomponente .NET

17

Delphi

Figura 2:Tela do exemplo.

O componente Process serve tanto para criar novos processoscomo para obter informações de processos que já estejamrodando.

Atenção: Estes exemplos devem estar rodando com altosprivilégios de segurança. Na instalação padrão do .NETFramework, você deve ter privilégio de administrador de sistemae rodar o executável a partir do disco local.

Agora vamos montar as rotinas para cada botão que colocarna nossa aplicação.

Botão Executa

Para executar um programa, basta ajustar a propriedadeStartInfo.FileName com o nome do executável e chamar ométodo Start(). Veja a seguir o código correspondente ao eventoClick do botão “Executa”:

procedure TWinForm.bt_Executa_Click(sender: System.Object; e:System.EventArgs);begin// Ajusta nome do programa Process1.StartInfo.FileName :=

textBox1.Text;

// Executa Process1.Start();end;

Listagem1: Código do botão executar

A propriedade StartInfo permite fazer outros ajustes antes doprograma iniciar, como por exemplo:

· Arguments: Argumentos “de linha de comando” passados aoprograma;

· UseShellExecute: Pede para que o Windows Explorer chameo programa ao invés de ShellExecute Isto permite realizar tarefascomo “executar” documentos (na verdade, o programa associadoao documento);

· EnvironmentVariables: Permite ajustar variáveis deambiente para o novo programa.

Botão Executa e Espera

Podemos aguardar o fim do programa chamado utilizando ométodo WaitForExit:

Veja a seguir o código correspondente ao evento Click do botão“Executa e Espera”:

procedureTWinForm.bt_ExecutaEspera_Click(sender:System.Object; e: System.EventArgs);

18

Delphi

begin bt_ExecutaEspera.Enabled := false; try // Ajusta nome do programa Process1.StartInfo.FileName :=

textBox1.Text; // Executa Process1.Start(); // Espera terminar Process1.WaitForExit(); finally bt_ExecutaEspera.Enabled := true; end;end;

Listagem 2: Código do botão Executa e Espera

O código mostrado na listagem 2 bloqueia o processamento demensagens até que o programa chamado termine. Isto funciona,mas faz com que seu programa pareça travado ao usuário final.Para permitir que o programa processe outras mensagens,devemos fazer o seguinte:

· Vá até o componente Process1 e altere a propriedadeEnableRaisingEvents para true;

· Intercepte o evento Exited. Como está sendo mostrado naslistagens 3 e 4

Este é o código correspondente ao evento Click do botão“Executa e Sincroniza”:

procedureTWinForm.bt_ExecutaSincroniza_Click(sender:System.Object; e: System.EventArgs);begin bt_ExecutaSincroniza.Enabled := false; // Ajusta nome do programa Process1.StartInfo.FileName :=textBox1.Text; // Executa Process1.Start();end;

Listagem 3: Código fonte do botão Executa e Sincroniza.

Este é o código correspondente ao evento Exited docomponente Process1

procedure TWinForm.Process1_Exited(sender:System.Object; e: System.EventArgs);begin

bt_ExecutaSincroniza.Enabled := True;end;

Listagem 4: Código fonte do evento Exited.

Informações dos programas

Além de permitir saber quais os programas que estãorodando, a classe Process permite obter diversas informações decada um deles, como por exemplo:

· Memória usada (diversos tipos);· Prioridade;· Nome e caminho do executável do programa;· DLLs carregadas;· Data e hora de início e término;· Tempo de CPU usado.

O código abaixo lista os processo em um ListBox:

procedure TWinForm.bt_ListaProcessos_Click(sender: System.Object; e:System.EventArgs);

var // Variável do tipo Process Processos : array of process; // Variavel para controlar o for i : integer;begin //Pega os processos Processos := Process1.GetProcesses(); // Lista os processos for i := 0 to Length(Processos) - 1 do begin ListBox1.Items.Add(Processos[i].ProcessName); end;

end;

Listagem 5: Listagem de processos

Conclusão

Este foi um exemplo bem simples que mostra como podemosexecutar programas e listar os processos através do ambiente.NET. O ambiente .NET tem várias classes sobre diversosassuntos que nos auxilia muito no desenvolvimento diário.

Download:http://www.theclub.com.br/revista/download/exec0107.zip

20

Microsoft Visual StudioMicrosoft Visual StudioMicrosoft Visual StudioMicrosoft Visual StudioMicrosoft Visual StudioCode Name “Orcas”Code Name “Orcas”Code Name “Orcas”Code Name “Orcas”Code Name “Orcas”

Orcas

O The Club sempre procurou estar navanguarda tecnológica, e claro, isso paraque você fique sempre por dentro de todasas novidades que estão surgindo e que irãosurgir em programação. Por isso mesmo,nesta edição você já começará a conhecerum pouco mais sobre a nova versão doVisual Studio, conhecido pelo nome códigode “Orcas”. Na verdade o aplicativo que aMicrosoft está disponibilizando ao públicoainda está numa fase inicial dedesenvolvimento, não sei nem se podechamá-la de versão Alpha.

Se você está curioso assim como eu,pode baixar o Orcas deste endereço: http://www.microsoft.com/downloads/details.aspx?FamilyID=69055927-458b-4129-9047-fcc4facae96c&DisplayLang=en.No entanto quero avisá-lo que você estará fazendo download naverdade de uma máquina virtual do Windows 2003 Server paraser usada com o Virtual PC. No meu caso que estou usando oWindows Vista, também foi necessário baixar a versão beta doVirtual PC 2007 para que tudo funcionasse corretamente.Também quero deixar claro que provavelmente ainda não serápossível fazer coisa alguma com esta versão além de “brincar”um pouco com ela. Não sei se vale a pena para qualquer pessoa,devido ao seu tamanho, aproximadamente 6Gb considerando-seo arquivo base que é necessário para a máquina virtualfuncionar. Descompactados no HD, os arquivos ocuparão cercade 15Gb. É importante salientar que para fazer uma máquinavirtual funcionar adequadamente a máquina real tem que teruma configuração razoável e muita memória RAM disponível,

pois a máquina virtual como já dito é um 2003 Server, então sehouver pouca memória a disposição ficará extremamente lentasua execução.

Praticamente todas as novas tecnologias que estarãodisponíveis no novo Visual Studio já podem ser testadasseparadamente, basta ir até o site da Microsoft e pesquisar sobreo assunto em questão. É claro que os requerimentos mínimosenvolvem o Windows XP SP2 e .Net Framework 3.0.

Falando sobre algumas características

Windows Presentation FoundationO Windows Presentation Foundation é um subsistema de

Microsoft Visual StudioMicrosoft Visual StudioMicrosoft Visual StudioMicrosoft Visual StudioMicrosoft Visual StudioCode Name “Orcas”Code Name “Orcas”Code Name “Orcas”Code Name “Orcas”Code Name “Orcas”

Por Celso J. Paganelli

Tela de inicialização

21

Orcas

apresentação, uma nova geração que unifica os serviços de saída:interface do usuário, criação de desenhos e imagens 2D e 3D,impressão e processamento baseados em documentos, fala eserviços de áudio e de vídeo. Um dos principais objetivos doWindows Presentation Foundation é a integração. Os serviçoscomo animação e ligação de dados são usados exatamente domesmo modo, quer os objetivos sejam gráficos 2D ou 3D,elementos da interface do usuário, como botões e caixas de texto eoutros.

Os aplicativos do Windows Presentation Foundation sãoprocessados com um novo mecanismo de composição vetorial. Aaceleração de hardware é usada para o processamento em placasgráficas DirectX, com uma solução de software de fallback para ohardware de vídeo mais antigo. O sistema de coordenadas forneceum endereçamento de pixels independente deresolução e de dupla precisão que permite oferecersuporte para vídeos com ppps altos que estão setornando cada vez mais freqüentes.

O Windows Presentation Foundation tambémintroduz um novo modelo de programaçãodeclarativa com o codinome “XAML”, que permitindoque as interfaces do usuário sejam especificadascomo uma hierarquia de objetos com propriedades elógica. O XAML separa o design da interface do

usuário do código de maneira ordenada,permitindo que os designers de gráficos crieminterfaces do usuário atraentes e refinadas eque os desenvolvedores se concentrem nalógica do aplicativo.

Quer saber mais, experimentar e vertudo isso funcionando? Visite o site http://wpf.netfx3.com/files/folders/applications/default.aspx e divirta-se. Tudo com códigofonte. Maiores informações e download: http://msdn2.microsoft.com/en-us/windowsvista/aa904955.aspx.

The LINQ Project - LanguageIntegrated Query

Após duas décadas, a indústria alcançouum ponto estável na evolução das tecnologiasde programação OO (Orientadas a objetos).Os programadores agora aceitamnaturalmente recursos como classes, objetose métodos. Observando-se a geração atual efutura de tecnologias, torna-se aparente queo próximo grande desafio na tecnologia de

programação é reduzir a complexidade em acessar e integrarinformações que não são nativamente definidas utilizando atecnologia OO. As duas fontes mais comuns de informações não-OO são bancos de dados relacionais e XML.

Em vez de adicionar recursos relacionais ou específicos doXML às nossas linguagens e tempo de execução de programação,com o projeto LINQ, obtem-se uma abordagem mais geral eadicionam-se facilidades de consulta de propósito geral ao .NETFramework que se aplicam a todas as fontes de informações, nãoapenas a dados relacionais ou XML. Essa facilidade é chamadaLINQ (.NET Language Integrated Query). Entre as novasimplementações do LINQ estão:

· Expressões Query· Inicializadores Object e Collection· Métodos Extension· Variáveis de Tipo Local e Tipo Anônimo

Escolhendo o ambiente de trabalho

Configurando o ambiente de trabalho

22

Orcas

· Lambdas Bound para Delegates e Expression TreesPode ser que você não esteja entendendo muito bem o que

está sendo tratado aqui. Acredito que é muito mais simples sevocê ver exemplos práticos, nos quais todo o potencial destatecnologia será demonstrado. Veja aqui: http://www.microsoft.com/brasil/msdn/Tecnologias/arquitetura/LINQ.mspx e aqui: http://msdn.microsoft.com/data/ref/linq/.

Suporte a Runtime e Design-time para o Office 2007(incluindo o Outlook 2007)

Pode-se criar código gerenciado e add-ins, não importa qual aversão do Office que se queira atingir, ou qual aplicação do Officeque se quer interagir, ou qual linguagem de programação seráusada. Os add-ins de código gerenciado permitem que osdesenvolvedores usem membros de classes tipada, com a ajuda deutilitários modernos para o desenvolvimento, incluindointellisense e auto-completar. Além disso os add-ins podem

potencialmente rodar em múltiplas versões do Office. Como aprópria versão do Office 2007 ainda é muito recente, há anecessidade de se aprofundar nos estudos de ambas as

Tela inicial do “Orcas” - sem grandes mudanças até agora

Pronto para usar Windows Presentation Foundation

23

Orcas

plataformas para ter umcompleto entendimento dosrecursos e possibilidades queestão disponíveis aosdesenvolvedores e usuáriosfinais.

Suporte Intellisense noJScript

A formatação de códigoJscript e o suporte Intellisensefacilitam a vida dosdesenvolvedores. Estasmelhorias permitem que a IDEforneça complementação dedeclarações, sintaxe colorida eem destaque e umadocumetação in-place para oJscript associada aos modeloscomo o ASP.NET AJAX.

Empregue as últimastecnologias

Os desenvolvedores de umaforma geral sempre têm emmente estarem o maisatualizados com as últimastecnologias. Por issocompreender e ter informaçõesnão pode ser um problema nodia-a-dia. O novo Visual Studio,o Windows Vista e o Office 2007permitem tudo isso em qualquertipo de aplicação, facilitandoainda mais o desenvolvimento emelhorando significativamentea segurança das aplicações etambém para o usuário final.

É interessante que se vocêpuder e tiver condições jáacostume-se com o novoambiente aos novos itens a suadisposição, como por exemplo osrecursos que farão as suasaplicações com o mesmo visualdo Windows Vista ou Office2007, sem contar os inúmerosrecursos a disposição com o

Os novos projetos a disposição

Os novos projetos a disposição

24

Orcas

WPF (Windows Presentation Foundation), ADO.NET (novaversão), LINQ e outros.

Resumo

De uma forma geral o que podemos observar é que odesenvolvimento do Visual Studio ainda está num estágio muitoprimário, com a Microsoft ainda decidindo o que deverá ou nãoser implementado na ferramenta. É óbvio que o Framework 3.0já está disponível bem como vários recursos para se fazer aimplementação das novas tecnologias na versão atual do VisualStudio.

O que mais chamou a minha atenção até agora e certamentetambém atrairá muitas pessoas, é o Windows PresentationFoundation. As possibilidades gráficas que podem ser realizadassão muito superiores ao que estamos acostumados até hoje. Se

você estiver curioso para ver uma aplicação já pronta usando oWPF, procure o Yahoo Messenger for Windows Vista, játotalmente desenvolvido com esta nova tecnologia, os recursos sãoimpressionantes. Também aproveite e baixe o Microsoft Blend,um novo aplicativo para a construção de componentes visuaisque podem ser integrados ao Visual Studio ou na Web. Esteeditor tem algumas características interessantes, as quaismerecem exploração, lembrando que ele trabalha sobre o .NET3.0, e ao se trabalhar no designer da aplicação pode-se ver oresultado dos controles colocados, animações e outros , em xaml, oque facilita, no meu ponto de vista, a aprendizagem deste produtoe linguagem de markup. Você pode baixar o Blend e ter maisinformações a partir daqui: http://www.microsoft.com/products/expression/en/expression-blend/default.mspx.

Abaixo segue uma pequena listagem abordando os principaisprodutos e inovações que estão presentes no novo Visual Studio.

Exemplo da utilização do Windows Presentation Foundation (WPF)

25

Orcas

É de se esperar que muitomais coisas serãoacrescentadas àplataforma e tambémnovos templates efacilidades, o que aindanão foi possível notar noestágio atual dedesenvolvimento doproduto.

C# 3.0 LanguageSupport

VB 9.0 LanguageSupport

LINQ to Objects APIADO.NET Entity

Framework and LINQ toADO.NET

ClickOnce deploymentof Windows PresentationFoundation

Office 2007 (including Outlook 2007)Jscript Intellisense supportLINQ over XML (XLinq)SQL Server Compact Edition (SSCE).NET Framework 3.0eMbedded Visual C++ 4.0Desenvolvimento de aplicações para

VistaE T CBem, de toda maneira, é satisfatório

perceber que a Microsoft não está parada, emuito pelo contrário, quer reinventar todasua linha de softwares, deixando-os maisfuncionais, inteligentes e fáceis de usar.Obviamente isso refletirá nodesenvolvimento de novas aplicações etambém representará valor agregado,atendendo aos pedidos e solicitações dosusuários finais que sempre desejam estaracompanhando toda a evolução tecnológica,mesmo que em alguns casos isso não sejapossível por vários motivos.

Se você não agüenta esperar por tudoisso, visite a página http://msdn2.microsoft.com/en-us/vstudio/aa973758.aspx, baixe os softwaresdisponíveis para o Visual Studio 2005 ecomece a descobrir as suas funcionalidadesagora mesmo!Diagrama de entidade relacionamento da nova versão do ADO.Net

Novos ítens a disposição

26

Orcas

Blend - Ferramenta para uso do Windows Presentation Foundation (WPF) que facilita ao extremo o trabalho de projeto visual detodos os tipos de aplicações.

Utilizando na mesma máquina o Interbase 6 o Firebird 1.5.3.Para rodar o Interbase e o Firebird 1.5 na mesma máquina,

basta instalar o Firebird 1.5, NÃO gerar a cópia da GDS32.DLL(para não sobrepor a versão do Interbase já instalado) e depoismudar a PORTA de comunicação do Firebird. Para alterar aporta de comunicação do Firebird, abra o arquivo Firebird.conf(via um editor de textos qualquer) e localize a seguinte linha:

#RemoteServicePort = 3050

Tire o comentário (#) antes de RemoteServicePort e altere ovalor para 3051, por exemplo.

Em seu componente SQLConnection, no parâmetro

VENDORLIB, altere para: FbClient.dllE a partir disso, você não irá se referir mais a GDS32.DLL e

sim a FBCLIENT.DLL, ou seja, ao invés de compartilhar napasta a GDS32.DLL, deverá disponibilizar a FBCLIENT.DLL.

Uma alteração importante deverá ser feita na string deconexão como o banco, o novo número da porta também deveráser informado como mostra o exemplo abaixo:

Database=Servidor/3051:C:\Dados\Banco.fdb

Dessa forma terá o Interbase e o Firebird rodando semproblemas.

27

Perguntas & Respostas

Pergunta: Tenho uma dúvida que é a seguinte, eutenho algumas units do meu projeto que não gostariaque qualquer pessoa verificasse o seu código fonte.Neste caso como eu poderia fazer proteção destesfontes. Seria no meu projeto, no view source (*.dpr),eu colocaria a extensão do meus fontes como .DCU enão com a extensão .PAS ?

Resposta: Sim, você pode utilizar os arquivosDCU. Pois eles são os arquivos .PAS

compilados. Seria uma forma para proteger os seuscódigos.

Dúvida enviada por Sidney, Belo Horizonte - MG

Pergunta: Está me retornando com freqüência amensagem ‘out of memory’ quando executo umprocesso num determinado número de vezes. Uso acriação de query em tempo de execução, mas mecertifiquei que estão sendo desalocadas. O que mais eupoderia fazer para ajudar a não consumir tantamemória?

Resposta: Para resolver este problema vá até oBDE e altere o parâmetro SharedMemSize.Originalmente ele está com 2048, eu sugiro que vocêaltere para 8192.

Dúvida enviada por Luis, Caxias do Sul – RS

Pergunta: Preciso de uma ajuda para criar umdiretório e fazer uma cópia de um arquivo para o

diretório.

Resposta: Veja a seguir as duas rotinas que vocêestá precisando.

Para criar o diretório

uses FileCtrl; //declarar na uses

procedure TForm1.Button1Click(Sender:TObject);begin if not DirectoryExists(‘c:\temp’)then //verifica se existe if not CreateDir(‘C:\temp’) then //cria diretório raise Exception.Create(‘Cannotcreate c:\temp’);end;

Para realizar cópias de arquivos

CopyFile(‘teste.txt’,’C:\temp\teste.txt’,False);//origem para o destino

Dúvida enviada por Roberto, São Paulo - SP

Pergunta: Eu montei um relatório no quick reportpara imprimir etiquetas, 25,4 X 66,7 3 colunas c/código de barras tamanho carta, e quando eu imprimona folha carta normal ele imprimi na posição correta,mais quando eu imprimo na folha de etiquetastamanho carta ele imprimi um pouco para cima, às

28

Perguntas & Respostas

vezes um pouco para baixo, eu percebi que oQuickReport não está obedecendo a configuração damargem top. Existe alguma coisa que pode ser feitapra resolver isso?

Resposta: Existe um problema com a configuraçãode tamanho de papel relacionado com o Windows XP,se este for o seu problema, por favor leia esta matéria:

http://www.theclub.com.br/revista/pape1203.aspx.Um outro ponto também é verificar a versão do

QuickReport que você está utilizando. Caso não estejautilizando a versão 3.51, vá até o site do fabricante,www.qusoft.com e faça o download da última versão.

Dúvida enviada por Fernando, Ibitinga - SP

Pergunta: Desenvolvo uma aplicação que roda como Interbase 6.0 e preciso instalar um software queinstala o Firebird. Haveria algum problema deincompatibilidade entre os dois? Se sim, haveriaalguma forma de utilizar os dois bancos instalados namesma máquina?

Resposta: Não existirá incompatibilidade se osenhor configurá-los um em cada porta. Após instalaro Firebird vá para a pasta C:\Arquivos deProgramas\Firebird\Firebird_1_5\ e Localize oarquivo firebird.conf, abra esse arquivo no bloco denotas e localize a linha REMOTESERVICEPORT quedeve estar como 3050 e mude para 3051. Remova ocaractere # dessa linha para que ela possa tornar-seativa. Depois abra o prompt de comando, vá até apasta C:\Arquivos de Programas\Firebird\Firebird_1_5\Bin e digite isso: FBSERVER -AIrá aparecer o ícone do Firebird perto do relógio.

Duvida enviada por Leny, Rio de Janeiro - RJ

Pergunta: Estou utilizando o componenteXPManifest em minha aplicação e aparentementeficou muito bom, a não ser por algumas anomalias.

Em alguns panel/group box a cor definida em

projeto não aparece na aplicação rodando. Em alguns botões do tipo speedbutton / flat /

somente com um texto sem imagem a letra fica emnegrito e numa fonte muito maior que o definido nopróprio form .

Como posso resolver este problema? Resposta: Depois de ter colocado o Componente

XpManifest mude suas propriedades ParentBackground para false. Apenas isto resolverá o seuproblema.

Dúvida enviada por Marcelo, São Paulo - SP

Pergunta: Eu tenho um determinado objeto (edit)que está dentro de um panel, quando eu coloco apropriedade top, ele esta exibindo o número da posiçãoque ele esta dentro do panel. Eu gostaria de saberqual seria a posição desse objeto na minha tela inteira(form).

Resposta: Para saber qual a posição do edit dentrode um Panel em relação ao form é só somar apropriedade Top do edit com a do Panel. Isto pode serfeito da seguinte maneira:

procedure TForm1.Button1Click(Sender:TObject);var soma: integer;beginsoma:=edit1.Top + panel1.Top;

//somando os TopsShowMessage(IntToStr(Soma));

//Mostrando o resultadoend;

Dúvida enviada por Sidney, Belo Horizonte - MG

Pergunta: Tenho o Delphi instalado em umnotebook e em um micro desktop. Os dois estãoatualizados e aparentemente iguais. O problemaocorre quando em um DBCombobox escolho um ítempara gravar em uma tabela e caso queira zerar ou sejafazer com que o campo volte a ser nulo. No notebookfunciona e no micro não funciona. Fiquei sabendo queisso era um problema do Delphi 7 e que na atualizaçãoresolveria, mas só resolveu na atualização feita no

29

Perguntas & Respostas

notebook e não no desktop. Existe alguma forma deresolver este problema?

Resposta: Primeiramente como seu Delphi 7 já estáatualizado com o Update1, sugiro que faça aatualização dos componentes de acesso a dados com odatabase supplemental, esta atualização corrigeproblemas em procedimento de utilização acesso adados, veja abaixo o link

Delphi 7.1 Update - Database supplemental http://dn.codegear.com/article/32492

Dúvida enviada por Marcelo, São Paulo - SP

Pergunta: Como faço para sincronizar o rolamentoentre dois componentes TCheckListBox, ou seja, ao“rolar” os itens através do clique por sobre a barra derolagem vertical do componente 1, o componente 2 teráseus itens posicionados ou rolados da mesma forma?

Resposta: Para realizar este procedimento foinecessário criar um novo componente TCheckListBox,com o evento OnScroll para que pudéssemos “pegar” omovimento do scroll no componente.

Sendo assim você pode baixar o novo componente eum exemplo no link http://www.theclub.com.br/revista/download/CheckList.zip

Dúvida enviada por Gustavo, Campinas - SP

Pergunta: O que devo fazer para que a funçãoshowmessage não fique atrás de outra tela noWindows XP?

Isso acontece com freqüência nos meus softwares, ousuário só percebe se der um alt+tab, senão ele achaque o sistema travou.

Resposta: Isto acontece pelo fato do Windows acharque o seu programa travou e acaba habilitando asjanelas fazendo a função Modal parar de funcionar.Uma alternativa é mudar a propriedade FormStyle deStayonTop para fsNormal possa resolver seu

problema.

Outra alternativa seria desligar estecomportamento do Windows utilizando a

função abaixo.

Procedure DesabilitaControlJanelaWin;// desabilitar o controle de// janela do Windowsvar DisableProcessWindowsGhostingImp :procedure;begin @DisableProcessWindowsGhostingImp := GetProcAddress(GetModuleHandle (‘user32.dll’),

’DisableProcessWindowsGhosting’); if@DisableProcessWindowsGhostingImp <>nil then DisableProcessWindowsGhostingImp;end;

Dúvida enviada por Jaqueline, Rio do Sul - SC

Pergunta: Como eu poderia montar uma máscarapara apresentar um campo formatado do tipo CNPJ,por exemplo, em um ShowMessage?

O campo armazenado na tabela é do tipo string

sem formatação. mytabela.FieldByName(‘CNPJCPF’).AsString,

onde precisaria aplicar uma formatação de CNPJ.

Resposta: Neste caso você pode utilizar umafunção do Delphi chamada FormatMaskText. Veja oexemplo a seguir. Mas atenção, não esqueça dedeclarar a unit MaskUtils.

//Mostrando em um ShowMessageprocedure TForm1.BitBtn1Click(Sender:TObject);var str:string;begin

30

Perguntas & Respostas

//Exemplo para o campo CNPJ str:= FormatMaskText(’99.999.999/9999-99',suatabela.Fieldbyname(‘CNPJ’).Asstring); ShowMessage(str);end;

Dúvida enviada por Marcelo, São Paulo - SP

Pergunta: Eu gostaria de saber como faço paraverificar/colocar um registro em mysql em modo delock/unlock, para travamentos de acessos. Eu estavapesquisando uma função sql chamada GET_LOCK() ERELEASE_LOCK, mas não vi uma forma de usá-lacom o UPDATE. O uso dele é mais ou menos assim:

select get_lock(chave_pri,2).

Não vi como fazer essa verificação no UPDATE, namesma instrução sql.

Resposta:A sintaxe do comando LOCK/UNLOCK é

LOCK TABLES nome_tabela [AS alias]{READ [LOCAL] |[LOW_PRIORITY] WRITE}[, nome_tabela [AS alias]{READ [LOCAL] |[LOW_PRIORITY] WRITE}...]...UNLOCK TABLES

Nós não trabalhamos com este banco de dados, poristo aconselho a dar uma verificada neste site ondeencontramos informações mais detalhadas que poderãolhe auxiliar.

Veja em http://dev.mysql.com/doc/refman/4.1/pt/lock-tables.html.

Dúvida enviada por Carlos, Belo Horizonte – MG.