Í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 do Conduit com o Banco de Dados... 20 Adicionado Tabelas... 24 Tabelas do Agenda.mdb...24 Tabela Remota DBAgen.pdb...30 Editando os códigos do conduit...34 http://www.softpalm.com.br http://br.groups.yahoo.com/group/livro-nsbasic 1
Desenvolvendo Conduits (Passo a Passo) O objetivo deste documento é exibir ao programador Palm uma forma de sincronizar os dados em um arquivo.pdb (Palm) com um arquivo.mdb (PC). Por que arquivo.mdb? Utilizando um arquivo como o.mdb vou ter certeza que atingirei um grande número de pessoas que tenha um sistema compatível com este arquivo ou pelo menos tenha utilizado este uma vez na vida. Criando um Arquivo.mdb. Para criar um arquivo.mdb (Access) clique em Iniciar Programas Microsoft Access conforme a imagem abaixo. Figura 1 - Iniciando o Microsoft Access http://www.softpalm.com.br http://br.groups.yahoo.com/group/livro-nsbasic 2
Será então aberto o Microsoft Access conforme a imagem abaixo. Selecione a opção Banco de Dados Vazio do Access. Figura 2 - Opções de Microsoft Access Após selecionar a opção que criará um novo banco de dados você terá que salvar este arquivo, pedimos que para manter o padrão deste Tutorial crie uma pasta chamada Conduits na raiz C:\. Salve este arquivo como Agenda. Posso adiantar que nosso Conduit irá sincronizar o banco de dados criado no exemplo Agenda que está devidamente exemplificado no livro Desenvolvendo Aplicações Palm com NS Basic, não se preocupe pois este arquivo já vem dentro do mesmo arquivo.zip que contem este Tutorial. Então vamos criar uma tabela no Access que será chamada de contatos. Para isso selecione a opção Criar tabela no modo estrutura conforme a imagem abaixo: http://www.softpalm.com.br http://br.groups.yahoo.com/group/livro-nsbasic 3
Figura 3 - Opções para criar uma tabela Será aberta uma nova janela conforme a Figura abaixo, aqui você poderá criar a estrutura da Tabela utilizada no nosso exemplo. Figura 4 - Estrutura da Tabela Contatos Agora que temos os campos preenchidos precisamos definir o campo chave, no NS Basic temos sempre o primeiro campo como chave e por convenção vamos adotar este campo chave aqui também. Para definir um campo como chave clique com o botão direito do mouse na lateral do campo, conforme a figura abaixo: http://www.softpalm.com.br http://br.groups.yahoo.com/group/livro-nsbasic 4
Figura 5 - Definindo o campo chave Após definir os campos e as chaves podemos agora editar nossos primeiros registros nesta tabela e exportar para o Palm. Para entrar no modo de edição no Access precisamos salvar esta tabela, para isso clique no ícone Exibir. Ícone Exibir Figura 6 - Modo edição. Salve a tabela com o nome de Contatos conforme a figura abaixo: Figura 7 - Salvando a Tabela Agora que temos nossa tabela pronta precisamos editar alguns registros para mais tarde exportar para o Palm, abaixo temos alguns registros já preenchidos. http://www.softpalm.com.br http://br.groups.yahoo.com/group/livro-nsbasic 5
Figura 8 - Editando alguns registros. Esta lista deve estar devidamente ordenada, caso não esteja o NS Basic não terá capacidade de encontrar as chaves das procuras. O Ns Basic utiliza a Busca binária. Guarde os dois últimos telefones pois caso tenha dúvidas a Softpalm terá prazer em ajudar. Feche a tabela e saia do Access, lembre-se este é um Tutorial passo a passo, logo não entraremos em detalhes sobre o Access. Arquivos No download que você efetuou você encontrou vários arquivos, abaixo estou descrevendo cada um. Arquivo Descrição TemplateConduit Contem um template já pré-pronto para ser utilizado. ConduitFeito Contem o Conduit já editado. Utilize para referencia se o seu apresentar problemas. ConduitDelphi.pdf Arquivo para auxilio no desenvolvimento de Conduits (Tutorial) Agenda.prc Aplicativo já compilado NSBRunTime.prc Run-Time para executar o Agenda.prc no Palm, é obrigatório a instalação deste para executar a Agenda. AgendaD.prj Aplicativo não compilado, você encontra o código fonte para o NS Basic Agendaa.cód Arquivo module para uso no AgendaD.prj Agenda.mdb Banco de Dados Do Access. DTAgenda Arquivo Data Link Condcfg.exe Executável utilizado para registro de Conduits Delphi-conduits Pasta com os componentes para o Delphi 4, 5, 6, e 7 Antes de continuar você ainda precisa instalar o PalmDesktop e o Delphi. http://www.softpalm.com.br http://br.groups.yahoo.com/group/livro-nsbasic 6
O PalmDesktop é um Software gratuito e você pode adquirir no site www.palmbrasil.com.br. Já o Delphi não é gratuito, aconselhamos o uso do Delphi 7. Instalando os componentes Após instalar o Delphi e descompactar o conjunto de componentes que acompanha este arquivo clique em File Open... conforme a imagem abaixo Figura 9 - Abrindo os componentes. Abra a pasta com os componentes e escolha o componente respectivo ao seu Delphi, no meu caso vou utilizar o Delphi 7. Veja a figura abaixo: http://www.softpalm.com.br http://br.groups.yahoo.com/group/livro-nsbasic 7
Figura 10 - Componentes do Delphi 4, 5, 6 e 7. Será aberta uma nova janela com a relação de componentes a serem instalados. Figura 11 - Conjunto de componentes a serem Instalados. http://www.softpalm.com.br http://br.groups.yahoo.com/group/livro-nsbasic 8
Clique em Install e depois em Compile. Será exibido um relatório e o resultado da instalação. Figura 12 - Relatório de arquivos instalados. Agora que temos os componentes instalados podemos iniciar nosso projeto, para isso clique em File Open... Abra o arquivo Conduit que está dentro da pasta TemplateConduit. Figura 13 - Template do Projeto Após abrir o projeto devemos abrir o Data Module, para isso clique em View Project Manager conforme a figura abaixo. http://www.softpalm.com.br http://br.groups.yahoo.com/group/livro-nsbasic 9
Figura 14 - Abrindo o Project Manager Será aberta uma nova janela com os componentes já adicionados no template, abra o Data Module conforme a figura abaixo: Figura 15 - DataModule Será aberta o Data Module conforme a imagem abaixo, repare que já temos um componente adicionado. Utilizamos este componente para alterar as configurações básicas do Conduit, tais como: Nome, CreatorID, etc.. http://www.softpalm.com.br http://br.groups.yahoo.com/group/livro-nsbasic 10
Figura 16 - DataModule Vamos abrir as propriedades deste componente para isso clique sobre o PalmComponent e tecle F11. Figura 17 - Propriedades do Componente Abaixo temos uma relação dos principais campos desta Paleta de Propriedades: Campo ConduitName ConduitVersion Name Descrição Nome do Conduit. Versão do Consuit. Nome deste componente. http://www.softpalm.com.br http://br.groups.yahoo.com/group/livro-nsbasic 11
Já podemos compilar nosso Conduit, porem é claro que ele não irá fazer nada de muito impressionante, talvez nem funcione, porem podemos agora ver os problemas básicos de configuração. Vamos efetuar o seguinte passo. Vamos compilar nosso projeto, mas antes vamos direcionar nossa dll para o diretório do PalmDesktop, para isso clique em Projetc Options conforme a figura abaixo. Figura 18 Opções para Project Será aberta uma nova janela conforme a imagem abaixo, digite o diretório de instalação do PalmDesktop. http://www.softpalm.com.br http://br.groups.yahoo.com/group/livro-nsbasic 12
Figura 19 - Opções de diretórios. Agora que redirecionamos nossa DLL para o diretório do PalmDesktop vamos compilar nosso arquivo clicando em Project Build Conduit conforme duas Figuras acima. Caso nosso projeto tenha exibido algum erro você deve recompilar os componente conforme o procedimento abaixo. Recompilando os Comonentes do Delphi Nosso primeiro passo é: Clicar em Component Install Component... http://www.softpalm.com.br http://br.groups.yahoo.com/group/livro-nsbasic 13
Figura 20 - Compilando os componentes. Em Pakager file name selecione o pfgpalmconduitsd7.dpk conforme a figura abaixo: Figura 21 - Janela de Instalação de Componentes No campo Unit file name clique em Browse... e será aberta uma nova janela como no exemplo abaixo: http://www.softpalm.com.br http://br.groups.yahoo.com/group/livro-nsbasic 14
Figura 22 - Relação de todos os componentes Selecione todos os componentes e clique em Abrir. Nada foi digitado no campo Search Path. Agora que selecionamos todos os componentes basta clicar em Ok Figura 23 - Janela de Instalação de Componentes Será aberta novamente a janela de Pakager conforme a figura abaixo. Clique em Compile e feche a janela. http://www.softpalm.com.br http://br.groups.yahoo.com/group/livro-nsbasic 15
Figura 24 - Package - pfgpalmconduitsd7 Voltando ao projeto da DLL compile novamente. Podemos ver a DLL compilada no diretório do PalmDesktop conforme a imagem. Figura 25 - Windows Explorer C:\Arquivos de Programas\Palm Se você tentar executar o HotSync você não encontrará nenhum vestígio da execução do conduit pois para que este seja executado devemos ainda instalar no Palm a agenda e configurar o Conduit com o auxilio de uma ferramenta que acompanha este arquivo. Vamos primeiro instalar a agenda no Palm. Isso não é segredo para ninguém, basta dar um duplo clique no arquivo agenda.prc e sincronizar. Após instalar a agenda no palm temos que registrar o conduit, para isso copie a ferramenta Condcfg.exe que acompanha este arquivo e cole na raiz da pasta do PalmDesktop, ou seja, junto com o Conduit.dll, estando lá execute o mesmo. Será aberta uma janela conforme a exibida abaixo: http://www.softpalm.com.br http://br.groups.yahoo.com/group/livro-nsbasic 16
Figura 26 - CondCFG.exe Há primeira vista podemos ver todos os conduits já instalados. Vamos Configurar o nosso, para isso clique em Add.. Será aberta uma nova tela conforme abaixo: Figura 27 - Informações básicas para registro do Conduit Edite as propriedades deste componente conforme a tabela abaixo: http://www.softpalm.com.br http://br.groups.yahoo.com/group/livro-nsbasic 17
Campo Valor Conduit Type Component Conduit Conduit Creator ID EX04 Priority 2 Agora clique em OK. Nossa DLL já faz parte do conjunto de conduits a serem executados no HotSync. Figura 28 - Relação de conduits para Sincronização. Clique em Exit. Será exibida a seguinte mensagem. Figura 29 - Mensagem do Conduit Manager. O HotSync será Reiniciado, caso isto não ocorra reinicie manualmente o HotSync. Agora que a DLL está devidamente registrada estamos prontos para efetuar o primeiro HotSync com o Conduit. Efetue o HotSync. http://www.softpalm.com.br http://br.groups.yahoo.com/group/livro-nsbasic 18
Para saber se o conduit foi executado basta clicar com o botão direito do mouse sobre o ícone de hotsync Figura 30 - Opções do HotSync. Será exibido uma nova janela com o relatório completo do andamento do HotSync, incluindo data, componentes, becaps, etc.. http://www.softpalm.com.br http://br.groups.yahoo.com/group/livro-nsbasic 19
Inicio do HotSync Inicio da execução do Conduit Fim da execução do Conduit. Fim do HotSync Figura 31 - Relatório da execução do HotSync Temos nosso conduit funcionado, você deve estar pensando duas coisas: 1 Ele não fez nada de especial. 2 Por que não ligar para a esposa (patroa) para desmarcar tudo e continuar estudando este Tutorial? Para o pensamento 1 ele fez a coisa mais difícil, ele acionou um conduit, agora tudo vai ficar mais fácil pois o template já está rodando. Configurando a Conexão do Conduit com o Banco de Dados Vamos agora configurar a conexão do nosso conduit com o Banco de dados Agenda.mdb. Vamos copiar o arquivo DTAgenda que acompanha este Tutoria e colar em: http://www.softpalm.com.br http://br.groups.yahoo.com/group/livro-nsbasic 20
Links C:\Arquivos de programas\arquivos comuns\system\ole DB\Data Este arquivo Data Link será utilizado como ancora para nosso conduit pois se o usuário modificar o diretório do Banco de Dados Agenda.mdb ele não precisa recompilar a DLL, basta modificar o endereço no Data Link. Dê um duplo clique sobre o objeto Data Link para entrar nas configurações deste arquivo, será exibido uma janela de configurações de conexão conforme a Figura abaixo: Caminho do Arquivo Agenda.mdb Teste a conexão antes de prossegui Figura 32 - Propriedade do Data Link Voltando ao Delphi, vamos adicionar um componente de conexão e apontar para este Data Link, para isso selecione a paleta ADO conforme a imagem abaixo. http://www.softpalm.com.br http://br.groups.yahoo.com/group/livro-nsbasic 21
Figura 33 - Paleta de Componentes do Delphi 7 Componente de Conexão ADO Paleta ADO Adicione o componente de conexão indicado na figura acima, basta clicar no componente e depois clicar sobre o Data Module. Após clicar no componente clique aqui para adicionar o componente. Figura 34 - Data Module Agora precisamos modificar as propriedades do ADOConnection1. Dê um duplo clique neste Componente. Figura 35 - Data Module com o objeto ADOConnection http://www.softpalm.com.br http://br.groups.yahoo.com/group/livro-nsbasic 22
Ao dar um duplo clique no componente ADOConnection você pode configurar a conexão apontando para o Data Link. Selecione Use Data Link File e clique em Browse. Figura 36 - Configuração da Conexão ADOConnection1 Será aberta uma nova janela onde podemos escolher o Data Link DTAgenda. Figura 37 - Arquivos Data Link Clique em Abrir e será fechado esta janela e voltaremos ao componente de Conexão ADOConnection1. http://www.softpalm.com.br http://br.groups.yahoo.com/group/livro-nsbasic 23
Figura 38 - Configuração da Conexão ADOConnection1 Clique em OK e pronto, temos nossa conexão perfeitamente configurada. Adicionado Tabelas Para utilizar as tabelas temos que adicionar componentes ao Data Module. Cada banco terá um componente diferente e serão feitos por partes. Tabelas do Agenda.mdb Nosso próximo passo é adicionar um componente ADO que faça a conexão com a tabela Contatos no arquivo Agenda.mdb. Selecione o componente ADOTable na paleta ADO, conforme na Figura abaixo: Figura 39 - Objetos ADO ADOTable Agora basta dar um clique sobre o Data Module, posicione o componente conforme a Figura abaixo: http://www.softpalm.com.br http://br.groups.yahoo.com/group/livro-nsbasic 24
Figura 40 - Data Module Selecione o componente ADOTable1 e clique F11, repare que será aberta uma Janela de propriedades no lado esquerdo do Delphi. http://www.softpalm.com.br http://br.groups.yahoo.com/group/livro-nsbasic 25
Figura 41 - Propriedades do Componente ADOTable1 Clique sobre o campo Connection para selecionar a conexão que esta tabela deve utilizar. Selecione a conexão configurada no componente ADOConnection1 conforme a Figura abaixo. http://www.softpalm.com.br http://br.groups.yahoo.com/group/livro-nsbasic 26
Figura 42 - Propriedades do ADOTable1 Agora que selecinamos o objeto ADOConnection1 vamos selecionar a tabela que este componente deve se conectar, para isso clique sobre o campo TableName e selecione a tabela Contatos. Figura 43 - Propriedades do ADOTable1 Vamos agora definir o campo chave, este deverá ser ordenado durante o Sincronismo, para isso basta informar o campo nome em IndexFieldNames. http://www.softpalm.com.br http://br.groups.yahoo.com/group/livro-nsbasic 27
Figura 44 - Propriedades do ADOTable1 Agora só falta modificar o nome do componente. Será por este nome que vamos nos referir no Delphi a este componente. Selecione o campo Name e edite PCContatos conforme a Figura abaixo. Figura 45 - Propriedades do ADOTable1 Agora vamos editar os Fields que estão nesta tabela, para isso clique com o botão direito do Mouse sobre o objeto PCContatos (antigo ADOTable1) e selecione a opção Fields Editor... conforme a imagem abaixo. http://www.softpalm.com.br http://br.groups.yahoo.com/group/livro-nsbasic 28
Figura 46 - Abrindo o Editor de Fields O Editor de Fields do componente PCContatos é bem simples, veja a figura abaixo: Figura 47 - Editor de Fields do PCContatos Para carregar os Fields basta clicar com o botão direito do mouse sobre este editor e selecionar a opção Add All Fields. http://www.softpalm.com.br http://br.groups.yahoo.com/group/livro-nsbasic 29
Figura 48 - Adicionando automaticamente todos os Fields Ao clicar em Add All Fieds o Delphi irá reconhecer automaticamente os campos da tabela Contatos do arquivo Agenda.mdb, conforme a figura abaixo. Figura 49 - Campos da tabela Contatos Tabela Remota DBAgen.pdb Para acessar a tabela do palm temos que criar um componente Remoto, para isso selecione a paleta Palm Pilot, caso ela não esteja visível clique em avançar para visualizar esta paleta. Veja a figura abaixo: http://www.softpalm.com.br http://br.groups.yahoo.com/group/livro-nsbasic 30
Figura 50 - Visualizando as demais paletas do Delphi. Clique aqui para visualizar todas as paletas do Delphi Abaixo temos a paleta de componentes para Palm Pilot. Figura 51 - Paleta de componentes Palm Pilot pfgpalmremotetable Selecione pfgpalmremotetable e clique no Data Module. Clique sobre o componente adicionado ao Data Module e tecle F11 para acessar suas propriedades. Modifique o campo Nome para PalmContatos. No campo TableName digite DBAgen e no campo Creator ID digite EX04. Veja a figura abaixo. http://www.softpalm.com.br http://br.groups.yahoo.com/group/livro-nsbasic 31
Figura 52 - Propriedades do pfgpalmremotetable Para editar os fields desta tabela remota basta clicar no campo FieldDefs, irá aparecer 3 pontos conforme a imagem abaixo: Clique aqui para entrar no editor de Fields Figura 53 - Propriedades do PalmContatos Será exibido a janela abaixo, este editor não reconhece automaticamente os campos, porem temos que adicionar um a um e configurar os Fields. http://www.softpalm.com.br http://br.groups.yahoo.com/group/livro-nsbasic 32
Clique aqui para adicionar novos Filds Figura 54 - Editor de Fields do PalmContatos Ao adicionar dois novos Fields clique sobre o primeiro e tecle F11 para editar as propriedade deste Field. Selecione este registro e tecle F11 Figura 55 - Editor de Fields do PalmContatos No editor de propriedades do primeiro field Altere suas propriedades para: Campo Data Type Field Name Valor ptstring Nome Veja a Figura abaixo: http://www.softpalm.com.br http://br.groups.yahoo.com/group/livro-nsbasic 33
Figura 56 - Propriedades do Primeiro Field Modifique as propriedades do segundo Field para: Campo Data Type Field Name Valor ptstring Telefone Logo nossa Tabela Remota (PalmContatos) terá os seguintes campos: Figura 57 - Campos em PalmContatos Editando os códigos do conduit Podem dizer adeus as configurações, agora vamos entrar no código fonte do conduit. Não se assuste pois utilizaremos poucos conceitos de Delphi. Para entrar no editor de código do Data Module basta clicar na tela ao fundo do Data Module ou teclar F12. http://www.softpalm.com.br http://br.groups.yahoo.com/group/livro-nsbasic 34
Figura 58 Delphi 7 Data Module Editor de códigos do Data Module Para entrar ou sair do Editor de Códigos do Data Module basta teclar F12. Abaixo temos o código já gerado para o Data Module. unit DataModule; interface uses SysUtils, Classes, Forms, pfgpalmdb, pfgbaseclasses, pfgpalmcomp, DB, ADODB; type TDados = class(tdatamodule) PalmComponent: TpfgPalmComponent; ADOConnection1: TADOConnection; unit DataModule; interface http://www.softpalm.com.br http://br.groups.yahoo.com/group/livro-nsbasic 35
uses SysUtils, Classes, Forms, pfgpalmdb, pfgbaseclasses, pfgpalmcomp, DB, ADODB; type TDados = class(tdatamodule) PalmComponent: TpfgPalmComponent; ADOConnection1: TADOConnection; PCContatos: TADOTable; PCContatosNome: TWideStringField; PCContatosTelefone: TWideStringField; PalmContatos: TpfgPalmRemoteTable; procedure PalmComponentExecConduit(const props: TpfgSyncProperties); procedure DataModuleCreate(Sender: TObject); procedure DataModuleDestroy(Sender: TObject); private FCacheLocaliza: TStringList; //-----------------Campo 1----------------------------------- //-----------------Não modificar nada acima------------------ //-----------------Aqui eu Declaro as Procedures------------- //----------------Fim das declarações------------------------ //----------------Não modificar nada abaixo------------------ public end; var Dados: TDados; implementation uses pfgwtypes, pfgpalmmisc, pfgpalmsyncerror, pfgsyncmgr, pfghslog; {$R *.dfm} //-----------------Campo 2--------------------------------------- //-----------------Não modificar nada Acima---------------------- //-----------------Aqui eu Implemento as Procedures-------------- //----------------Fim da área de Implementação de Procedures----- //----------------Não modificar nada abaixo---------------------- procedure TDados.PalmComponentExecConduit(const props: TpfgSyncProperties); var h: CONDHANDLE; begin // Register the conduit activity PalmCheck(SyncRegisterConduit(h)); try try Log('', slsyncstarted); Log('*************************************************************'); Log('*************************************************************'); http://www.softpalm.com.br http://br.groups.yahoo.com/group/livro-nsbasic 36
Log('http://br.groups.yahoo.com/group/livro-nsbasic'); Log('*************************************************************'); Log('*************************************************************'); Log('Livro de NS Basic para PalmOS www.softpalm.com.br'); //--------------Campo 3------------------------------------ //--------------Não modificar nada acima------------------- //--------------Aqui eu chamo as procedures---------------- Log(' Aqui faço as chamadas as procedures...'); //--------------Fim---------------------------------------- //--------------Não modificar nada abaixo------------------ Log('************************************************************'); Log('************************************************************'); Log(' '); except on E: Exception do Log('Erro durante sincronização. Mensagem original: ' + e.message); end; Log(ConduitName, slsyncfinished); finally SyncUnRegisterConduit(h); end; end; procedure TDados.DataModuleCreate(Sender: TObject); begin FCacheLocaliza:= TStringList.Create; FCacheLocaliza.Sorted:= True; end; procedure TDados.DataModuleDestroy(Sender: TObject); begin FCacheLocaliza.Free; end; initialization Dados:= TDados.Create(Application); finalization Dados.Free; end. http://www.softpalm.com.br http://br.groups.yahoo.com/group/livro-nsbasic 37
Marquei três campos editáveis, não que você não possa modificar todo o código apenas quis padronizar o conduit. No campo 1 vamos declarar as procedures que vamos utilizar. Vamos dividir em duas parocidures diferentes a TransferePamparaPC e TransferePCparaPalm. Edite no campo 1 o seguinte código: procedure TransferePalmparaPC; procedure TransferePCparaPalm; No campo 2 vamos implementar as duas procedures declaradas acima, para isso digite o seguinte código: procedure TDados.TransferePalmparaPC(); begin //Confirmando se exixte a tabela DBAgen.pdb no Palm //Caso não exista devemos criar utilizando CreateTable if not PalmContatos.Exists then PalmContatos.CreateTable; //Devemos abrir todas as tabelas envolvidas no processo PalmContatos.Open; PCContatos.Open; try //Informando o numero de registro no Palm. Utilizamos RecordCount //RecordCout retorna um número Inteiro Log('total de registros no Palm: ' + InttoStr(PalmContatos.RecordCount)); //Se possuimos um ou mais registro devemos iniciar a trasferencia if PalmContatos.RecordCount > 0 then begin Log('Iniciando a trasferencia'); //Aplicanto um While no PalmContatos. EOF se for fim de arquivo while not PalmContatos.EOF do begin //Verificando se exite o nome no banco de dados Agenda.mdb if not PCContatos.Locate('Nome', PalmContatos.FieldByName('Nome').asString, []) then begin //Caso não exista devemos inserir em Agenda.mdb o registro que //vem do DBAgen.pdb Log('Inserindo: ' + PalmContatos.FieldByName('Nome').asString); PCContatos.Insert; end else begin //Caso já exista vamos modificar Log('Alterando: ' + PalmContatos.FieldByName('Nome').asString); PCContatos.Edit; End; http://www.softpalm.com.br http://br.groups.yahoo.com/group/livro-nsbasic 38
PCContatos.FieldByName('Nome').asString := PalmContatos.FieldByname('Nome').asString ; PCContatos.FieldByName('Telefone').asString := PalmContatos.FieldByname('Telefone').asString ; //Temos que enviar, para isso vamos utilizar o Post PCContatos.Post; //Avançar um Registro com o Next PalmContatos.Next; End; //Fehando todas as tabelas PalmContatos.Close; PCContatos.Close; end; finally //Caso ocorra algum erro devemos fechar todas as tabelas PalmContatos.Close; PCContatos.Close; end; end; procedure TDados.TransferePCparaPalm(); begin if PalmContatos.Exists then PalmContatos.DeleteTable; PalmContatos.CreateTable; PalmContatos.Open; PCContatos.Open; try Log('total de Registros no PC: ' + InttoStr(PCContatos.RecordCount)); if PCContatos.RecordCount > 0 then begin Log('Iniciando a trasferencia'); while not PCContatos.EOF do begin PalmContatos.Insert; Log('Inserindo: ' + PCContatos.FieldByName('Nome').asString ); PalmContatos.FieldByName('Nome').asString := PCContatos.FieldByname('Nome').asString ; PalmContatos.FieldByName('Telefone').asString := PCContatos.FieldByname('Telefone').asString ; PalmContatos.Post; PCContatos.Next; End; PalmContatos.Close; PCContatos.Close; end; finally PalmContatos.Close; PCContatos.Close; end; end; http://www.softpalm.com.br http://br.groups.yahoo.com/group/livro-nsbasic 39
No campo 3 estaremos chamando as procedures. Sempre que o Conduit for executado ele acionará a procedure PalmComponentExecConduit(). Log('Palm -> PC'); TransferePalmparaPC(); Log(''); Log('PC -> Palm'); TransferePCparaPalm(); Log('Trasferencia finalizada com sucesso.'); Sincronize o Palm, não se esqueça de instalar a Agenda no palm. Bom visualize a execução do Conduit através da Janela HotSync Progress. Figura 59 - HotSync Progress Para visualizar o relatório gerado pelo HotSync clique com o botão direito do mouse sobre o símbolo de Hostync no canto inferior direito da tela e selecione View Log...,veja a figura abaixo. http://www.softpalm.com.br http://br.groups.yahoo.com/group/livro-nsbasic 40
Figura 60 - Opções da ferramenta Hotsync Abaixo temos uma descrição do Log. Total de registro no Palm. Utilizamos InttoStr(PalmContatos.RecordCount) Total de registro no PC. Utilizamos InttoStr(PCContatos.RecordCount) Linha escrita por Log( PC -> Palm ) Finalização do Conduit. Resultado OK http://www.softpalm.com.br http://br.groups.yahoo.com/group/livro-nsbasic 41
Este foi um simples exemplo de conduit que desenvolvi para auxiliar a configuração e desenvolvimento. Estamos na primeira versão deste tutorial e falta muito para este se tornar um Tutorial completo, porem já é um grande avanço divulgar o básico da construção do conduit em Delphi. Estaremos sempre atualizando este tutorial e divulgando nestes dois links: http://www.softpalm.com.br http://br.groups.yahoo.com/group/livro-nsbasic Caso tenha alguma sugestão entre em algum destes dois links a cima e envie, lembrando que nossa próxima versão deve estar disponível nos links acima em meados do dia 3/04/2004. Muito obrigado Wellington Pinto de Oliveira. 25/03/2004 http://www.softpalm.com.br http://br.groups.yahoo.com/group/livro-nsbasic 42