© 2002-2005 by Cialogica Tecnologia em Informática Ltda
SyncAnywherev1.22
SyncAnywhere v1.22by Marcio Alexandroni
SyncAnywhere é um produto especialmente desenvolvidopara utilização no suporte a sincronização de dados. Comele é possível compactar vários bancos de dados em umúnico banco de dados Palm para que o envio dos dadosseja mais rápido e simplificado, e conta também com adescompactação dos bancos de dados, além de um clienteFTP para a transmissão e recepção de dados.
Todos os direitos reservados. Nenhuma parte deste documento pode ser reproduzida em qualquer forma ou porqualquer meio, seja gráfico, eletrônico ou mecânico, incluindo fotocópia, gravação em qualquer tipo de mídia, ousistemas de armazenamento e recuperação de informações sem a permissão do autor.
Produtos que são referenciados neste documento são marcas registradas dos respectivos proprietários. O autorreconhece as devidas marcas e seus proprietários como legítimos autores dos produtos citados.
Embora toda precaução tenha sido tomada na preparação deste documento, o autor não assume a responsabilidadepor danos causados pelo uso da informação contida neste documento ou do uso indevido de programas e/ou códigofonte que seja gerado com a ajuda deste produto. Neste caso, o autor não pode ser responsabilizado por qualquerperda or dano ou qualquer outra acusação causada direta ou indiretamente pelo conteúdo deste documento.
SyncAnywhere v1.22
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
Tabela de Conteúdo
Parte I Introdução 7
................................................................................................................................... 71 Conceitos
................................................................................................................................... 72 Apresentação
................................................................................................................................... 73 Últimas Atualizações
................................................................................................................................... 94 Conteúdo do Pacote
Parte II Cliente Palm 12
................................................................................................................................... 121 Introdução
................................................................................................................................... 122 PocketStudio
... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 12Instalação
... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 12Utilização
... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 18Funções do SyncAnywhere
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 18SyncAnywhereOpenRef
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 18SyncAnywhereCloseRef
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 19SyncAnywhereGetVersion
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 19SyncAnywhereCheckSumOn
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 20SyncAnywhereCheckSumOff
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 20SyncAnywhereUIDSupportOn
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 21SyncAnywhereUIDSupportOff
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 22SyncAnywhereSetPackDataBlock
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 22SyncAnywhereSetSendUpdateProc
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 23SyncAnywhereSetReceiveUpdateProc
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 24SyncAnywhereSetPackUpdateProc
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 25SyncAnywhereSetUnpackUpdateProc
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 26SyncAnywhereSetCreatorID
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 27SyncAnywherePackDatabase
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 28SyncAnywhereGetDBCount
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 28SyncAnywhereGetDBName
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 29SyncAnywhereCheckDatabase
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 30SyncAnywhereUnpackDatabase
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 30SyncAnywhereUnpackOneDB
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 31SyncAnywhereUnpackApplication
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 31SyncAnywhereSetNetLib
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 32SyncAnywhereNetLibOpen
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 32SyncAnywhereNetLibClose
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 33SyncAnywhereModemDetect
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 33SyncAnywhereDial
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 34SyncAnywhereDialWireless
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 35SyncAnywhereOpenActiveService
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 35SyncAnywhereOpenService
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 36SyncAnywhereHangup
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 36SyncAnywhereFTPPassiveModeOn
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 37SyncAnywhereFTPPassiveModeOff
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 37SyncAnywhereSetTCPDelay
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 38SyncAnywhereFTPOpen
SyncAnywhere v1.22I
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 39SyncAnywhereFTPClose
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 39SyncAnywhereFTPCd
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 40SyncAnywhereFTPMkd
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 40SyncAnywhereFTPRmd
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 41SyncAnywhereFTPDel
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 41SyncAnywhereFTPPut
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 42SyncAnywhereFTPGet
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 42SyncAnywhereFTPRename
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 43SyncAnywhereFTPGetLastResponse
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 43SyncAnywhereFTPSetServerType
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 44SyncAnywhereFTPDir
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 46SyncAnywhereFTPGetFileCount
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 46SyncAnywhereFTPFileExists
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 47SyncAnywhereFTPDirectoryExists
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 47SyncAnywhereFTPGetFileName
................................................................................................................................... 483 NSBasic
... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 48Instalação
... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 48Utilização
... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 54Funções do SyncAnywhere
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 54SyncAnywhereCreateContext
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 54SyncAnywhereDestroyContext
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 55SyncAnywhereGetVersion
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 55SyncAnywhereCheckSumOn
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 55SyncAnywhereCheckSumOff
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 56SyncAnywhereUIDSupportOn
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 56SyncAnywhereUIDSupportOff
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 57SyncAnywhereSetPackDataBlock
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 57SyncAnywhereSetCreatorID
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 58SyncAnywherePackDatabase
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 58SyncAnywhereGetDBCount
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 59SyncAnywhereGetDBName
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 60SyncAnywhereCheckDatabase
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 60SyncAnywhereUnpackDatabase
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 61SyncAnywhereUnpackOneDB
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 61SyncAnywhereUnpackApplication
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 62SyncAnywhereNetLibOpen
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 62SyncAnywhereNetLibClose
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 62SyncAnywhereModemDetect
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 63SyncAnywhereSetDialProperties
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 63SyncAnywhereDial
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 64SyncAnywhereOpenActiveService
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 64SyncAnywhereOpenService
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 64SyncAnywhereHangup
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 65SyncAnywhereSetFTPProperties
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 65SyncAnywhereFTPPassiveModeOn
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 66SyncAnywhereFTPPassiveModeOff
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 66SyncAnywhereSetTCPDelay
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 66SyncAnywhereFTPOpen
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 67SyncAnywhereFTPClose
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 67SyncAnywhereFTPCd
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 68SyncAnywhereFTPMkd
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 68SyncAnywhereFTPRmd
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 68SyncAnywhereFTPDel
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 69SyncAnywhereFTPPut
IIConteúdo
II
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 69SyncAnywhereFTPGet
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 70SyncAnywhereFTPRename
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 70SyncAnywhereFTPGetLastResponse
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 70SyncAnywhereFTPSetServerType
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 71SyncAnywhereFTPDir
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 72SyncAnywhereFTPGetFileCount
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 73SyncAnywhereFTPFileExists
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 73SyncAnywhereFTPDirectoryExists
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 74SyncAnywhereFTPGetFileName
................................................................................................................................... 744 CodeWarrior
... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 74Instalação
... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 75Utilização
... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 80Funções do SyncAnywhere
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 80SyncAnywhereOpenRef
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 81SyncAnywhereCloseRef
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 81SyncAnywhereGetVersion
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 82SyncAnywhereCheckSumOn
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 82SyncAnywhereCheckSumOff
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 82SyncAnywhereUIDSupportOn
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 83SyncAnywhereUIDSupportOff
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 84SyncAnywhereSetPackDataBlock
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 85SyncAnywhereSetSendUpdateProc
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 86SyncAnywhereSetReceiveUpdateProc
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 87SyncAnywhereSetPackUpdateProc
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 88SyncAnywhereSetUnpackUpdateProc
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 89SyncAnywhereSetCreatorID
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 89SyncAnywherePackDatabase
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 90SyncAnywhereGetDBCount
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 91SyncAnywhereGetDBName
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 91SyncAnywhereCheckDatabase
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 92SyncAnywhereUnpackDatabase
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 92SyncAnywhereUnpackOneDB
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 93SyncAnywhereUnpackApplication
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 94SyncAnywhereSetNetLib
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 94SyncAnywhereNetLibOpen
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 95SyncAnywhereNetLibClose
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 95SyncAnywhereModemDetect
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 95SyncAnywhereDial
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 96SyncAnywhereDialWireless
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 97SyncAnywhereOpenActiveService
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 98SyncAnywhereOpenService
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 98SyncAnywhereHangup
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 99SyncAnywhereFTPPassiveModeOn
.. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... .. 99SyncAnywhereFTPPassiveModeOff
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 100SyncAnywhereSetTCPDelay
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 100SyncAnywhereFTPOpen
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 101SyncAnywhereFTPClose
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 101SyncAnywhereFTPCd
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 102SyncAnywhereFTPMkd
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 102SyncAnywhereFTPRmd
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 103SyncAnywhereFTPDel
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 103SyncAnywhereFTPPut
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 104SyncAnywhereFTPGet
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 104SyncAnywhereFTPRename
SyncAnywhere v1.22III
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 105SyncAnywhereFTPGetLastResponse
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 105SyncAnywhereFTPSetServerType
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 106SyncAnywhereFTPDir
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 108SyncAnywhereFTPGetFileCount
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 108SyncAnywhereFTPFileExists
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 109SyncAnywhereFTPDirectoryExists
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 110SyncAnywhereFTPGetFileName
................................................................................................................................... 1105 HB++
..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 110Instalação
..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 110Utilização
..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 117Funções do SyncAnywhere
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 117SyncAnywhere.GetVersion
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 117SyncAnywhere.CheckSumOn
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 117SyncAnywhere.CheckSumOff
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 118SyncAnywhere.SetPackDataBlock
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 118SyncAnywhere.SetCreatorID
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 119SyncAnywhere.PackDatabase
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 119SyncAnywhere.GetDBCount
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 120SyncAnywhere.GetDBName
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 121SyncAnywhere.CheckDatabase
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 121SyncAnywhere.UnpackDatabase
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 122SyncAnywhere.UnpackOneDB
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 122SyncAnywhere.UnpackApplication
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 123SyncAnywhere.NetLibOpen
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 123SyncAnywhere.NetLibClose
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 123SyncAnywhere.ModemDetect
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 124SyncAnywhere.Dial
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 124SyncAnywhere.DialWireless
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 126SyncAnywhere.OpenActiveService
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 126SyncAnywhere.OpenService
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 126SyncAnywhere.Hangup
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 127SyncAnywhere.FTPPassiveModeOn
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 127SyncAnywhere.FTPPassiveModeOff
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 128SyncAnywhere.SetTCPDelay
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 128SyncAnywhere.FTPOpen
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 129SyncAnywhere.FTPClose
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 129SyncAnywhere.FTPCd
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 130SyncAnywhere.FTPMkd
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 130SyncAnywhere.FTPRmd
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 130SyncAnywhere.FTPDel
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 131SyncAnywhere.FTPPut
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 131SyncAnywhere.FTPGet
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 132SyncAnywhere.FTPRename
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 132SyncAnywhere.FTPGetLastResponse
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 133SyncAnywhere.FTPSetServerType
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 133SyncAnywhere.FTPDir
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 135SyncAnywhere.FTPGetFileCount
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 135SyncAnywhere.FTPFileExists
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 136SyncAnywhere.FTPDirExists
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 136SyncAnywhere.FTPGetFileName
................................................................................................................................... 1386 Códigos de Erro do SyncAnywhere no Palm
Parte III Software no Servidor 146
IVConteúdo
IV
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
................................................................................................................................... 1461 Introdução
................................................................................................................................... 1462 Delphi
..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 146Instalação
..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 146Utilização
..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 149Funções no SyncAnywhere para o Delphi
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 149PackSetMaxDataBlock
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 150PackSetCheckSum
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 150PackStart
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 151PackDB
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 151PackFinish
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 152GetDBCount
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 152GetDBName
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 153CheckDB
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 153UnpackDB
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 154UnpackOneDB
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 154PackPRC
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 155SetRecordUIDSupport
................................................................................................................................... 1563 Visual Basic
..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 156Instalação
..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 156Utilização
..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 160Funções do objeto COM do SyncAnywhere
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 160PackSetMaxDataBlock
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 161PackSetCheckSum
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 161PackStart
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 161PackDB
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 162PackFinish
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 162GetDBCount
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 163GetDBName
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 163CheckDB
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 164UnpackDB
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 164UnpackOneDB
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 164PackPRC
.... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... 165SetRecordUIDSupport
................................................................................................................................... 1674 Códigos de Erro no Servidor
SyncAnywhere v1.22V
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
Parte
I
SyncAnywhere v1.227
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
1 Introdução
1.1 Conceitos
A idéia principal das funções de compactação do SyncAnywhere é que sejapossível criar um único banco de dados contendo vários bancos de dados Palm,compactados, para otimização da transmissão entre o servidor e o Palm. Para compactare descompactar dados no servidor, o desenvolvedor poderá criar sua própria aplicaçãoque gere o banco de dados compactado e também descompacte os bancos de dadosrecebidos do Palm.
O Cliente FTP incorporado na biblioteca do Palm permite que sua aplicação secomunique diretamente com um servidor FTP, enviando e recebendo bancos de dados eaplicações, com total controle da transmissão, isto é, se a linha cair, você saberá etomará providências para enviar ou receber os dados novamente. Outra característicaimportante são as rotinas para detecção do modem quando acoplado ao Palm e tambémpara fazer a discagem automaticamente, simplesmente informando o número detelefone, usuário e senha.
1.2 Apresentação
Seja bem-vindo ao SyncAnywhere, um produto especialmente desenvolvidopara utilização no suporte a sincronização de dados. Com ele é possível compactar váriosbancos de dados em um único banco de dados Palm para que o envio dos dados seja
mais rápido e simplificado, e conta também com a descompactação dos bancos de dados.A compactação e descompactação de dados está disponível na biblioteca Palm e tambémno desktop, com suporte a Delphi 5/6/7 e também ao Visual Basic. O SyncAnywhereconta também com um cliente FTP para a transmissão e recepção de dados.
Agora também é possível compactar uma aplicação Palm (PRC) em um arquivoPDB, para agilizar a transmissão da aplicação para o Palm, e descompacta-la através deum simples comando na sua aplicação.
A versão Trial não tem data limite de operação e tem as mesmas característicasda versão Full, mas apresentará uma tela que identifica a versão Trial toda vez que umaoperação for executada com a biblioteca.
Caso tenha interesse em adquirir o SyncAnywhere, entre em contato conosco peloe-mail [email protected].
1.3 Últimas Atualizações
Versão 1.22
· Correção de Bug na SyaUnpack.pas, gravação dos flags do registro.· Suporte a record flags na compactação no Desktop.· Adicionado suporte à ferramenta HB++.· Adicão das funções SyncAnywhereUIDSupportOn e SyncAnywhereUIDSupportOff.
Introdução 8
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
Versão 1.21
· Adição da função SyncAnywhereCheckDatabase para verificar o banco antes dedescompactar.
· Adicão da função CheckDB no Delphi e VB para verificar o PDB antes de descompactar.· Melhorias no controle de registros transferidos.· Aumento do tamanho do buffer de descompressão.· Adição da função SyncAnywhereFTPSetServerType para que a função
SyncAnywhereFTPDir funcione com servidores FTP que emitem listagem de diretóriosno padrão MS-DOS.
· Adaptação da função SyncAnywhereFTPDir para listagem padrão Windows 2000.· Adicionado suporte ao Delphi 2005.· Correção da função SyncAnywhereFTPDir para contornar problemas de quebra de
Strings.· Correção do percentual na função de chamada às Callbacks. Estava passando de
100%.· Tratamento da String 'total XXXXX' na função SyncAnywhereFTPDir.
Versão 1.20
· Adição da função SyncAnywhereFTPGetFileName.· Adição da função SyncAnywhereFTPDirectoryExists.· Adição da função SyncAnywhereFTPFileExists.
· Adição da função SyncAnywhereFTPGetFileCount.· Adição da função SyncAnywhereFTPDir.· Acrescentado "Trim" no nome do Servidor FTP na função SyncAnywhereFTPOpen, para
evitar que o usuário utilize espaços à direita ou esquerda do endereço do Servidor.· Adição da função SyncAnywhereUnpackApplication.
· Adição das chamadas de Callback, SyncAnywhereSetPackUpdateProc eSyncAnywhereSetUnpackUpdateProc.
Versão 1.19
· Adição das chamadas de Callback, SyncAnywhereSetSendUpdateProc e
SyncAnywhereSetReceiveUpdateProc.· Adição da verificação do CheckSum do arquivo compactado no Servidor.· Adição do CheckSum no arquivo compactado no Servidor.· Alteração na função GetDBCount e GetDBName; estavam deixando o PDB aberto.
· Adição da verificação do CheckSum do arquivo compactado na função UnpackDB.· Adição do CheckSum no arquivo compactado na função PackDB.· Adição da função SyncAnywhereFTPRename.· Adição da função SyncAnywhereSetCreatorID para configurar o CreatorID dos bancos
compactados pela aplicação Palm.
· Alteração na função SyncAnywhereUnpackDatabase e UnpackDB para aceitar blocoscom menos de 100 bytes.
· Alteração na função SyncAnywhereDialWireless, aumento do Timeout para 180segundos (era 30 segundos).
· Correção da função SyncAnywhereUnpackDatabase para suportar bancos vazios, com
AppInfo ou SortInfo.
Versão 1.18
SyncAnywhere v1.229
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
· Adição da função SyncAnywhereOpenActiveService.· Suporte a NSBasic versão 4.
· Adição da Função SyncAnywhereDialWireless para discar para celulares e modems IR.· Correção de bug na função SyncAnywhereFTPClose.· Adição da função SyncAnywhereSetPackDataBlock.· Correção de bug na função SyncAnywhereUnpackOneDB.
· Correção de Memory Leak em SyncAnywherePackDatabase.· Adicão da função SyncAnywhereSetPackDataBlock.
Versão 1.17
· Comentários nos exemplos atualizados.
· Suporte ao PocketStudio 2.· Adição da função SyncAnywhereGetDBCount.· Adição da função SyncAnywhereGetDBName.· Adição da função SyncAnywhereUnpackOneDB.
· Adição da função GetDBCount.· Adição da função GetDBName.· Adição da função UnpackOneDB.
Versão 1.16 e anteriores foram liberadas antes de 25/10/2004.
1.4 Conteúdo do Pacote
Os diretórios que compõem o SyncAnywhere são:
· CW: Exemplo das rotinas de compactação e FTP para o CodeWarrior. Há umsubdiretório chamado Lib dentro desta pasta com o arquivo header de acesso àSharedLib que deve ser incluído na sua aplicação CodeWarrior.
· Delphi: Aplicação exemplo Delphi para compactação e descompactação dedados. Dentro deste diretório há um subdiretório chamado Lib que contém
subdiretórios D5, D6 e D7 que correspondem às bibliotecas da parte desktop doSyncAnywhere para o Delphi 5, 6 e 7, respectivamente.
· NSBasic: Exemplo das rotinas de compactação e FTP para o NSBasic. O arquivoSyncAnywhere.inf é a declaração das funções da SharedLib do SyncAnywhereque deve ser copiado para o diretório NSBasic\Lib para que seja possível acompilação do projeto no NSBasic.
· PocketStudio: Exemplo das rotinas de compactação e FTP para o PocketStudio.Sob este diretório, há um subdiretório chamado Lib que contém a unitSyaLib.pas que deve ser incluída no seu projeto PocketStudio para uso dasfunções da SharedLib.
· SharedLib: SharedLib do SyncAnywhere que deve ser instalada no Palm paraque sua aplicação possa acessar seus recursos.
· TestDB: Bancos de Dados Palm utilizados pelas aplicações exemplo. Há tambémduas aplicações Palm para utilização dos bancos de dados exemplo. A aplicaçãoClientes.prc é utilizada também pelas aplicações exemplo Palm para recupera-lo
Introdução 10
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
através do FTP.
· VB: Aplicação exemplo Visual Basic demonstrando o uso do componente COM doSyncAnywhere. Sob o diretório SyncAnywhereCOM dentro deste diretório, está
localizado o componente COM (SyncAnywhere.dll ) que você deve distribuir comsuas aplicações e registra-lo na máquina do seu cliente.
Parte
II
Cliente Palm 12
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
2 Cliente Palm
2.1 Introdução
O Cliente SyncAnywhere para o Palm é composto de uma SharedLib chamadaSyncAnywhere.prc que é usada pela sua aplicação para compactar e descompactarbancos de dados e para acesso a um servidor FTP. A biblioteca é composta de funçõescom chamadas bem simples e cujo retorno indica o resultado do comando. ResultadoZERO significa que o comando foi executado com sucesso; resultado maior que ZEROindica um erro, cujo código está documentado mais abaixo nesta seção.
Você deve instalar a biblioteca SyncAnywhere.prc nos Palms onde sua aplicaçãofor fazer uso do SyncAnywhere.
2.2 PocketStudio
2.2.1 Instalação
A instalação do suporte do SyncAnywhere ao PocketStudio é muito simples, bastacolocar o diretório onde está localizada a unit SyaLib.pas no campo Units Search do
PocketStudio, no menu Tools, Environment Options, campo Units Search; você deveadicionar o diretório da unit na lista. Para utiliza-la, basta coloca-la na 'uses clause' dasua unit.
Você encontrará a unit SyaLib.pas no pacote do SyncAnywhere, sob o diretórioonde você instalou o SyncAnywhere\PocketStudio\Lib .
2.2.2 Utilização
A aplicação exemplo FTPTest sob o diretório PocketStudio mostra como utilizaras funções da biblioteca para compactar dados e também para acessar um servidor FTP.No formulário da aplicação, serão solicitados todos os dados para que seja possível aconexão com o servidor FTP:
· O número de telefone para discagem ao servidor de comunicação, seja um RASou provedor Internet;
· Tipo de discagem, pulso ou tom;· Nome de usuário e senha de acesso ao servidor RAS ou provedor Internet;· O endereço IP ou nome do servidor FTP;
· O nome do usuário e senha para logon no servidor FTP.
A unit SyaLib deve ser colocada na uses clause da unit onde você precisaráutilizar a biblioteca. Inicialmente, é necessário criar variáveis globais para armazenar areferência à SharedLib e também o contexto de acesso à ela. Fazemos isso na unit EVNpara que as variáveis sejam acessíveis na unit PPR e também na EVN:
var
SyncAnywhere v1.2213
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
RefNum: UInt16; // Referência à SharedLib do SyncAnywhere Context: UInt32; // Contexto de acesso à SharedLib
Nas funções StartApplication e StopApplication é necessário colocar códigopara carregar e para descarregar a biblioteca. Se a biblioteca não for carregada, as
funções não podem ser utilizadas ou causará erro na sua execução.
function StartApplication: Boolean;begin Result := CheckROMVersion($3503000); // PalmOS version if not Result then begin FrmCustomAlert(AlertIncompatible, '3.5', nil, nil);
Exit; end;
// Abre a SharedLib do SyncAnywhere if not SyncAnywhereOpenRef(RefNum, Context) then begin Result := False;
ShowMessage('Erro ao abrir SyncAnywhere SharedLib!'); exit; end;
FrmGotoForm(FrmPrincipal);end;
procedure StopApplication;
begin // Fecha a SharedLib do SyncAnywhere SyncAnywhereCloseRef(RefNum, Context);
FrmCloseAllForms;end;
O código no botão Iniciar FTP executa comandos da biblioteca:
var Str, Str2, Telefone, Usuario, Senha, ServidorFTP, UsuarioFTP, SenhaFTP:Array[0..50] of Char; Pulso: UInt16; Erro: UInt16;begin // Verifica se existe um modem conectado ao Palm
// ------------------------------------------------------------------------ // Para conexão por Celulares ou Modem via Infravermelho, NÃO USE a // função SyncAnywhereModemDetect, pois ela não será capaz de
// detectar a comunicação com o Celular. Esta função deve ser usada // somente quando a conexão for feita através de Modem acoplado ao // Palm, ou celular via cabo
// ------------------------------------------------------------------------ PSField.SetText(FldStatus, 'Detectando Modem...');
Cliente Palm 14
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
Erro := SyncAnywhereModemDetect(RefNum, Context); if Erro>0 then begin PSField.SetText(FldStatus, 'Modem não detectado!'); exit;
end;
// Configura o CreatorID para criação do Arquivo PDB compactado Erro := SyncAnywhereSetCreatorID(RefNum, Context, 'CBCT'); if Erro>0 then begin StrCopy(Str, 'Erro configurando CreatorID: '); StrIToA(Str2, Erro);
StrCat(Str, Str2); PSField.SetText(FldStatus, Str); exit; end;
// Recupera as informações dos campos PSField.Text(FldTelefone, Telefone, PSField.TextLength(FldTelefone) + 1);
PSField.Text(FldUsuario, Usuario, PSField.TextLength(FldUsuario) + 1); PSField.Text(FldSenha, Senha, PSField.TextLength(FldSenha) + 1); PSField.Text(FldServidor, ServidorFTP, PSField.TextLength(FldServidor) + 1); PSField.Text(FldFTPUsuario, UsuarioFTP, PSField.TextLength(FldFTPUsuario) +1); PSField.Text(FldFTPSenha, SenhaFTP, PSField.TextLength(FldFTPSenha) + 1);
if PSCheckBox.Checked(ChkPulso) then
Pulso := 1 else Pulso := 0;
// Apaga o banco PDBPack, necessário para que os bancos não sejam // adicionados aos já existentes PSDatabase.DeleteDatabase('PDBPack');
// Compacta bancos de dados para envio ao Servidor PSField.SetText(FldStatus, 'Compactando ProdutosDB'); Erro := SyncAnywherePackDatabase(RefNum, Context, 'PDBPack','ProdutosDB', 5000); if Erro>0 then begin StrCopy(Str, 'Erro em ProdutosDB: '); StrIToA(Str2, Erro);
StrCat(Str, Str2); PSField.SetText(FldStatus, Str); exit; end;
PSField.SetText(FldStatus, 'Compactando ClientesDB'); Erro := SyncAnywherePackDatabase(RefNum, Context, 'PDBPack', 'ClientesDB',5000);
SyncAnywhere v1.2215
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
if Erro>0 then begin StrCopy(Str, 'Erro em ClientesDB: '); StrIToA(Str2, Erro); StrCat(Str, Str2);
PSField.SetText(FldStatus, Str); exit; end;
// Abre a Net.Lib PSField.SetText(FldStatus, 'Abrindo Net.Lib...'); Erro := SyncAnywhereNetLibOpen(RefNum, Context); if Erro>0 then
begin StrCopy(Str, 'Erro de abertura Net.Lib: '); StrIToA(Str2, Erro); StrCat(Str, Str2); PSField.SetText(FldStatus, Str); exit; end;
// Conecta no servidor de comunicação PSField.SetText(FldStatus, 'Discando');
// ------------------------------------------------------------------------ // Para conexão por Celulares ou Modem via Infravermelho, NÃO USE a // função SyncAnywhereModemDial, pois ela não fará a discagem. Ao
// invés de usar esta // função, crie a conexão com o celular na
// aplicação Prefs do Palm, opção Network e configure lá o telefone, o // modo de conexão, usuário e senha, e utilize a função // SyncAnywhereOpenService(NomeDaConexão) para efetuar
// a discagem. O nome no parâmetro deve ser exatamente igual ao // nome do serviço criado, respeitando-se as letras maiúsculas e // minúsculas.
// Caso tenha alguma dúvida, consulte o manual do SyncAnywhere. // ------------------------------------------------------------------------
Erro := SyncAnywhereDial(RefNum, Context, Telefone, Pulso, Usuario, Senha); if Erro>0 then begin StrCopy(Str, 'Erro de Discagem: '); StrIToA(Str2, Erro); StrCat(Str, Str2); PSField.SetText(FldStatus, Str);
// Fecha a biblioteca de comunicação SyncAnywhereNetLibClose(RefNum, Context); exit; end;
// Conecta no Servidor FTP PSField.SetText(FldStatus, 'Conectando no Servidor FTP...'); Erro := SyncAnywhereFTPOpen(RefNum, Context, ServidorFTP, 0, UsuarioFTP,
Cliente Palm 16
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
SenhaFTP, 10); if Erro>0 then begin StrCopy(Str, 'Erro de Conexão: '); StrIToA(Str2, Erro);
StrCat(Str, Str2); PSField.SetText(FldStatus, Str);
// Desconecta do Servidor de comunicação SyncAnywhereHangup(RefNum, Context);
// Fecha Net.Lib SyncAnywhereNetLibClose(RefNum, Context);
exit; end;
// Comando GET de uma aplicação PSField.SetText(FldStatus, 'Recebendo Clientes.prc'); Erro := SyncAnywhereFTPGet(RefNum, Context, 'Clientes.prc');
if Erro>0 then begin StrCopy(Str, 'Erro de recepção: '); StrIToA(Str2, Erro); StrCat(Str, Str2); ShowMessage(Str); end;
// Comando PUT do Banco compactado PSField.SetText(FldStatus, 'Enviando PDBPack...'); Erro := SyncAnywhereFTPPut(RefNum, Context, 'PDBPack'); if Erro>0 then begin StrCopy(Str, 'Erro de envio: '); StrIToA(Str2, Erro); StrCat(Str, Str2);
ShowMessage(Str); end else begin // Fecha Conexão FTP, se o envio teve sucesso Erro := SyncAnywhereFTPClose(RefNum, Context); end;
// Desconecta do Servidor de comunicação SyncAnywhereHangup(RefNum, Context);
// Fecha Net.Lib SyncAnywhereNetLibClose(RefNum, Context);
PSField.SetText(FldStatus, 'Comunicação realizada com sucesso!');end;
SyncAnywhere v1.2217
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
Já o botão Analisar PDBPack, mostra os bancos de dados compactados emPDBPack:
var dbID: LocalID;
NumDBs, Erro, x: UInt16; Str, Str2: Array[0..60] of Char;begin Handled := True;
// Procura pelo banco PDBPack no Palm dbID := DmFindDatabase(0, 'PDBPack'); if dbID=0 then
begin ShowMessage('Banco PDBPack não foi encontrado, comande o Início do FTPou carregue o banco de dados PDBPack.pdb do diretório TestDB no palm ouEmulador'); exit; end;
// Verifica o número de bancos de dados Compactados em PDBPack Erro := SyncAnywhereGetDBCount(RefNum, Context, 'PDBPack', NumDBs); if Erro>0 then begin StrCopy(Str, 'Erro ao recuperar número de bancos: '); StrIToA(Str2, Erro); StrCat(Str, Str2); ShowMessage(Str);
exit; end;
// Apresenta número de Bancos StrIToA(Str2, NumDBs); StrCopy(Str, 'Número de bancos de dados em PDBPack: '); StrCat(Str, Str2); ShowMessage(Str);
// Apresenta o nome dos Bancos em PDBPack for x:=0 to NumDBs-1 do begin Erro := SyncAnywhereGetDBName(RefNum, Context, 'PDBPack', x, Str2); if Erro>0 then begin StrCopy(Str, 'Erro ao recuperar nome do banco: ');
StrIToA(Str2, Erro); StrCat(Str, Str2); ShowMessage(Str); exit; end;
// Apresenta o nome StrCopy(Str, 'Banco armazenado em PDBPack: ');
Cliente Palm 18
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
StrCat(Str, Str2); ShowMessage(Str); end;
// Descompacta apenas um banco de dados de PDBPack
Erro := SyncAnywhereUnpackOneDB(RefNum, Context, 'PDBPack','ProdutosDB'); if Erro>0 then begin StrCopy(Str, 'Erro ao recuperar descompactar banco ProdutosDB de PDBPack:'); StrIToA(Str2, Erro); StrCat(Str, Str2);
ShowMessage(Str); exit; end;
// Teste efetuado com sucesso! ShowMessage('Banco de dados ProdutosDB descompactado!');end;
2.2.3 Funções do SyncAnywhere
2.2.3.1 SyncAnywhereOpenRef
function SyncAnywhereOpenRef(var RefNum: UInt16; var Context: UInt32):Boolean;
Comentário
Abre a referência à SharedLib.
Parâmetros
RefNum: A referência à SharedLib será retornada neste parâmetroContext: O contexto de acesso à SharedLib será retornado neste parâmetro
Você deve armazenar os dois parâmetros em variáveis globais pois seránecessário utiliza-los em todas as chamadas às funções do SyncAnywhere.
Retorno
Boolean indicando se a biblioteca foi aberta corretamente.
2.2.3.2 SyncAnywhereCloseRef
function SyncAnywhereCloseRef(var RefNum: UInt16; var Context: UInt32):Boolean;
Comentário
SyncAnywhere v1.2219
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
Fecha a referência à SharedLib.
Parâmetros
RefNum: Referência à biblioteca SyncAnywhere
Context: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
Retorno
Boolean indicando se a biblioteca foi fechada corretamente.
2.2.3.3 SyncAnywhereGetVersion
function SyncAnywhereGetVersion(RefNum: UInt16): UInt16;
Comentários
Recupera a versão da biblioteca. A versão é retornada como um número inteiro,
onde a centena representa a versão e a dezena, a correção da versão, exemplo: a versão113 representa a versão 1 da biblioteca, com a correção 13.
Parâmetros
RefNum: Referência à biblioteca SyncAnywhere, recuperado na funçãoSyncAnywhereOpenRef .
Retorno
Inteiro representando a versão da biblioteca.
2.2.3.4 SyncAnywhereCheckSumOn
function SyncAnywhereCheckSumOn(RefNum: UInt16; ClientContext: UInt32):UInt32;
Comentários
Habilita a gravação de bytes de verificação de integridade nos registros do bancode dados compactado, para auxiliar na garantia da integridade dos dados transmitidos.Por default, a gravação dos bytes de verificação está desabilitada . O número de bytesde verificação de integridade gravados por registro é 10.
Parâmetros
RefNum: Referência à biblioteca SyncAnywhereClientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na função
Cliente Palm 20
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
SyncAnywhereOpenRef .
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indica
erro cujo código está descrito em uma seção mais adiante.
2.2.3.5 SyncAnywhereCheckSumOff
function SyncAnywhereCheckSumOff(RefNum: UInt16; ClientContext: UInt32):UInt32;
Comentários
Desabilita a gravação de bytes de verificação de integridade nos registros dobanco de dados compactado (default).
Parâmetros
RefNum: Referência à biblioteca SyncAnywhereClientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.2.3.6 SyncAnywhereUIDSupportOn
function SyncAnywhereUIDSupportOn(RefNum: UInt16; ClientContext: UInt32):UInt32;
Comentários
Habilita a gravação do UniqueID de cada registro do banco de dados. O UniqueID
é uma informação não utilizada pela maioria das ferramentas, mas se por algum motivosua aplicação usa esta informação, você precisa habilitar o uso com esta função. Pordefault, a gravação do UniqueID está desabilitada para economizar espaço no banco dedados compactado gerado.
Atenção:
- O uso desta função torna o SyncAnywhereincompatível com bancos de dados compactados sem o uso destafunção. Para que o SyncAnywhere seja compatível com bancos dedados compactados sem o UniqueID, é necessário utilizar a função
SyncAnywhere v1.2221
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
SyncAnywhereUIDSupportOff.
- É necessário também habilitar a gravação do UniqueIDna sua aplicação que compacta e descompacta dados no servidor.
- Quando quiser habilitar o suporte ao UniqueID, utilizeesta função logo após abrir a biblioteca pois ela é necessária paracompactar e descompactar bancos de dados com UniqueID.
Parâmetros
RefNum: Referência à biblioteca SyncAnywhereClientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na função
SyncAnywhereOpenRef .
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.2.3.7 SyncAnywhereUIDSupportOff
function SyncAnywhereUIDSupportOff(RefNum: UInt16; ClientContext:UInt32): UInt32;
Comentários
Desabilita a gravação do UniqueID de cada registro do banco de dados. OUniqueID é uma informação não utilizada pela maioria das ferramentas, mas se por
algum motivo sua aplicação usa esta informação, você precisa habilitar o uso com afunção SyncAnywhereUIDSupportOn . Por default, a gravação do UniqueID estádesabilitada para economizar espaço no banco de dados compactado gerado.
Atenção: o uso do UniqueID torna o SyncAnywhereincompatível com bancos de dados compactados sem o uso dafunção SyncAnywhereUIDSupportOn.
Parâmetros
RefNum: Referência à biblioteca SyncAnywhereClientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
Retorno
Cliente Palm 22
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.2.3.8 SyncAnywhereSetPackDataBlock
function SyncAnywhereSetPackDataBlock(RefNum: UInt16; ClientContext:UInt32; MaxDataBlock: UInt16): UInt32;
Comentários
Esta função é de extrema importância se o arquivo tiver que ser descompactadoem equipamentos com pouca memória como o Zire, M100, M105 ou qualquer outro que
tenha 2MB de memória ou menos. Esses equipamentos tem muito pouca memóriadinâmica para alocação, assim, a quantidade de memória disponível depende dotamanho da aplicação. O tamanho máximo do bloco compactado de dados deve serconfigurado segundo sua necessidade em equipamentos com pouca memória e nestecaso um valor de 500 bytes é geralmente adequado à aplicações grandes.
Parâmetros
RefNum: Referência à biblioteca SyncAnywhereClientContext: Contexto de acesso à bibliotecaMaxDataBlock: Tamanho máximo (em bytes) do bloco de dados que será
compactado. O default é 30000 bytes, mas para equipamentos com pouca memória estevalor deve ser muito mais baixo, em torno de 500 bytes quando a aplicação executada égrande ou até 2500 bytes se a aplicação for pequena.
Os parâmetros RefNum e ClientContext devem ter sido recuperados na função
SyncAnywhereOpenRef .
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.2.3.9 SyncAnywhereSetSendUpdateProc
function SyncAnywhereSetSendUpdateProc(RefNum: UInt16; ClientContext:UInt32; UpdateProc: TUpdateProcedure): UInt32;
Comentários
Configura uma procedure na sua aplicação que será chamada pelo SyncAnywherecom o percentual do andamento do envio de dados ao servidor FTP.
Parâmetros
RefNum: Referência à biblioteca SyncAnywhereClientContext: Contexto de acesso à bibliotecaUpdateProc: Procedure com apenas um parâmetro UInt16 para receber o
SyncAnywhere v1.2223
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
percentual do andamento do envio de dados ao servidor FTP.
Os parâmetros RefNum e ClientContext devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
Exemplo
procedure ShowStatus(Status: UInt16);
var Str, Str2: Array[0..20] of Char;begin StrIToA(Str2, Status); StrCopy(Str, 'Status: '); StrCat(Str, Str2); StrCat(Str, '%');
PSField.SetText(FldStatus, Str);end;
procedure XXXX;......
// Configura a função ShowStatus para receber o percentual de// envio de dados ao Servidor FTPSyncAnywhereSetSendUpdateProc(RefNum, Context, ShowStatus);
...
...end;
2.2.3.10 SyncAnywhereSetReceiveUpdateProc
function SyncAnywhereSetReceiveUpdateProc(RefNum: UInt16; ClientContext:UInt32; UpdateProc: TUpdateProcedure): UInt32;
Comentários
Configura uma procedure na sua aplicação que será chamada pelo SyncAnywhere
com o percentual do andamento do recebimento de dados ao servidor FTP.
Parâmetros
RefNum: Referência à biblioteca SyncAnywhereClientContext: Contexto de acesso à bibliotecaUpdateProc: Procedure com apenas um parâmetro UInt16 para receber o
Cliente Palm 24
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
percentual do andamento do recebimento de dados ao servidor FTP.
Os parâmetros RefNum e ClientContext devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
Exemplo
procedure ShowStatus(Status: UInt16);
var Str, Str2: Array[0..20] of Char;begin StrIToA(Str2, Status); StrCopy(Str, 'Status: '); StrCat(Str, Str2); StrCat(Str, '%');
PSField.SetText(FldStatus, Str);end;
procedure XXXX;......
// Configura a função ShowStatus para receber o percentual de// recebimento de dados do Servidor FTPSyncAnywhereSetReceiveUpdateProc(RefNum, Context, ShowStatus);
...
...end;
2.2.3.11 SyncAnywhereSetPackUpdateProc
function SyncAnywhereSetPackUpdateProc(RefNum: UInt16; ClientContext:UInt32; UpdateProc: TUpdateProcedure): UInt32;
Comentários
Configura uma procedure na sua aplicação que será chamada pelo SyncAnywhere
com o percentual do andamento da compactação do banco de dados.
Parâmetros
RefNum: Referência à biblioteca SyncAnywhereClientContext: Contexto de acesso à bibliotecaUpdateProc: Procedure com apenas um parâmetro UInt16 para receber o
SyncAnywhere v1.2225
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
percentual do andamento da compactação do banco de dados.
Os parâmetros RefNum e ClientContext devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
Exemplo
procedure ShowStatus(Status: UInt16);
var Str, Str2: Array[0..20] of Char;begin StrIToA(Str2, Status); StrCopy(Str, 'Status: '); StrCat(Str, Str2); StrCat(Str, '%');
PSField.SetText(FldStatus, Str);end;
procedure XXXX;......
// Configura a função ShowStatus para receber o percentual da// compactação do banco de dadosSyncAnywhereSetPackUpdateProc(RefNum, Context, ShowStatus);
...
...end;
2.2.3.12 SyncAnywhereSetUnpackUpdateProc
function SyncAnywhereSetUnpackUpdateProc(RefNum: UInt16; ClientContext:UInt32; UpdateProc: TUpdateProcedure): UInt32;
Comentários
Configura uma procedure na sua aplicação que será chamada pelo SyncAnywhere
com o percentual do andamento da descompactação do banco de dados.
Parâmetros
RefNum: Referência à biblioteca SyncAnywhereClientContext: Contexto de acesso à bibliotecaUpdateProc: Procedure com apenas um parâmetro UInt16 para receber o
Cliente Palm 26
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
percentual do andamento da descompactação do banco de dados.
Os parâmetros RefNum e ClientContext devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
Exemplo
procedure ShowStatus(Status: UInt16);
var Str, Str2: Array[0..20] of Char;begin StrIToA(Str2, Status); StrCopy(Str, 'Status: '); StrCat(Str, Str2); StrCat(Str, '%');
PSField.SetText(FldStatus, Str);end;
procedure XXXX;......
// Configura a função ShowStatus para receber o percentual da// descompactação do banco de dadosSyncAnywhereSetUnpackUpdateProc(RefNum, Context, ShowStatus);
...
...end;
2.2.3.13 SyncAnywhereSetCreatorID
function SyncAnywhereSetCreatorID(RefNum: UInt16; ClientContext: UInt32;CreatorID: PChar): UInt32;
Comentários
Configura o CreatorID que será usado para os arquivos compactados.
Parâmetros
RefNum: Referência à biblioteca SyncAnywhereClientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na função
SyncAnywhere v1.2227
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
SyncAnywhereOpenRef .
CreatorID: O CreatorID, com exatamente quatro caracteres.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.2.3.14 SyncAnywherePackDatabase
function SyncAnywherePackDatabase(RefNum: UInt16; ClientContext: UInt32;DBDest: PChar; DBSource: PChar; MaxBlockSize: UInt16): UInt32;
Comentários
Compacta o banco de dados informado em DBSource, no banco de dadosinformado em DBDest.
Parâmetros
RefNum: Referência à biblioteca SyncAnywhereClientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
DBDest: Nome do banco de dados destino, onde será compactado o banco dedados de origem. Atenção: O banco de dados destino deve ser apagado antes de
chamar esta função pela primeira vez. As chamadas sucessivas à esta funçãoadicionam bancos de dados compactados à DBDest, portanto na primeira vez que usaresta função, certifique-se que ele não exista, para que a compactação inicie em umbanco de dados novo.
DBSource: Banco de dados origem, que será compactado dentro de DBDest.MaxBlockSize: Tamanho máximo do registro que será gerado no banco de dados
DBDest. Este valor normalmente deve ser em torno de 5000, que representa 5000 bytesem cada registro e pode ser configurado em função da qualidade de transmissão da linha
telefônica ou celular. Há locais onde é melhor que este valor seja menor, em torno de1000, para minimizar erros na transmissão. O tamanho mínimo é 50 bytes e o máximo30000.
Observação importante: para os modelos M100, Zire e outros que temmemória igual ou inferior a 2MB, este parâmetro não poderá ser maior que2500 bytes, ou retornará o erro appErrInvalidBlockSize. Estes modelos temmemória "Heap" (memória dinâmica liberada pelo PalmOS) extremamente
limitada e as alocações de memória internas necessárias para compactaçãopodem falhar se o valor for maior que 2500 bytes. Se o Banco de Dados tiverque ser descompactado em equipamentos deste tipo, não se esqueça deconfigurar o tamanho do bloco de compactação com as funçõesSyncAnywhereSetPackDataBlock no Palm e PackSetMaxDataBlock no Servidor.
Cliente Palm 28
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.2.3.15 SyncAnywhereGetDBCount
function SyncAnywhereGetDBCount(RefNum: UInt16; ClientContext: UInt32;DBSource: PChar; var DBCount: UInt16): UInt32;
Comentários
Recupera o número de bancos de dados compactados dentro do banco
especificado no parâmetro DBSource, na variável informada no parâmetro DBCount. Onúmero de bancos de dados compactados só pode ser recuperado dos PDBsgerados pelo SyncAnywhere a partir da versão 1.17.
Parâmetros
RefNum: Referência à biblioteca SyncAnywhereClientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
DBSource: O nome do banco de dados compactado com o SyncAnywhere.DBCount: Variável do tipo UInt16 para receber o número de bancos de dados
compactados.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.2.3.16 SyncAnywhereGetDBName
function SyncAnywhereGetDBName(RefNum: UInt16; ClientContext: UInt32;
DBSource: PChar; Indx: UInt16; DBName: PChar): UInt32;
Comentários
Recupera o nome de bancos de dados compactado dentro do banco especificadono parâmetro DBSource, na variável informada no parâmetro DBName , de acordo como índice do banco informado no parâmetro Indx. O nome dos bancos de dadoscompactados só podem ser recuperados dos PDBs gerados pelo SyncAnywhere
a partir da versão 1.17.
Parâmetros
RefNum: Referência à biblioteca SyncAnywhereClientContext: Contexto de acesso à biblioteca
SyncAnywhere v1.2229
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
DBSource: O nome do banco de dados compactado com o SyncAnywhere.Indx: O índice do banco de dados. O primeiro banco de dados compactado tem
índice ZERO. Para saber o número de bancos de dados compactados, utilize a funçãoSyncAnywhereGetDBCount .
DBName: O nome do banco de dados compactado é retornado neste parâmetro.Atenção: Este parâmetro DEVE SER uma variável PChar ou Array de Charalocada com no mínimo 32 caracteres. A biblioteca irá copiar o nome nesteparâmetro, não fará alocação de memória para o retorno da mensagem. Se vocênão alocar espaço, poderá causar um erro na sua aplicação e Reset no Palm .
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.2.3.17 SyncAnywhereCheckDatabase
function SyncAnywhereCheckDatabase(RefNum: UInt16; ClientContext: UInt32;
DBSource: PChar): UInt32;
Comentários
Verifica a estrutura de um banco compactado gerado pelo SyncAnywhere. Afunção verifica a integridade do número de registros no banco e CheckSum (sehabilitado).
Parâmetros
RefNum: Referência à biblioteca SyncAnywhereClientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
DBSource: O nome do banco de dados compactado com o SyncAnywhere.
Retorno
ZERO indica que o PDB está íntegro na sua estrutura.
UM indica que o PDB está íntegro na sua estrutura, mas o CheckSum está
desabilitado, portanto ainda pode haver erro nos registros transferidos.
> UM é o código de erro da verificação do PDB.
Cliente Palm 30
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
2.2.3.18 SyncAnywhereUnpackDatabase
function SyncAnywhereUnpackDatabase(RefNum: UInt16; ClientContext:UInt32; DBSource: PChar): UInt32;
Comentários
Descompacta os bancos de dados para a memória do Palm. Atenção: Você deveapagar os bancos de dados que serão descompactados antes que eles sejamdescompactados por esta função ou os registros serão adicionados aos
registros dos bancos de dados se já existirem.
Parâmetros
RefNum: Referência à biblioteca SyncAnywhereClientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na função
SyncAnywhereOpenRef .
DBSource: O nome do banco de dados compactado com o SyncAnywhere.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indica
erro cujo código está descrito em uma seção mais adiante.
2.2.3.19 SyncAnywhereUnpackOneDB
function SyncAnywhereUnpackOneDB(RefNum: UInt16; ClientContext: UInt32;DBSource: PChar; DBName: PChar): UInt32;
Comentários
Descompacta um único banco de dados para a memória do Palm. Atenção: Vocêdeve apagar o banco de dados que será descompactado antes que eles sejadescompactado por esta função ou os registros serão adicionados aos registrosdo banco de dados.
Parâmetros
RefNum: Referência à biblioteca SyncAnywhere
ClientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
DBSource: O nome do banco de dados compactado com o SyncAnywhere.DBName: O nome do banco de dados que será extraído do banco compactado.
Retorno
SyncAnywhere v1.2231
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.2.3.20 SyncAnywhereUnpackApplication
function SyncAnywhereUnpackApplication(RefNum: UInt16; ClientContext:UInt32; DBSource: PChar): UInt32;
Comentários
Descompacta a aplicação compactada em um Banco de Dados Palm (PDB) para amemória do Palm. Atenção: Você deve apagar a aplicação que serádescompactada antes que ela seja descompactada por esta função ou será
retornado um código de erro.
É possível utilizar SyncAnywhereSetUnpackUpdateProc para configurar umafunção da sua aplicação para mostrar o andamento da descompactação da aplicação.
Parâmetros
RefNum: Referência à biblioteca SyncAnywhere
ClientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
DBSource: O nome do banco de dados que contém a aplicação compactada como SyncAnywhere.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.2.3.21 SyncAnywhereSetNetLib
function SyncAnywhereSetNetLib(RefNum: UInt16; ClientContext: UInt32;
NetLibRef: UInt16): UInt32;
Comentários
Se você iniciar a comunicação sem utilizar a função SyncAnywhereDial , vocêdeve usar esta função para informar a referência à Net.Lib aberta antes de usar asfunções de comunicação do SyncAnywhere.
Parâmetros
RefNum: Referência à biblioteca SyncAnywhereClientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na função
Cliente Palm 32
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
SyncAnywhereOpenRef .
NetLibRef: A referência à Net.Lib.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.2.3.22 SyncAnywhereNetLibOpen
function SyncAnywhereNetLibOpen(RefNum: UInt16; ClientContext: UInt32):UInt32;
Comentários
Abre a biblioteca de comunicação do Palm. Esta função deve ser chamada antesde qualquer outra função de comunicação.
Parâmetros
RefNum: Referência à biblioteca SyncAnywhereClientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.2.3.23 SyncAnywhereNetLibClose
function SyncAnywhereNetLibClose(RefNum: UInt16; ClientContext: UInt32):UInt32;
Comentários
Fecha a biblioteca de comunicação do Palm. Esta função deve ser chamadaquando a comunicação não for mais necessária, geralmente a última função a serchamada no processo de comunicação.
Parâmetros
RefNum: Referência à biblioteca SyncAnywhereClientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
SyncAnywhere v1.2233
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.2.3.24 SyncAnywhereModemDetect
function SyncAnywhereModemDetect(RefNum: UInt16; ClientContext: UInt32):UInt32;
Comentários
Detecta se um Modem ou Celular (via cabo serial) está conectado ao Palm.
Parâmetros
RefNum: Referência à biblioteca SyncAnywhereClientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.2.3.25 SyncAnywhereDial
function SyncAnywhereDial(RefNum: UInt16; ClientContext: UInt32; Phone:
PChar; Pulse: UInt16; Username: PChar; Password: PChar): UInt32;
Comentários
Disca para um servidor de comunicação usando o modem acoplado ao Palm(PalmModem ou Celular via cabo serial).
Parâmetros
RefNum: Referência à biblioteca SyncAnywhereClientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
Phone: Número do telefone.Pulse: 1 para discagem de Pulso e ZERO para discagem por Tom.Username: Nome do usuário para validação no servidor de comunicação
(RAS/Internet).Password: Senha de acesso do usuário.
Cliente Palm 34
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.2.3.26 SyncAnywhereDialWireless
function SyncAnywhereDialWireless(RefNum: UInt16; ClientContext: UInt32;Connection: PChar; Phone: PChar; Username: PChar; Password: PChar;DNSServer: PChar; Script: PChar): UInt32;
Comentários
Disca para um servidor de comunicação usando uma Conexão predeterminada.Esta função pode ser usada para discagem por modem ou celular infravermelho ouBluetooth.
Parâmetros
RefNum: Referência à biblioteca SyncAnywhereClientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
Connection: Nome da Conexão preconfigurada na aplicação Prefs , opçãoConnection (Conexões).
Phone: Número do telefone.Username: Nome do usuário para validação no servidor de comunicação
(RAS/Internet).Password: Senha de acesso do usuário.DNSServer: Endereço IP do Servidor DNS, exemplo '222.111.22.11'.Script: Texto do Script para conexão. Caso um Script não seja necessário, use nil
ou uma String vazia. Para informar um Script neste parâmetro, veja os comentários maisabaixo.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
Script para conexão
Segundo a documentação da API do PalmOS, o Script é muito rígido, se um Script com
sintaxe incorreta for informado, os resultados serão imprevisíveis. O formato do Script éuma sequência de Strings terminadas em ZERO, com um ZERO extra no final detodas as Strings, exemplo:
's go PPP'#0's ^N'#0#0
No exemplo acima temos um comando Send, terminado em ZERO, outro comando Send,
SyncAnywhere v1.2235
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
terminado em ZERO e um ZERO indicando o final do Script.
Comandos aceitos no Script
Função Comando Parâmetro Exemplo
Send s String s go PPP
Wait For w String s password:
Delay d Número de segundos s 1
Get IP g g
Prompt a String a Digite Nome:
Wait for Prompt f String f ID:
Send CR s String s ^N
Send UserID s String s nomeusuario
Send Password s String s senha
OBS: DEVE HAVER APENAS UM ÚNICO ESPAÇO ENTRE O COMANDO E OPARÂMETRO.
2.2.3.27 SyncAnywhereOpenActiveService
function SyncAnywhereOpenActiveService(RefNum: UInt16; ClientContext:UInt32): UInt32;
Comentários
Inicia o serviço selecionado no Prefs/Network. Esta função é útil quando você játem o serviço configurado ou quando o serviço requer configurações especiais comocomunicação IR (Celular IR), Bluetooth, WiFi, ou necessita configurar scripts.
Parâmetros
RefNum: Referência à biblioteca SyncAnywhereClientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na função
SyncAnywhereOpenRef .
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.2.3.28 SyncAnywhereOpenService
function SyncAnywhereOpenService(RefNum: UInt16; ClientContext: UInt32;ServiceName: PChar): UInt32;
Cliente Palm 36
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
Comentários
Inicia um serviço já configurado no Prefs/Network. Esta função é útil quando vocêjá tem o serviço configurado ou quando o serviço requer configurações especiais comocomunicação IR (Celular IR), Bluetooth, WiFi, ou necessita configurar scripts.
Parâmetros
RefNum: Referência à biblioteca SyncAnywhereClientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
ServiceName: Nome do Serviço criado no Prefs/Network.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.2.3.29 SyncAnywhereHangup
function SyncAnywhereHangup(RefNum: UInt16; ClientContext: UInt32):UInt32;
Comentários
Desconecta do servidor de comunicação, conectado pela função
SyncAnywhereDial ou pela função SyncAnywhereOpenService .
Parâmetros
RefNum: Referência à biblioteca SyncAnywhereClientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na função
SyncAnywhereOpenRef .
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.2.3.30 SyncAnywhereFTPPassiveModeOn
function SyncAnywhereFTPPassiveModeOn(RefNum: UInt16; ClientContext:UInt32): UInt32;
Comentários
SyncAnywhere v1.2237
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
Configura o modo "PASV" (FTP PASSIVO) na conexão FTP (default noSyncAnywhere).
Parâmetros
RefNum: Referência à biblioteca SyncAnywhereClientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.2.3.31 SyncAnywhereFTPPassiveModeOff
function SyncAnywhereFTPPassiveModeOff(RefNum: UInt16; ClientContext:UInt32): UInt32;
Comentários
Configura o modo não passivo (FTP ATIVO) na conexão FTP.
Parâmetros
RefNum: Referência à biblioteca SyncAnywhereClientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.2.3.32 SyncAnywhereSetTCPDelay
function SyncAnywhereSetTCPDelay(RefNum: UInt16; ClientContext: UInt32;Delay: UInt16): UInt32;
Comentários
Configura um tempo de espera entre os envios e recebimentos de blocos de dadosde/para o Servidor FTP. Esta função é importante quando as conexões são notoriamentelentas, sensíveis e suscetíveis à quedas como conexões via celular e principalmente porinfravermelho.
Como regra, quanto maior o tamanho do bloco utilizado para compactar o banco
Cliente Palm 38
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
de dados através da função SyncAnywherePackDatabase, maior deve ser o tempo deespera passado nesta função em conexões lentas, principalmente infravermelho. Comoparâmetro, em testes realizados em conexões IR com média qualidade, blocos de 500bytes compactados podem ser utilizados com o parâmetro Delay nesta funçãoconfigurado para 3 (300ms). Em conexões com pior qualidade, o tempo deve ser
aumentado e o tamanho do bloco diminuído.
Parâmetros
RefNum: Referência à biblioteca SyncAnywhereClientContext: Contexto de acesso à bibliotecaDelay: Número de "décimos de segundo" para a espera. DEZ décimos de
segundo equivalem a UM segundo de atraso, portanto, para atrasar TRÊS décimos de
segundo (300 ms) use SyncAnywhereSetTCPDelay(RefNum, ClientContext, 3).
Os parâmetros RefNum e ClientContext devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.2.3.33 SyncAnywhereFTPOpen
function SyncAnywhereFTPOpen(RefNum: UInt16; ClientContext: UInt32;Hostname: PChar; Port: UInt16; Username: PChar; Password: PChar; Timeout:UInt16): UInt32;
Comentários
Conecta-se a um servidor FTP. A conexão com um servidor de comunicação(RAS/Internet) já deve ter sido iniciada pela função SyncAnywhereDial ou por outromeio.
Parâmetros
RefNum: Referência à biblioteca SyncAnywhereClientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
HostName: O nome ou endereço IP do servidor FTP.
Port: A porta do serviço FTP no servidor. Se a porta for a padrão, utilize ZEROneste parâmetro.
Username: O nome do usuário para logon no servidor FTP.Password: A senha de acesso do usuário.Timeout: Número de segundos para timeout no acesso ao servidor FTP.
Retorno
SyncAnywhere v1.2239
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.2.3.34 SyncAnywhereFTPClose
function SyncAnywhereFTPClose(RefNum: UInt16; ClientContext: UInt32):UInt32;
Comentários
Fecha a conexão com o servidor FTP. A conexão deve ter sido aberta pela funçãoSyncAnywhereFTPOpen .
Parâmetros
RefNum: Referência à biblioteca SyncAnywhereClientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.2.3.35 SyncAnywhereFTPCd
function SyncAnywhereFTPCd(RefNum: UInt16; ClientContext: UInt32; Path:PChar): UInt32;
Comentários
Muda o diretório no servidor FTP.
Parâmetros
RefNum: Referência à biblioteca SyncAnywhereClientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
Path: Caminho para o diretório no servidor FTP
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
Cliente Palm 40
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
2.2.3.36 SyncAnywhereFTPMkd
function SyncAnywhereFTPMkd(RefNum: UInt16; ClientContext: UInt32; Name:PChar): UInt32;
Comentários
Cria o diretório no servidor FTP.
Parâmetros
RefNum: Referência à biblioteca SyncAnywhereClientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
Name: Nome do diretório a ser criado no servidor FTP.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.2.3.37 SyncAnywhereFTPRmd
function SyncAnywhereFTPRmd(RefNum: UInt16; ClientContext: UInt32; Name:PChar): UInt32;
Comentários
Remove o diretório do servidor FTP.
Parâmetros
RefNum: Referência à biblioteca SyncAnywhereClientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
Name: Nome do diretório a ser removido no servidor FTP.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
SyncAnywhere v1.2241
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
2.2.3.38 SyncAnywhereFTPDel
function SyncAnywhereFTPDel(RefNum: UInt16; ClientContext: UInt32; Name:PChar): UInt32;
Comentários
Remove o arquivo do servidor FTP.
Parâmetros
RefNum: Referência à biblioteca SyncAnywhereClientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
Name: Nome do arquivo a ser removido no servidor FTP.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.2.3.39 SyncAnywhereFTPPut
function SyncAnywhereFTPPut(RefNum: UInt16; ClientContext: UInt32;DBName: PChar): UInt32;
Comentários
Envia um banco de dados ou aplicação do Palm para o servidor FTP.
Parâmetros
RefNum: Referência à biblioteca SyncAnywhereClientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
DBName: Nome do banco de dados ou aplicação para ser enviada ao servidor. O
nome não deve conter extensão pois ela será colocada automaticamente (.PDB/.PRC)dependendo do que estiver sendo enviado. Atenção: o nome do banco de dados écase-sensitive.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
Cliente Palm 42
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
2.2.3.40 SyncAnywhereFTPGet
function SyncAnywhereFTPGet(RefNum: UInt16; ClientContext: UInt32; Name:PChar): UInt32;
Comentários
Recebe um banco de dados ou aplicação do servidor FTP.
Parâmetros
RefNum: Referência à biblioteca SyncAnywhereClientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
Name: Nome do banco de dados ou aplicação para ser recebida do servidor. O
nome deve conter a extensão (.PDB/.PRC) dependendo do que estiver sendo recuperado.Atenção: alguns servidores FTP exigem que os nomes de arquivo sejamexatamente como estão armazenados (case-sensitive) .
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indica
erro cujo código está descrito em uma seção mais adiante.
2.2.3.41 SyncAnywhereFTPRename
function SyncAnywhereFTPRename(RefNum: UInt16; ClientContext: UInt32;OldName: PChar; NewName: PChar): UInt32;
Comentários
Renomeia um banco de dados ou aplicação no servidor FTP.
Parâmetros
RefNum: Referência à biblioteca SyncAnywhereClientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na função
SyncAnywhereOpenRef .
OldName: Nome do banco de dados ou aplicação para ser renomeada noservidor. O nome deve conter a extensão (.PDB/.PRC) dependendo do que estiver sendorenomeado. Atenção: alguns servidores FTP exigem que os nomes de arquivosejam exatamente como estão armazenados (case-sensitive).
NewName: Novo nome do arquivo no servidor.
Retorno
SyncAnywhere v1.2243
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.2.3.42 SyncAnywhereFTPGetLastResponse
function SyncAnywhereFTPGetLastResponse(RefNum: UInt16; ClientContext:UInt32; Response: PChar): UInt32;
Comentários
Obtém o texto da última resposta do servidor FTP.
Parâmetros
RefNum: Referência à biblioteca SyncAnywhereClientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
Response: Última mensagem de resposta do servidor FTP. Este texto é
recuperado diretamente o servidor FTP, portanto a mensagem é do próprio servidor.Atenção: Este parâmetro DEVE SER uma variável PChar ou Array de Charalocada com 255 caracteres. A biblioteca irá copiar a mensagem nesteparâmetro, não fará alocação de memória para o retorno da mensagem. Se vocênão alocar espaço, poderá causar um erro na sua aplicação e Reset no Palm .
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.2.3.43 SyncAnywhereFTPSetServerType
function SyncAnywhereFTPSetServerType(RefNum: UInt16; ClientContext:UInt32; ServerType: UInt16): UInt32;
Comentários
Configura o tipo de listagem de diretório (comando DIR) retornada pelo servidorFTP. O parâmetro ServerType pode ser configurado como ZERO para retorno padrãoUnix/Linux e UM para retorno padrão Windows 2000.
Parâmetros
RefNum: Referência à biblioteca SyncAnywhereClientContext: Contexto de acesso à bibliotecaServerType: ZERO para retorno padrão Unix/Linux e UM para
retorno padrão Windows 2000.
Os dois parâmetros devem ter sido recuperados na função
Cliente Palm 44
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
SyncAnywhereOpenRef .
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indica
erro cujo código está descrito em uma seção mais adiante.
2.2.3.44 SyncAnywhereFTPDir
function SyncAnywhereFTPDir(RefNum: UInt16; ClientContext: UInt32):UInt32;
Comentários
Obtém a listagem dos arquivos do diretório corrente no Servidor FTP. Estaoperação não apresenta os arquivos no formulário, obtém a lista para uso posterior pelasfunções SyncAnywhereFTPGetFileCount, SyncAnywhereFTPGetFileName,SyncAnywhereFTPFileExists e SyncAnywhereFTPDirectoryExists.
SyncAnywhereFTPDir não é chamada automaticamente ao se conectar ao ServidorFTP e na mudança de diretório no Servidor para otimizar a transmissão. Fica a critério do
desenvolvedor obter ou não a lista de arquivos, através da utilização ou não destafunção.
Parâmetros
RefNum: Referência à biblioteca SyncAnywhereClientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
Exemplo de utilização
// Obtém a listagem dos arquivos do diretório // corrente no Servidor Erro := SyncAnywhereFTPDir(RefNum, Context); if Erro>0 then begin // Erro no comando SyncAnywhereFTPDIR
Exit; end;
// Recupera o número de arquivos no diretório // corrente no Servidor Erro := SyncAnywhereFTPGetFileCount(RefNum, Context, FileCount);
SyncAnywhere v1.2245
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
if Erro>0 then begin // Erro no comando SyncAnywhereFTPGetFileCount Exit; end;
// Mostra o número de arquivos StrCopy(Str, 'Número de Arquivos no Servidor: '); StrIToA(Str2, FileCount); StrCat(Str, Str2); ShowMessage(Str);
// Mostra os nomes dos arquivos
for x:=0 to FileCount-1 do begin Erro := SyncAnywhereFTPGetFileName(RefNum, Context, x, Nome);
if Erro=0 then ShowMessage(Nome); end;
// Verifica se o arquivo existe no Servidor Erro := SyncAnywhereFTPFileExists(RefNum, Context, 'Test.pdb', Exists); if Erro>0 then begin // Erro no comando SyncAnywhereFTPFileExists Exit; end;
// Indica se o arquivo existe if Exists>0 then ShowMessage('Arquivo existe no Servidor!') else ShowMessage('Arquivo não existe no Servidor!');
// Verifica se o diretório existe no Servidor
Erro := SyncAnywhereFTPDirectoryExists(RefNum, Context, 'dados', Exists); if Erro>0 then begin // Erro no comando SyncAnywhereFTPDirectoryExists Exit; end;
// Indica se o diretório existe
if Exists>0 then ShowMessage('Diretório existe no Servidor!') else ShowMessage('Diretório não existe no Servidor!');
Cliente Palm 46
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
2.2.3.45 SyncAnywhereFTPGetFileCount
function SyncAnywhereFTPGetFileCount(RefNum: UInt16; ClientContext:UInt32; var FileCount: UInt16): UInt32;
Comentários
Recupera o número de arquivos no diretório corrente do Servidor FTP. Atenção:esta função só funciona se o comando SyncAnywhereFTPDir for chamado antes pararecuperar a lista de arquivos do Servidor FTP.
Parâmetros
RefNum: Referência à biblioteca SyncAnywhereClientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
FileCount: Variável do tipo UInt16 para receber o número de arquivos nodiretório corrente do Servidor FTP.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indica
erro cujo código está descrito em uma seção mais adiante.
Exemplo de utilização
Consulte a função SyncAnywhereFTPDir para exemplo de utilização desta função.
2.2.3.46 SyncAnywhereFTPFileExists
function SyncAnywhereFTPFileExists(RefNum: UInt16; ClientContext: UInt32;
FileName: PChar; var FileExists: UInt16): UInt32;
Comentários
Verifica se o arquivo existe no diretório corrente do Servidor FTP. Atenção: estafunção só funciona se o comando SyncAnywhereFTPDir for chamado antes pararecuperar a lista de arquivos do Servidor FTP.
Parâmetros
RefNum: Referência à biblioteca SyncAnywhereClientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
FileName: Nome do arquivo.
SyncAnywhere v1.2247
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
FileExists: Variável do tipo UInt16 para receber o resultado da verificação. ZEROindica que o arquivo não existe no diretório corrente do Servidor; UM indica que oarquivo existe.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
Exemplo de utilização
Consulte a função SyncAnywhereFTPDir para exemplo de utilização desta função.
2.2.3.47 SyncAnywhereFTPDirectoryExists
function SyncAnywhereFTPDirectoryExists(RefNum: UInt16; ClientContext:UInt32; DirName: PChar; var DirExists: UInt16): UInt32;
Comentários
Verifica se o diretório existe no diretório corrente do Servidor FTP. Atenção: esta
função só funciona se o comando SyncAnywhereFTPDir for chamado antes pararecuperar a lista de arquivos do Servidor FTP.
Parâmetros
RefNum: Referência à biblioteca SyncAnywhereClientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
DirName: Nome do diretório.DirExists: Variável do tipo UInt16 para receber o resultado da verificação. ZERO
indica que o diretório não existe no diretório corrente do Servidor; UM indica que odiretório existe.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
Exemplo de utilização
Consulte a função SyncAnywhereFTPDir para exemplo de utilização desta função.
2.2.3.48 SyncAnywhereFTPGetFileName
function SyncAnywhereFTPGetFileName(RefNum: UInt16; ClientContext:UInt32; FileIndex: UInt16; FileName: PChar): UInt32;
Cliente Palm 48
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
Comentários
Recupera o nome do arquivo no diretório do Servidor FTP segundo o índiceespecificado. Atenção: esta função só funciona se o comando SyncAnywhereFTPDir forchamado antes para recuperar a lista de arquivos do Servidor FTP.
Parâmetros
RefNum: Referência à biblioteca SyncAnywhereClientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
FileIndex: Índice do arquivo na lista. O primeiro índice é ZERO.FileName: O nome do arquivo será retornado neste parâmetro. Atenção: Este
parâmetro DEVE SER uma variável PChar ou Array de Char alocada com nomínimo 100 caracteres. A biblioteca irá copiar o nome neste parâmetro, nãofará alocação de memória para o retorno da mensagem. Se você não alocarespaço, poderá causar um erro na sua aplicação e Reset no Palm.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
Exemplo de utilização
Consulte a função SyncAnywhereFTPDir para exemplo de utilização desta função.
2.3 NSBasic
2.3.1 Instalação
No diretório do SyncAnywhere\NSBasic , há um arquivo chamadoSyncAnywhere.inf que deve ser copiado para o diretório Lib do NSBasic. Este arquivocontém as informações de acesso à SharedLib do SyncAnywhere, necessário para que o
NSBasic possa compilar sua aplicação.
2.3.2 Utilização
A aplicação exemplo FTPTest sob o diretório NSBasic mostra como utilizar asfunções da biblioteca para compactar dados e também para acessar um servidor FTP. Noformulário da aplicação, serão solicitados todos os dados para que seja possível a
conexão com o servidor FTP:
· O número de telefone para discagem ao servidor de comunicação, seja um RASou provedor Internet;
· Tipo de discagem, pulso ou tom;
SyncAnywhere v1.2249
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
· Nome de usuário e senha de acesso ao servidor RAS ou provedor Internet;· O endereço IP ou nome do servidor FTP;
· O nome do usuário e senha para logon no servidor FTP.
O primeiro passo é criar a variável global que irá armazenar o contexto de acessoà biblioteca, carregar a biblioteca e criar o contexto. Este é um procedimento básico quedeve ser executado em todas as suas aplicações que forem utilizar os recursos doSyncAnywhere. O local ideal para colocar este código é no Startup Code da aplicação:
Sub Project_Startup()
Global Context as Integer
' Carrega a biblioteca SyncAnywhere LoadLibrary "SyncAnywhere", "Sya"
' Obtém uma referência ao Contexto da biblioteca Context = Sya.SyncAnywhereCreateContext()
If Context=0 Then MsgBox "Não foi possível obter contexto da biblioteca SyncAnywhere!" End If
End Sub
É importante também que o contexto de acesso à biblioteca seja destruído antes
que a aplicação termine, para que a memória alocada para ele seja liberada. O melhorlocal para colocar este código é no Termination Code da aplicação:
Sub Project_Termination()
' Destrói o contexto de acesso à biblioteca do SyncAnywhere Sya.SyncAnywhereDestroyContext Context
End Sub
O código no botão Iniciar FTP executa comandos da biblioteca:
Sub object1028()
Dim TmpStr as String Dim Telefone as String
Dim Usuario as String Dim Senha as String Dim ServidorFTP as String Dim UsuarioFTP as String Dim SenhaFTP as String Dim Pulso as Short Dim Erro as Integer Dim BlockSize as Short
Dim DBPack as Database Dim Porta as Short Dim Timeout as Short
Cliente Palm 50
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
' Verifica se existe um Contexto de acesso à biblioteca If Context=0 Then Exit Sub End If
' Verifica se existe um modem conectado ao Palm ' ------------------------------------------------------------------------ ' Para conexão por Celulares ou Modem via Infravermelho, NÃO USE a ' função SyncAnywhereModemDetect, pois ela não será capaz de ' detectar a comunicação com o Celular. Esta função deve ser usada ' somente quando a conexão For feita através de Modem acoplado ao ' Palm, ou celular via cabo ' ------------------------------------------------------------------------
FldStatus.Text = "Detectando Modem..." Erro = Sya.SyncAnywhereModemDetect(Context) If Erro>0 Then FldStatus.Text = "Modem não detectado!" Exit Sub End If
' Configura o CreatorID para os PDBs compactados Erro = Sya.SyncAnywhereSetCreatorID(Context, "CBCT") If Erro>0 Then MsgBox "Erro de Configuração do CreatorID" Exit Sub End If
' Recupera as informações dos campos
Telefone = FldTelefone.Text Usuario = FldUsuario.Text Senha = FldSenha.Text ServidorFTP = FldServidor.Text UsuarioFTP = FldUsuarioFTP.Text SenhaFTP = FldSenhaFTP.Text
' Pulso/Tom
If ChkPulso.Status=nsbChecked Then Pulso = 1 Else Pulso = 0 End If
' Apaga o banco de dados compactado, se estiver no Palm Erro = DBOpen(DBPack, "PDBPack", 0)
If Erro=0 Then DBClose(DBPack) DBErase(DBPack) End If
' Compacta bancos de dados para envio ao Servidor ' Determina o tamanho do BlockSize ' ATENÇÃO: para chamadas à bibliotecas, o parâmetro to tipo
SyncAnywhere v1.2251
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
' número deve ser uma variável ou vai causar erro ' na execução da aplicação. Neste caso, o tipo da ' variável deve ser Short BlockSize = 5000
' Compacta o banco de Dados ' Parâmetros: ' Context: é o Contexto para a biblioteca, adquirido logo ' depois de abrir a biblioteca no Startup Code do projeto ' PDBPack: é o nome do banco de dados onde todos os outros bancos ' serão compactados ' ClientesDB e ProdutosDB: são os bancos que serão compactadosdentro
' de PDBPack ' BlockSize: é o tamanho máximo do registro compactado dentro dePDBPack. ' Este valor deve estar na faixa de 50 bytes a 30000 bytes e você ' pode fazer testes com valores intermediários na faixa de 5000, ' dependendo da qualidade de transmissão na sua região FldStatus.Text = "Compactando ClientesDB"
Erro = Sya.SyncAnywherePackDatabase(Context, "PDBPack", "ClientesDB",BlockSize) If Erro>0 Then MsgBox "Erro de Compactação de Dados de ClientesDB" Exit Sub End If
FldStatus.Text = "Compactando ProdutosDB"
Erro = Sya.SyncAnywherePackDatabase(Context, "PDBPack", "ProdutosDB",BlockSize) If Erro>0 Then MsgBox "Erro de Compactação de Dados de ProdutosDB" Exit Sub End If
' Abre a Net.Lib
FldStatus.Text = "Abrindo Net.Lib..." Erro = Sya.SyncAnywhereNetLibOpen(Context) If Erro>0 Then TmpStr = "Erro de abertura Net.Lib: " + Str(Erro) FldStatus.Text = TmpStr Exit Sub End If
' Configura as propriedades de discagem Sya.SyncAnywhereSetDialProperties Context, Telefone, Porta
' Conecta no servidor de comunicação FldStatus.Text = "Discando"
' ------------------------------------------------------------------------ ' Para conexão por Celulares ou Modem via Infravermelho, NÃO USE a
Cliente Palm 52
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
' função SyncAnywhereModemDial, pois ela não fará a discagem. Ao ' invés de usar esta // função, crie a conexão com o celular na ' aplicação Prefs Do Palm, opção Network e configure lá o telefone, o ' modo de conexão, usuário e senha, e utilize a função ' SyncAnywhereOpenService(NomeDaConexão) para efetuar
' a discagem. O nome no parâmetro deve ser exatamente igual ao ' nome Do serviço criado, respeitando-se as letras maiúsculas e ' minúsculas. ' Caso tenha alguma dúvida, consulte o manual Do SyncAnywhere. ' ------------------------------------------------------------------------ Erro = Sya.SyncAnywhereDial(Context, Usuario, Senha) If Erro>0 Then TmpStr = "Erro de Discagem: " + Str(Erro)
FldStatus.Text = TmpStr
' Fecha Net.Lib Erro = Sya.SyncAnywhereNetLibClose(Context)
Exit Sub End If
' Configura as propriedades de de acesso ao Servidor FTP Porta = 0 ' Porta default Timeout = 10 ' 10 segundos Sya.SyncAnywhereSetFTPProperties Context, Porta, Timeout
' Conecta no Servidor FTP FldStatus.Text = "Conectando no Servidor FTP..."
Erro = Sya.SyncAnywhereFTPOpen(Context, ServidorFTP, UsuarioFTP,SenhaFTP) If Erro>0 Then TmpStr = "Erro de Conexão: " + Str(Erro) FldStatus.Text = TmpStr
' Desconecta Do Servidor de comunicação Erro = Sya.SyncAnywhereHangup(Context)
' Fecha Net.Lib Erro = Sya.SyncAnywhereNetLibClose(Context)
Exit Sub End If
' Comando GET de uma aplicação
FldStatus.Text = "Recebendo Clientes.prc" Erro = Sya.SyncAnywhereFTPGet(Context, "Clientes.prc") If Erro>0 Then TmpStr = "Erro de recepção: " + Str(Erro) MsgBox TmpStr End If
' Comando PUT Do Banco compactado
SyncAnywhere v1.2253
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
FldStatus.Text = "Enviando PDBPack..." Erro = Sya.SyncAnywhereFTPPut(Context, "PDBPack") If Erro>0 Then TmpStr = "Erro de envio: " + Str(Erro) MsgBox TmpStr
Else ' Fecha Conexão FTP, somente se o envio foi ' concluído Erro = Sya.SyncAnywhereFTPClose(Context) End If
' Desconecta Do Servidor de comunicação Erro = Sya.SyncAnywhereHangup(Context)
' Fecha Net.Lib Erro = Sya.SyncAnywhereNetLibClose(Context)
FldStatus.Text = "Comunicação realizada com sucesso!"
End Sub
O código no botão Analisar PDBPack executa comandos da biblioteca:
Sub object1032()
Dim NumDBs as Integer Dim x as Short Dim Erro as Integer
Dim TmpStr as String Dim DBPack as Database
' Procura pelo banco PDBPack no Palm Erro = DBOpen(DBPack, "PDBPack", 0) If Erro>0 Then MsgBox "Banco PDBPack não foi encontrado, comande o Início do FTP oucarregue o banco de dados PDBPack.pdb do diretório TestDB no palm ou
Emulador" Exit Sub End If DBClose(DBPack)
' Verifica o número de bancos de dados Compactados em PDBPack NumDBs = Sya.SyncAnywhereGetDBCount(Context, "PDBPack") If NumDBs=0 Then
MsgBox "Erro ao recuperar número de bancos ou banco de dados não foigerado pelo SyncAnywhere versão 1.17 ou superior" Exit Sub End If
' Apresenta número de Bancos MsgBox "Número de bancos de dados em PDBPack: " + Str(NumDBs)
Cliente Palm 54
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
' Apresenta o nome dos Bancos em PDBPack For x=0 to NumDBs-1 TmpStr = RightPad(" ", 32) Erro = Sya.SyncAnywhereGetDBName(Context, "PDBPack", x, TmpStr) If Erro>0 Then
MsgBox "Erro ao recuperar nome do banco: " + Str(Erro) Exit Sub End If
' Apresenta o nome MsgBox "Banco armazenado em PDBPack: " + TmpStr Next
' Descompacta apenas um banco de dados de PDBPack Erro = Sya.SyncAnywhereUnpackOneDB(Context, "PDBPack", "ProdutosDB") If Erro>0 Then MsgBox "Erro ao descompactar banco ProdutosDB de PDBPack: " + Str(Erro) Exit Sub End If
' Teste efetuado com sucesso! MsgBox "Banco de dados ProdutosDB descompactado!"
End Sub
2.3.3 Funções do SyncAnywhere
2.3.3.1 SyncAnywhereCreateContext
Function SyncAnywhereCreateContext() As Integer
Comentário
Cria o contexto de acesso à biblioteca. O retorno desta função deve ser usado emtodas as funções da biblioteca, portanto deve ser salvo em uma variável global.
Parâmetros
Nenhum
Retorno
O contexto de acesso à biblioteca do SyncAnywhere.
2.3.3.2 SyncAnywhereDestroyContext
Sub SyncAnywhereDestroyContext(ClientContext As Integer)
Comentário
SyncAnywhere v1.2255
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
Destrói o contexto de acesso à biblioteca. Deve ser chamado antes da aplicaçãoterminar para liberar a memória alocada para o contexto.
Parâmetros
ClientContext: Contexto de acesso à biblioteca, adquirido pela chamada àSyncAnywhereCreateContext .
2.3.3.3 SyncAnywhereGetVersion
Function SyncAnywhereGetVersion() As Integer
Comentários
Recupera a versão da biblioteca. A versão é retornada como um número inteiro,onde a centena representa a versão e a dezena, a correção da versão, exemplo: a versão113 representa a versão 1 da biblioteca, com a correção 13.
Parâmetros
Nenhum
Retorno
Inteiro representando a versão da biblioteca.
2.3.3.4 SyncAnywhereCheckSumOn
Sub SyncAnywhereCheckSumOn(Context As Integer)
Comentários
Habilita a gravação de bytes de verificação de integridade nos registros do bancode dados compactado, para auxiliar na garantia da integridade dos dados transmitidos.Por default, a gravação dos bytes de verificação está desabilitada . O número de bytesde verificação de integridade gravados por registro é 10.
Parâmetros
ClientContext: Contexto de acesso à biblioteca
2.3.3.5 SyncAnywhereCheckSumOff
Sub SyncAnywhereCheckSumOff(Context As Integer)
Comentários
Desabilita a gravação de bytes de verificação de integridade nos registros dobanco de dados compactado (default).
Cliente Palm 56
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
Parâmetros
ClientContext: Contexto de acesso à biblioteca
2.3.3.6 SyncAnywhereUIDSupportOn
Sub SyncAnywhereUIDSupportOn(Context As Integer)
Comentários
Habilita a gravação do UniqueID de cada registro do banco de dados. O UniqueIDé uma informação não utilizada pela maioria das ferramentas, mas se por algum motivosua aplicação usa esta informação, você precisa habilitar o uso com esta função. Por
default, a gravação do UniqueID está desabilitada para economizar espaço no banco dedados compactado gerado.
Atenção:
- O uso desta função torna o SyncAnywhereincompatível com bancos de dados compactados sem o uso destafunção. Para que o SyncAnywhere seja compatível com bancos dedados compactados sem o UniqueID, é necessário utilizar a funçãoSyncAnywhereUIDSupportOff.
- É necessário também habilitar a gravação do UniqueIDna sua aplicação que compacta e descompacta dados no servidor.
- Quando quiser habilitar o suporte ao UniqueID, utilizeesta função logo após abrir a biblioteca pois ela é necessária paracompactar e descompactar bancos de dados com UniqueID.
Parâmetros
ClientContext: Contexto de acesso à biblioteca
2.3.3.7 SyncAnywhereUIDSupportOff
Sub SyncAnywhereUIDSupportOff(Context As Integer)
Comentários
Desabilita a gravação do UniqueID de cada registro do banco de dados. OUniqueID é uma informação não utilizada pela maioria das ferramentas, mas se poralgum motivo sua aplicação usa esta informação, você precisa habilitar o uso com afunção SyncAnywhereUIDSupportOn . Por default, a gravação do UniqueID estádesabilitada para economizar espaço no banco de dados compactado gerado.
Atenção: o uso do UniqueID torna o SyncAnywhere
SyncAnywhere v1.2257
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
incompatível com bancos de dados compactados sem o uso dafunção SyncAnywhereUIDSupportOn.
Parâmetros
ClientContext: Contexto de acesso à biblioteca
2.3.3.8 SyncAnywhereSetPackDataBlock
Sub SyncAnywhereSetPackDataBlock(ClientContext As Integer, MaxDataBlockAs Integer)
Comentários
Esta função é de extrema importância se o arquivo tiver que ser descompactado
em equipamentos com pouca memória como o Zire, M100, M105 ou qualquer outro quetenha 2MB de memória ou menos. Esses equipamentos tem muito pouca memóriadinâmica para alocação, assim, a quantidade de memória disponível depende dotamanho da aplicação. O tamanho máximo do bloco compactado de dados deve serconfigurado segundo sua necessidade em equipamentos com pouca memória e nestecaso um valor de 500 bytes é geralmente adequado à aplicações grandes.
Parâmetros
ClientContext: Contexto de acesso à biblioteca, adquirido pela chamada àSyncAnywhereCreateContext .
MaxDataBlock: Tamanho máximo (em bytes) do bloco de dados que serácompactado. O default é 30000 bytes, mas para equipamentos com pouca memória estevalor deve ser muito mais baixo, em torno de 500 bytes quando a aplicação executada égrande ou até 5000 bytes se a aplicação for pequena.
2.3.3.9 SyncAnywhereSetCreatorID
Function SyncAnywhereSetCreatorID(Context As Integer, CreatorID As String)As Integer
Comentários
Configura o CreatorID que será usado para os arquivos compactados.
Parâmetros
Context: Contexto de acesso à biblioteca, adquirido pela chamada àSyncAnywhereCreateContext .
CreatorID: O CreatorID, com exatamente quatro caracteres.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
Cliente Palm 58
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
2.3.3.10 SyncAnywherePackDatabase
Function SyncAnywherePackDatabase(ClientContext As Integer, DBDest AsString, DBSource As String, MaxBlockSize As Short) As Integer
Comentários
Compacta o banco de dados informado em DBSource, no banco de dadosinformado em DBDest.
Parâmetros
ClientContext: Contexto de acesso à biblioteca, adquirido pela chamada àSyncAnywhereCreateContext .
DBDest: Nome do banco de dados destino, onde será compactado o banco dedados de origem. Atenção: O banco de dados destino deve ser apagado antes dechamar esta função pela primeira vez. As chamadas sucessivas à esta função
adicionam bancos de dados compactados à DBDest, portanto na primeira vez que usaresta função, certifique-se que ele não exista, para que a compactação inicie em umbanco de dados novo.
DBSource: Banco de dados origem, que será compactado dentro de DBDest.MaxBlockSize: Tamanho máximo do registro que será gerado no banco de dados
DBDest. Este valor normalmente deve ser em torno de 5000, que representa 5000 bytesem cada registro e pode ser configurado em função da qualidade de transmissão da linha
telefônica ou celular. Há locais onde é melhor que este valor seja menor, em torno de1000, para minimizar erros na transmissão. O tamanho mínimo é 50 bytes e o máximo30000. Atenção: No NSBasic, este parâmetro deve ser passado através de umavariável do tipo Short. Atribua o tamanho do bloco à esta variável e passe-a noparâmetro.
Observação importante: para os modelos M100, Zire e outros que temmemória igual ou inferior a 2MB, este parâmetro não poderá ser maior que
2500 bytes, ou retornará o erro appErrInvalidBlockSize. Estes modelos temmemória "Heap" (memória dinâmica liberada pelo PalmOS) extremamentelimitada e as alocações de memória internas necessárias para compactaçãopodem falhar se o valor for maior que 2500 bytes. Se o Banco de Dados tiverque ser descompactado em equipamentos deste tipo, não se esqueça deconfigurar o tamanho do bloco de compactação com as funçõesSyncAnywhereSetPackDataBlock no Palm e PackSetMaxDataBlock no Servidor.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.3.3.11 SyncAnywhereGetDBCount
Function SyncAnywhereGetDBCount(ClientContext As Integer, DBSource AsString) As Integer
SyncAnywhere v1.2259
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
Comentários
Recupera o número de bancos de dados compactados dentro do bancoespecificado no parâmetro DBSource, na variável informada no parâmetro DBCount. Onúmero de bancos de dados compactados só pode ser recuperado dos PDBs
gerados pelo SyncAnywhere a partir da versão 1.17.
Parâmetros
ClientContext: Contexto de acesso à biblioteca, adquirido pela chamada àSyncAnywhereCreateContext .
DBSource: O nome do banco de dados compactado com o SyncAnywhere.
Retorno
ZERO indica que houve um erro na recuperação do número de bancos de dadoscompactados ou que o banco de dados não foi gerado com o SyncAnywhere versão 1.17ou superior. Maior que ZERO indica o número de bancos compactados dentro do bancoinformado.
2.3.3.12 SyncAnywhereGetDBName
Function SyncAnywhereGetDBName(ClientContext As Integer, DBSource AsString, Indx as Short, DBName As String) As Integer
Comentários
Recupera o nome de bancos de dados compactado dentro do banco especificadono parâmetro DBSource, na variável informada no parâmetro DBName , de acordo com
o índice do banco informado no parâmetro Indx. O nome dos bancos de dadoscompactados só podem ser recuperados dos PDBs gerados pelo SyncAnywherea partir da versão 1.17.
Parâmetros
ClientContext: Contexto de acesso à biblioteca, adquirido pela chamada àSyncAnywhereCreateContext .
DBSource: O nome do banco de dados compactado com o SyncAnywhere.Indx: O índice do banco de dados. O primeiro banco de dados compactado tem
índice ZERO. Para saber o número de bancos de dados compactados, utilize a funçãoSyncAnywhereGetDBCount .
DBName: O nome do banco de dados compactado é retornado neste parâmetro.Atenção: Este parâmetro DEVE SER uma variável String previamente preenchidacom no mínimo 32 espaços. Se você não preparar a variável com os 32 espaços,
poderá causar um erro na sua aplicação e Reset no Palm.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
Cliente Palm 60
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
2.3.3.13 SyncAnywhereCheckDatabase
Function SyncAnywhereCheckDatabase(ClientContext As Integer, DBSource AsString) As Integer
Comentários
Verifica a estrutura de um banco compactado gerado pelo SyncAnywhere. Afunção verifica a integridade do número de registros no banco e CheckSum (sehabilitado).
Parâmetros
ClientContext: Contexto de acesso à biblioteca, adquirido pela chamada àSyncAnywhereCreateContext .
DBSource: O nome do banco de dados compactado com o SyncAnywhere.
Retorno
ZERO indica que o PDB está íntegro na sua estrutura.
UM indica que o PDB está íntegro na sua estrutura, mas o CheckSum estádesabilitado, portanto ainda pode haver erro nos registros transferidos.
> UM é o código de erro da verificação do PDB.
2.3.3.14 SyncAnywhereUnpackDatabase
Function SyncAnywhereUnpackDatabase(ClientContext As Integer, DBSource AsString) As Integer
Comentários
Descompacta os bancos de dados para a memória do Palm. Atenção: Você deve
apagar os bancos de dados que serão descompactados antes que eles sejamdescompactados por esta função ou os registros serão adicionados aosregistros dos bancos de dados se já existirem.
Parâmetros
ClientContext: Contexto de acesso à biblioteca, adquirido pela chamada àSyncAnywhereCreateContext .
DBSource: O nome do banco de dados compactado com o SyncAnywhere.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
SyncAnywhere v1.2261
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
2.3.3.15 SyncAnywhereUnpackOneDB
Function SyncAnywhereUnpackOneDB(ClientContext As Integer, DBSource AsString, DBName As String) As Integer
Comentários
Descompacta um único banco de dados para a memória do Palm. Atenção: Vocêdeve apagar o banco de dados que será descompactado antes que eles sejadescompactado por esta função ou os registros serão adicionados aos registros
do banco de dados.
Parâmetros
ClientContext: Contexto de acesso à biblioteca, adquirido pela chamada àSyncAnywhereCreateContext .
DBSource: O nome do banco de dados compactado com o SyncAnywhere.DBName: O nome do banco de dados que será extraído do banco compactado.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.3.3.16 SyncAnywhereUnpackApplication
Function SyncAnywhereUnpackApplication(ClientContext As Integer, DBSourceAs String) As Integer
Comentários
Descompacta a aplicação compactada em um Banco de Dados Palm (PDB) para amemória do Palm. Atenção: Você deve apagar a aplicação que serádescompactada antes que ela seja descompactada por esta função ou será
retornado um código de erro.
Parâmetros
ClientContext: Contexto de acesso à biblioteca, adquirido pela chamada àSyncAnywhereCreateContext .
DBSource: O nome do banco de dados que contém a aplicação compactada como SyncAnywhere.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
Cliente Palm 62
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
2.3.3.17 SyncAnywhereNetLibOpen
Function SyncAnywhereNetLibOpen(ClientContext As Integer) As Integer
Comentários
Abre a biblioteca de comunicação do Palm. Esta função deve ser chamada antesde qualquer outra função de comunicação.
Parâmetros
ClientContext: Contexto de acesso à biblioteca, adquirido pela chamada àSyncAnywhereCreateContext .
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.3.3.18 SyncAnywhereNetLibClose
Function SyncAnywhereNetLibClose(ClientContext As Integer) As Integer
Comentários
Fecha a biblioteca de comunicação do Palm. Esta função deve ser chamada
quando a comunicação não for mais necessária, geralmente a última função a serchamada no processo de comunicação.
Parâmetros
ClientContext: Contexto de acesso à biblioteca, adquirido pela chamada àSyncAnywhereCreateContext .
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.3.3.19 SyncAnywhereModemDetect
Function SyncAnywhereModemDetect(ClientContext As Integer) As Integer
Comentários
Detecta se um Modem ou Celular (via cabo serial) está conectado ao Palm.
Parâmetros
ClientContext: Contexto de acesso à biblioteca, adquirido pela chamada à
SyncAnywhere v1.2263
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
SyncAnywhereCreateContext .
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indica
erro cujo código está descrito em uma seção mais adiante.
2.3.3.20 SyncAnywhereSetDialProperties
Sub SyncAnywhereSetDialProperties(ClientContext As Integer, Phone As String,Pulse As Short)
Comentários
Configura os parâmetros de discagem para o servidor de comunicação(RAS/Internet).
Parâmetros
ClientContext: Contexto de acesso à biblioteca, adquirido pela chamada àSyncAnywhereCreateContext .
Phone: Número do telefone para discagemPulse: 1 para discagem por Pulso ou ZERO para discagem por Tom. Atenção: No
NSBasic, este parâmetro deve ser passado através de uma variável do tipoShort. Atribua a configuração Pulso/Tom à esta variável e passe-a noparâmetro.
2.3.3.21 SyncAnywhereDial
Function SyncAnywhereDial(ClientContext As Integer, Username As String,
Password As String) As String
Comentários
Disca para um servidor de comunicação usando o modem acoplado ao Palm(PalmModem ou Celular via cabo serial).
Parâmetros
ClientContext: Contexto de acesso à biblioteca, adquirido pela chamada àSyncAnywhereCreateContext .
Username: Nome do usuário para validação no servidor de comunicação(RAS/Internet).
Password: Senha de acesso do usuário.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
Cliente Palm 64
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
2.3.3.22 SyncAnywhereOpenActiveService
Function SyncAnywhereOpenActiveService(ClientContext As Integer) AsInteger
Comentários
Inicia o serviço selecionado no Prefs/Network. Esta função é útil quando você játem o serviço configurado ou quando o serviço requer configurações especiais comocomunicação IR (Celular IR), Bluetooth, WiFi, ou necessita configurar scripts.
Parâmetros
ClientContext: Contexto de acesso à biblioteca, adquirido pela chamada àSyncAnywhereCreateContext .
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.3.3.23 SyncAnywhereOpenService
Function SyncAnywhereOpenService(ClientContext As Integer, ServiceName AsString) As Integer
Comentários
Inicia um serviço já configurado no Prefs/Network. Esta função é útil quando vocêjá tem o serviço configurado ou quando o serviço requer configurações especiais comocomunicação IR (Celular IR), Bluetooth, WiFi, ou necessita configurar scripts.
Parâmetros
ClientContext: Contexto de acesso à biblioteca, adquirido pela chamada àSyncAnywhereCreateContext .
ServiceName: Nome do Serviço criado no Prefs/Network.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.3.3.24 SyncAnywhereHangup
Function SyncAnywhereHangup(ClientContext As Integer) As Integer
Comentários
SyncAnywhere v1.2265
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
Desconecta do servidor de comunicação, conectado pela funçãoSyncAnywhereDial ou pela função SyncAnywhereOpenService .
Parâmetros
ClientContext: Contexto de acesso à biblioteca, adquirido pela chamada àSyncAnywhereCreateContext .
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.3.3.25 SyncAnywhereSetFTPProperties
Sub SyncAnywhereSetFTPProperties(ClientContext As Integer, Port As Short,Timeout As Short)
Comentários
Configura os parâmetros de conexão ao servidor FTP.
Parâmetros
ClientContext: Contexto de acesso à biblioteca, adquirido pela chamada àSyncAnywhereCreateContext .
Port: Porta para conexão no Servidor FTP. Se a porta for padrão, passe ZEROneste parâmetro. Atenção: No NSBasic, este parâmetro deve ser passado atravésde uma variável do tipo Short. Atribua a configuração da Porta à esta variável e
passe-a no parâmetro.Timeout: Tempo (em segundos) para que as funções de comunicação utilizem
como tempo limite de conexão. O default é 10 segundos. Há servidores que necessitamde um tempo maior devido à sua lentidão ou quantidade maior de usuários conectados.Atenção: No NSBasic, este parâmetro deve ser passado através de uma variáveldo tipo Short. Atribua a configuração do Timeout à esta variável e passe-a noparâmetro.
2.3.3.26 SyncAnywhereFTPPassiveModeOn
Sub SyncAnywhereFTPPassiveModeOn(ClientContext As Integer)
Comentários
Configura o modo "PASV" (FTP PASSIVO) na conexão FTP (default noSyncAnywhere).
Parâmetros
ClientContext: Contexto de acesso à biblioteca, adquirido pela chamada àSyncAnywhereCreateContext .
Cliente Palm 66
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
2.3.3.27 SyncAnywhereFTPPassiveModeOff
Sub SyncAnywhereFTPPassiveModeOff(ClientContext As Integer)
Comentários
Configura o modo não passivo (FTP ATIVO) na conexão FTP.
Parâmetros
ClientContext: Contexto de acesso à biblioteca, adquirido pela chamada àSyncAnywhereCreateContext .
2.3.3.28 SyncAnywhereSetTCPDelay
Sub SyncAnywhereSetTCPDelay(ClientContext As Integer, Delay As Integer)
Comentários
Configura um tempo de espera entre os envios e recebimentos de blocos de dadosde/para o Servidor FTP. Esta função é importante quando as conexões são notoriamentelentas, sensíveis e suscetíveis à quedas como conexões via celular e principalmente porinfravermelho.
Como regra, quanto maior o tamanho do bloco utilizado para compactar o bancode dados através da função SyncAnywherePackDatabase, maior deve ser o tempo de
espera passado nesta função em conexões lentas, principalmente infravermelho. Comoparâmetro, em testes realizados em conexões IR com média qualidade, blocos de 500bytes compactados podem ser utilizados com o parâmetro Delay nesta funçãoconfigurado para 3 (300ms). Em conexões com pior qualidade, o tempo deve seraumentado e o tamanho do bloco diminuído.
Parâmetros
ClientContext: Contexto de acesso à biblioteca, adquirido pela chamada àSyncAnywhereCreateContext .
Delay: Número de "décimos de segundo" para a espera. DEZ décimos desegundo equivalem a UM segundo de atraso, portanto, para atrasar TRÊS décimos desegundo (300 ms) use SyncAnywhereSetTCPDelay(Context, 3).
2.3.3.29 SyncAnywhereFTPOpen
Function SyncAnywhereFTPOpen(ClientContext As Integer, Hostname As String,Username As String, Password As String) As Integer
Comentários
Conecta-se a um servidor FTP. A conexão com um servidor de comunicação(RAS/Internet) já deve ter sido iniciada pela função SyncAnywhereDial ou por outromeio.
SyncAnywhere v1.2267
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
Parâmetros
ClientContext: Contexto de acesso à biblioteca, adquirido pela chamada àSyncAnywhereCreateContext .
HostName: O nome ou endereço IP do servidor FTP.
Username: O nome do usuário para logon no servidor FTP.Password: A senha de acesso do usuário.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.3.3.30 SyncAnywhereFTPClose
Function SyncAnywhereFTPClose(ClientContext As Integer) As Integer
Comentários
Fecha a conexão com o servidor FTP. A conexão deve ter sido aberta pela funçãoSyncAnywhereFTPOpen .
Parâmetros
ClientContext: Contexto de acesso à biblioteca, adquirido pela chamada àSyncAnywhereCreateContext .
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.3.3.31 SyncAnywhereFTPCd
Function SyncAnywhereFTPCd(ClientContext As Integer, Path As String) AsInteger
Comentários
Muda o diretório no servidor FTP.
Parâmetros
ClientContext: Contexto de acesso à biblioteca, adquirido pela chamada àSyncAnywhereCreateContext .
Path: Caminho para o diretório no servidor FTP
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
Cliente Palm 68
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
2.3.3.32 SyncAnywhereFTPMkd
Function SyncAnywhereFTPMkd(ClientContext As Integer, Name As String) AsInteger
Comentários
Cria o diretório no servidor FTP.
Parâmetros
ClientContext: Contexto de acesso à biblioteca, adquirido pela chamada àSyncAnywhereCreateContext .
Name: Nome do diretório a ser criado no servidor FTP.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indica
erro cujo código está descrito em uma seção mais adiante.
2.3.3.33 SyncAnywhereFTPRmd
Function SyncAnywhereFTPRmd(ClientContext As Integer, Name As String) AsInteger
Comentários
Remove o diretório do servidor FTP.
Parâmetros
ClientContext: Contexto de acesso à biblioteca, adquirido pela chamada àSyncAnywhereCreateContext .
Name: Nome do diretório a ser removido no servidor FTP.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.3.3.34 SyncAnywhereFTPDel
Function SyncAnywhereFTPDel(ClientContext As Integer, Name As String) AsInteger
Comentários
Remove o arquivo do servidor FTP.
Parâmetros
SyncAnywhere v1.2269
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
ClientContext: Contexto de acesso à biblioteca, adquirido pela chamada àSyncAnywhereCreateContext .
Name: Nome do arquivo a ser removido no servidor FTP.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.3.3.35 SyncAnywhereFTPPut
Function SyncAnywhereFTPPut(ClientContext As Integer, DBName As String) AsInteger
Comentários
Envia um banco de dados ou aplicação do Palm para o servidor FTP.
Parâmetros
ClientContext: Contexto de acesso à biblioteca, adquirido pela chamada à
SyncAnywhereCreateContext .DBName: Nome do banco de dados ou aplicação para ser enviada ao servidor. O
nome não deve conter extensão pois ela será colocada automaticamente (.PDB/.PRC)dependendo do que estiver sendo enviado. Atenção: o nome do banco de dados écase-sensitive.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.3.3.36 SyncAnywhereFTPGet
Function SyncAnywhereFTPGet(ClientContext As Integer, Name As String) AsInteger
Comentários
Recebe um banco de dados ou aplicação do servidor FTP.
Parâmetros
ClientContext: Contexto de acesso à biblioteca, adquirido pela chamada àSyncAnywhereCreateContext .
Name: Nome do banco de dados ou aplicação para ser recebida do servidor. Onome deve conter a extensão (.PDB/.PRC) dependendo do que estiver sendo recuperado.Atenção: alguns servidores FTP exigem que os nomes de arquivo sejamexatamente como estão armazenados (case-sensitive) .
Retorno
Cliente Palm 70
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.3.3.37 SyncAnywhereFTPRename
Function SyncAnywhereFTPRename(Context As Integer, OldName As String,NewName As String) As Integer
Comentários
Renomeia um banco de dados ou aplicação no servidor FTP.
Parâmetros
ClientContext: Contexto de acesso à bibliotecaOldName: Nome do banco de dados ou aplicação para ser renomeada no
servidor. O nome deve conter a extensão (.PDB/.PRC) dependendo do que estiver sendorenomeado. Atenção: alguns servidores FTP exigem que os nomes de arquivosejam exatamente como estão armazenados (case-sensitive).
NewName: Novo nome do arquivo no servidor.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.3.3.38 SyncAnywhereFTPGetLastResponse
Sub SyncAnywhereFTPGetLastResponse(ClientContext As Integer, Response AsString)
Comentários
Obtém o texto da última resposta do servidor FTP.
Parâmetros
ClientContext: Contexto de acesso à biblioteca, adquirido pela chamada àSyncAnywhereCreateContext .
Response: Última mensagem de resposta do servidor FTP. Este texto érecuperado diretamente o servidor FTP, portanto a mensagem é do próprio servidor.Atenção: Este parâmetro DEVE SER uma variável String previamente preenchidacom 255 espaços. Se você não preparar a variável com os 255 espaços, poderácausar um erro na sua aplicação e Reset no Palm.
2.3.3.39 SyncAnywhereFTPSetServerType
Function SyncAnywhereFTPSetServerType(ClientContext As Integer,ServerType As Short) As Integer
SyncAnywhere v1.2271
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
Comentários
Configura o tipo de listagem de diretório (comando DIR) retornada pelo servidorFTP. O parâmetro ServerType pode ser configurado como ZERO para retorno padrãoUnix/Linux e UM para retorno padrão Windows 2000.
Parâmetros
ClientContext: Contexto de acesso à bibliotecaServerType: ZERO para retorno padrão Unix/Linux e UM para
retorno padrão Windows 2000.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.3.3.40 SyncAnywhereFTPDir
Function SyncAnywhereFTPDir(Context As Integer) As Integer
Comentários
Obtém a listagem dos arquivos do diretório corrente no Servidor FTP. Estaoperação não apresenta os arquivos no formulário, obtém a lista para uso posterior pelasfunções SyncAnywhereFTPGetFileCount, SyncAnywhereFTPGetFileName,SyncAnywhereFTPFileExists e SyncAnywhereFTPDirectoryExists.
SyncAnywhereFTPDir não é chamada automaticamente ao se conectar ao Servidor
FTP e na mudança de diretório no Servidor para otimizar a transmissão. Fica a critério dodesenvolvedor obter ou não a lista de arquivos, através da utilização ou não destafunção.
Parâmetros
ClientContext: Contexto de acesso à biblioteca
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
Exemplo de utilização
' Obtém a listagem dos arquivos Do diretório
' corrente no Servidor Erro = Sya.SyncAnywhereFTPDir(Context) If Erro>0 Then ' Erro no comando SyncAnywhereFTPDIR Exit Sub End If
Cliente Palm 72
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
' Recupera o número de arquivos no diretório ' corrente no Servidor FileCount = Sya.SyncAnywhereFTPGetFileCount(Context)
' Mostra o número de arquivos
MsgBox "Número de Arquivos no Servidor: " + Str(FileCount)
' Mostra os nomes dos arquivos For x=0 to FileCount-1 Nome = " " Erro = Sya.SyncAnywhereFTPGetFileName(Context, x, Nome)
If Erro=0 Then
MsgBox Nome End If Next
' Verifica se o arquivo existe no Servidor Exists = Sya.SyncAnywhereFTPFileExists(Context, "Test.pdb")
' Indica se o arquivo existe If Exists>0 Then MsgBox "Arquivo existe no Servidor!" Else MsgBox "Arquivo não existe no Servidor!" End If
' Verifica se o diretório existe no Servidor
Exists = Sya.SyncAnywhereFTPDirectoryExists(Context, "dados")
' Indica se o diretório existe If Exists>0 Then MsgBox "Diretório existe no Servidor!" Else MsgBox "Diretório não existe no Servidor!" End If
2.3.3.41 SyncAnywhereFTPGetFileCount
Function SyncAnywhereFTPGetFileCount(Context As Integer) As Integer
Comentários
Recupera o número de arquivos no diretório corrente do Servidor FTP. Atenção:esta função só funciona se o comando SyncAnywhereFTPDir for chamado antes para
recuperar a lista de arquivos do Servidor FTP.
Parâmetros
ClientContext: Contexto de acesso à biblioteca
SyncAnywhere v1.2273
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
Retorno
Número de arquivos no diretório corrente do Servidor FTP.
Exemplo de utilização
Consulte a função SyncAnywhereFTPDir para exemplo de utilização desta função.
2.3.3.42 SyncAnywhereFTPFileExists
Function SyncAnywhereFTPFileExists(Context As Integer, FileName As String)As Integer
Comentários
Verifica se o arquivo existe no diretório corrente do Servidor FTP. Atenção: estafunção só funciona se o comando SyncAnywhereFTPDir for chamado antes pararecuperar a lista de arquivos do Servidor FTP.
Parâmetros
ClientContext: Contexto de acesso à bibliotecaFileName: Nome do arquivo.
Retorno
ZERO indica que o arquivo não existe no diretório corrente do Servidor; UM indicaque o arquivo existe.
Exemplo de utilização
Consulte a função SyncAnywhereFTPDir para exemplo de utilização desta função.
2.3.3.43 SyncAnywhereFTPDirectoryExists
Function SyncAnywhereFTPDirectoryExists(Context As Integer, DirectoryNameAs String) As Integer
Comentários
Verifica se o diretório existe no diretório corrente do Servidor FTP. Atenção: estafunção só funciona se o comando SyncAnywhereFTPDir for chamado antes pararecuperar a lista de arquivos do Servidor FTP.
Parâmetros
ClientContext: Contexto de acesso à bibliotecaDirName: Nome do diretório.
Retorno
Cliente Palm 74
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
ZERO indica que o diretório não existe no diretório corrente do Servidor; UMindica que o diretório existe.
Exemplo de utilização
Consulte a função SyncAnywhereFTPDir para exemplo de utilização desta função.
2.3.3.44 SyncAnywhereFTPGetFileName
Function SyncAnywhereFTPGetFileName(Context As Integer, FileIndex AsShort, FileName As String) As Integer
Comentários
Recupera o nome do arquivo no diretório do Servidor FTP segundo o índiceespecificado. Atenção: esta função só funciona se o comando SyncAnywhereFTPDir forchamado antes para recuperar a lista de arquivos do Servidor FTP.
Parâmetros
ClientContext: Contexto de acesso à biblioteca
FileIndex: Variável do tipo Short para indicar o índice do arquivo na lista. Oprimeiro índice é ZERO.
FileName: O nome do arquivo será retornado neste parâmetro. Atenção: Esteparâmetro DEVE SER uma variável String previamente preenchida com nomínimo 100 espaços. Se você não preparar a variável com os 100 espaços,poderá causar um erro na sua aplicação e Reset no Palm.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
Exemplo de utilização
Consulte a função SyncAnywhereFTPDir para exemplo de utilização desta função.
2.4 CodeWarrior
2.4.1 Instalação
No diretório do SyncAnywhere\CW\Lib , há um arquivo header chamadoSyncAnywhere.h, este é o ponto de acesso à SharedLib do SyncAnywhere. Para poderutiliza-lo em suas aplicações, coloque o diretório onde está este arquivo header noAccess Paths do seu projeto CodeWarrior, assim será possível utilizar a cláusula#include no arquivo header.
SyncAnywhere v1.2275
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
2.4.2 Utilização
A aplicação exemplo FTPTest sob o diretório CW mostra como utilizar as funçõesda biblioteca para compactar dados e também para acessar um servidor FTP. Noformulário da aplicação, serão solicitados todos os dados para que seja possível aconexão com o servidor FTP:
· O número de telefone para discagem ao servidor de comunicação, seja um RASou provedor Internet;
· Tipo de discagem, pulso ou tom;· Nome de usuário e senha de acesso ao servidor RAS ou provedor Internet;· O endereço IP ou nome do servidor FTP;
· O nome do usuário e senha para logon no servidor FTP.
Inicialmente, é necessário criar variáveis globais para armazenar a referência àSharedLib e também o contexto de acesso à ela:
UInt16 refNum; // Acesso à SharedLib do SyncAnywhereUInt32 context; // Contexto de acesso ao SyncAnywhere
Nas funções AppStart e AppStop é necessário colocar código para carregar epara descarregar a biblioteca. Se a biblioteca não for carregada, as funções não podemser utilizadas ou causará erro na sua execução.
static Err AppStart(void){
// Abre a SharedLib do SyncAnywhere if (!SyncAnywhereOpenRef(&refNum, &context)) { FrmCustomAlert(AlertErro, "Erro ao abrir SyncAnywhereSharedLib!", NULL, NULL); return false; }
return errNone;}
static void AppStop(void){ // Fecha a SharedLib do SyncAnywhere SyncAnywhereCloseRef(refNum, context);
/* Close all the open forms. */FrmCloseAllForms();
}
O código no botão Iniciar FTP chama a função TestSyncAnywhere que executacomandos da biblioteca:
static void TestSyncAnywhere()
{
Cliente Palm 76
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
char Str[50], Str2[50], Telefone[50], Usuario[50], Senha[50], ServidorFTP[50],UsuarioFTP[50], SenhaFTP[50]; UInt16 Pulso; UInt16 Erro; LocalID dbID;
// Verifica se existe um modem conectado ao Palm // ------------------------------------------------------------------------ // Para conexão por Celulares ou Modem via Infravermelho, NÃO USE a
// função SyncAnywhereModemDetect, pois ela não será capaz de// detectar a comunicação com o Celular. Esta função deve ser usada// somente quando a conexão for feita através de Modem acoplado ao// Palm, ou celular via cabo
// ------------------------------------------------------------------------ SetFieldText(FldStatus, "Detectando Modem..."); Erro = SyncAnywhereModemDetect(refNum, context); if (Erro) { SetFieldText(FldStatus, "Modem não detectado!"); return;
}
// Configura o CreatorID para criar os arquivos PDB da aplicação Erro = SyncAnywhereSetCreatorID(refNum, context, "CBCT"); if (Erro) {
StrCopy(Str, "Erro configurando CreatorID: "); StrIToA(Str2, Erro);
StrCat(Str, Str2); SetFieldText(FldStatus, Str); return;
}
// Recupera as informações dos campos StrCopy(Telefone, GetFieldText(FldTelefone)); StrCopy(Usuario, GetFieldText(FldUsuario));
StrCopy(Senha, GetFieldText(FldSenha)); StrCopy(ServidorFTP, GetFieldText(FldServidor)); StrCopy(UsuarioFTP, GetFieldText(FldUsuarioFTP)); StrCopy(SenhaFTP, GetFieldText(FldSenhaFTP));
if (CtlGetValue(GetObjectPtr(ChkPulso))) Pulso = 1; else
Pulso = 0;
// Apaga o banco PDBPack, necessário para que os bancos não sejam // adicionados aos já existentes dbID = DmFindDatabase(0, "PDBPack"); if (dbID) DmDeleteDatabase(0, dbID);
SyncAnywhere v1.2277
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
// Compacta bancos de dados para envio ao Servidor SetFieldText(FldStatus, "Compactando ProdutosDB"); Erro = SyncAnywherePackDatabase(refNum, context, "PDBPack", "ProdutosDB",5000); if (Erro)
{ StrCopy(Str, "Erro em ProdutosDB: ");
StrIToA(Str2, Erro); StrCat(Str, Str2); SetFieldText(FldStatus, Str); return;
}
SetFieldText(FldStatus, "Compactando ClientesDB"); Erro = SyncAnywherePackDatabase(refNum, context, "PDBPack", "ClientesDB",5000); if (Erro) {
StrCopy(Str, "Erro em ClientesDB: "); StrIToA(Str2, Erro);
StrCat(Str, Str2); SetFieldText(FldStatus, Str);
return; }
// Abre a Net.Lib SetFieldText(FldStatus, "Abrindo Net.Lib..."); Erro = SyncAnywhereNetLibOpen(refNum, context);
if (Erro) {
StrCopy(Str, "Erro de abertura Net.Lib: "); StrIToA(Str2, Erro); StrCat(Str, Str2);
SetFieldText(FldStatus, Str); return;
}
// Conecta no servidor de comunicação SetFieldText(FldStatus, "Discando");
// ------------------------------------------------------------------------ // Para conexão por Celulares ou Modem via Infravermelho, NÃO USE a
// função SyncAnywhereModemDial, pois ela não fará a discagem. Ao// invés de usar esta // função, crie a conexão com o celular na
// aplicação Prefs do Palm, opção Network e configure lá o telefone, o// modo de conexão, usuário e senha, e utilize a função// SyncAnywhereOpenService(NomeDaConexão) para efetuar
// a discagem. O nome no parâmetro deve ser exatamente igual ao// nome do serviço criado, respeitando-se as letras maiúsculas e// minúsculas.
// Caso tenha alguma dúvida, consulte o manual do SyncAnywhere. // ------------------------------------------------------------------------
Cliente Palm 78
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
Erro = SyncAnywhereDial(refNum, context, Telefone, Pulso, Usuario, Senha); if (Erro) {
StrCopy(Str, "Erro de Discagem: "); StrIToA(Str2, Erro);
StrCat(Str, Str2); SetFieldText(FldStatus, Str);
// Fecha a biblioteca de comunicação SyncAnywhereNetLibClose(refNum, context);
return; }
// Conecta no Servidor FTP SetFieldText(FldStatus, "Conectando no Servidor FTP...");
Erro = SyncAnywhereFTPOpen(refNum, context, ServidorFTP, 0, UsuarioFTP,SenhaFTP, 10); if (Erro) {
StrCopy(Str, "Erro de Conexão: "); StrIToA(Str2, Erro);
StrCat(Str, Str2); SetFieldText(FldStatus, Str);
// Desconecta do Servidor de comunicação SyncAnywhereHangup(refNum, context);
// Fecha Net.Lib SyncAnywhereNetLibClose(refNum, context);
return; }
// Comando GET de uma aplicação SetFieldText(FldStatus, "Recebendo Clientes.prc");
Erro = SyncAnywhereFTPGet(refNum, context, "Clientes.prc"); if (Erro) {
StrCopy(Str, "Erro de recepção: "); StrIToA(Str2, Erro); StrCat(Str, Str2);
FrmCustomAlert(AlertErro, Str, NULL, NULL); }
// Comando PUT do Banco compactado SetFieldText(FldStatus, "Enviando PDBPack..."); Erro = SyncAnywhereFTPPut(refNum, context, "PDBPack"); if (Erro) {
StrCopy(Str, "Erro de envio: "); StrIToA(Str2, Erro);
SyncAnywhere v1.2279
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
StrCat(Str, Str2); FrmCustomAlert(AlertErro, Str, NULL, NULL);
} else {
// Fecha Conexão FTP, se o envio teve sucesso Erro = SyncAnywhereFTPClose(refNum, context);
}
// Desconecta do Servidor de comunicação SyncAnywhereHangup(refNum, context);
// Fecha Net.Lib
SyncAnywhereNetLibClose(refNum, context);
SetFieldText(FldStatus, "Comunicação realizada com sucesso!");}
Já o botão Analisar PDBPack, chama a função AnalisaPDBPack para mostraros bancos de dados compactados em PDBPack:
static void AnalisaPDBPack(){ LocalID dbID; UInt16 numDBs, erro, x; char str[60], str2[60];
// Procura pelo banco PDBPack no Palm
dbID = DmFindDatabase(0, "PDBPack"); if (!dbID) { FrmCustomAlert(AlertErro, "Banco PDBPack não foi encontrado, comande oInício do FTP ou carregue o banco de dados PDBPack.pdb do diretório TestDB no palm ouEmulador", NULL, NULL); return; }
// Verifica o número de bancos de dados Compactados em PDBPack erro = SyncAnywhereGetDBCount(refNum, context, "PDBPack", &numDBs); if (erro) { StrCopy(str, "Erro ao recuperar número de bancos: "); StrIToA(str2, erro); StrCat(str, str2);
FrmCustomAlert(AlertErro, str, NULL, NULL); return; }
// Apresenta número de Bancos StrIToA(str2, numDBs); StrCopy(str, "Número de bancos de dados em PDBPack: "); StrCat(str, str2);
Cliente Palm 80
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
FrmCustomAlert(AlertErro, str, NULL, NULL);
// Apresenta o nome dos Bancos em PDBPack for (x=0; x<numDBs; x++) {
erro = SyncAnywhereGetDBName(refNum, context, "PDBPack", x, (char *)&str2); if (erro) { StrCopy(str, "Erro ao recuperar nome do banco: "); StrIToA(str2, erro); StrCat(str, str2);
FrmCustomAlert(AlertErro, str, NULL, NULL);
return; }
// Apresenta o nome StrCopy(str, "Banco armazenado em PDBPack: "); StrCat(str, str2); FrmCustomAlert(AlertErro, str, NULL, NULL);
}
// Descompacta apenas um banco de dados de PDBPack erro = SyncAnywhereUnpackOneDB(refNum, context, "PDBPack", "ProdutosDB"); if (erro) {
StrCopy(str, "Erro ao recuperar descompactar banco ProdutosDB dePDBPack: ");
StrIToA(str2, erro); StrCat(str, str2); FrmCustomAlert(AlertErro, str, NULL, NULL); return; }
// Teste efetuado com sucesso! FrmCustomAlert(AlertErro, "Banco de dados ProdutosDB descompactado!", NULL,
NULL);}
2.4.3 Funções do SyncAnywhere
2.4.3.1 SyncAnywhereOpenRef
Boolean SyncAnywhereOpenRef(UInt16 *refNum, UInt32 *context);
Comentário
Abre a referência à SharedLib.
Parâmetros
SyncAnywhere v1.2281
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
refNum: A referência à SharedLib será retornada neste parâmetrocontext: O contexto de acesso à SharedLib será retornado neste parâmetro
Você deve armazenar os dois parâmetros em variáveis globais pois seránecessário utiliza-los em todas as chamadas às funções do SyncAnywhere.
Retorno
Boolean indicando se a biblioteca foi aberta corretamente.
2.4.3.2 SyncAnywhereCloseRef
Boolean SyncAnywhereCloseRef(UInt16 refNum, UInt32 context);
Comentário
Fecha a referência à SharedLib.
Parâmetros
refNum: Referência à biblioteca SyncAnywhere
context: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
Retorno
Boolean indicando se a biblioteca foi fechada corretamente.
2.4.3.3 SyncAnywhereGetVersion
UInt16 SyncAnywhereGetVersion(UInt16 refNum)
Comentários
Recupera a versão da biblioteca. A versão é retornada como um número inteiro,
onde a centena representa a versão e a dezena, a correção da versão, exemplo: a versão113 representa a versão 1 da biblioteca, com a correção 13.
Parâmetros
refNum: Referência à biblioteca SyncAnywhere, recuperado na funçãoSyncAnywhereOpenRef .
Retorno
Inteiro representando a versão da biblioteca.
Cliente Palm 82
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
2.4.3.4 SyncAnywhereCheckSumOn
UInt32 SyncAnywhereCheckSumOn(UInt16 refNum, UInt32 clientContext);
Comentários
Habilita a gravação de bytes de verificação de integridade nos registros do bancode dados compactado, para auxiliar na garantia da integridade dos dados transmitidos.Por default, a gravação dos bytes de verificação está desabilitada . O número de bytesde verificação de integridade gravados por registro é 10.
Parâmetros
refNum: Referência à biblioteca SyncAnywhereclientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.4.3.5 SyncAnywhereCheckSumOff
UInt32 SyncAnywhereCheckSumOff(UInt16 refNum, UInt32 clientContext);
Comentários
Desabilita a gravação de bytes de verificação de integridade nos registros dobanco de dados compactado (default).
Parâmetros
refNum: Referência à biblioteca SyncAnywhereclientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.4.3.6 SyncAnywhereUIDSupportOn
UInt32 SyncAnywhereUIDSupportOn(UInt16 refNum, UInt32 clientContext)
SyncAnywhere v1.2283
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
Comentários
Habilita a gravação do UniqueID de cada registro do banco de dados. O UniqueIDé uma informação não utilizada pela maioria das ferramentas, mas se por algum motivosua aplicação usa esta informação, você precisa habilitar o uso com esta função. Por
default, a gravação do UniqueID está desabilitada para economizar espaço no banco dedados compactado gerado.
Atenção:
- O uso desta função torna o SyncAnywhereincompatível com bancos de dados compactados sem o uso destafunção. Para que o SyncAnywhere seja compatível com bancos dedados compactados sem o UniqueID, é necessário utilizar a funçãoSyncAnywhereUIDSupportOff.
- É necessário também habilitar a gravação do UniqueIDna sua aplicação que compacta e descompacta dados no servidor.
- Quando quiser habilitar o suporte ao UniqueID, utilizeesta função logo após abrir a biblioteca pois ela é necessária paracompactar e descompactar bancos de dados com UniqueID.
Parâmetros
refNum: Referência à biblioteca SyncAnywhereclientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.4.3.7 SyncAnywhereUIDSupportOff
UInt32 SyncAnywhereUIDSupportOff(UInt16 refNum, UInt32 clientContext)
Comentários
Desabilita a gravação do UniqueID de cada registro do banco de dados. OUniqueID é uma informação não utilizada pela maioria das ferramentas, mas se poralgum motivo sua aplicação usa esta informação, você precisa habilitar o uso com afunção SyncAnywhereUIDSupportOn . Por default, a gravação do UniqueID estádesabilitada para economizar espaço no banco de dados compactado gerado.
Atenção: o uso do UniqueID torna o SyncAnywhere
Cliente Palm 84
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
incompatível com bancos de dados compactados sem o uso dafunção SyncAnywhereUIDSupportOn.
Parâmetros
refNum: Referência à biblioteca SyncAnywhereclientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.4.3.8 SyncAnywhereSetPackDataBlock
UInt32 SyncAnywhereSetPackDataBlock(UInt16 refNum, UInt32 clientContext,UInt16 maxDataBlock);
Comentários
Esta função é de extrema importância se o arquivo tiver que ser descompactadoem equipamentos com pouca memória como o Zire, M100, M105 ou qualquer outro quetenha 2MB de memória ou menos. Esses equipamentos tem muito pouca memóriadinâmica para alocação, assim, a quantidade de memória disponível depende dotamanho da aplicação. O tamanho máximo do bloco compactado de dados deve serconfigurado segundo sua necessidade em equipamentos com pouca memória e nestecaso um valor de 500 bytes é geralmente adequado à aplicações grandes.
Parâmetros
refNum: Referência à biblioteca SyncAnywhereclientContext: Contexto de acesso à bibliotecamaxDataBlock: Tamanho máximo (em bytes) do bloco de dados que será
compactado. O default é 30000 bytes, mas para equipamentos com pouca memória estevalor deve ser muito mais baixo, em torno de 500 bytes quando a aplicação executada égrande ou até 5000 bytes se a aplicação for pequena.
Os parâmetros refNum e clientContext devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
SyncAnywhere v1.2285
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
2.4.3.9 SyncAnywhereSetSendUpdateProc
UInt32 SyncAnywhereSetSendUpdateProc(UInt16 refNum, UInt32clientContext, UpdateProcPtr updateProc);
Comentários
Configura uma procedure na sua aplicação que será chamada pelo SyncAnywherecom o percentual do andamento do envio de dados ao servidor FTP.
Parâmetros
refNum: Referência à biblioteca SyncAnywhereclientContext: Contexto de acesso à bibliotecaupdateProc: Procedure com apenas um parâmetro UInt16 para receber o
percentual do andamento do envio de dados ao servidor FTP.
Os parâmetros RefNum e ClientContext devem ter sido recuperados na função
SyncAnywhereOpenRef .
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
Exemplo
void ShowStatus(UInt16 status){ char str[21], str2[21];
StrIToA(str2, status); StrCopy(str, "Status: ");
StrCat(str, str2); StrCat(str, "%"); SetFieldTextFromStr(FldStatus, str); // Atualiza o campo}
void XXXX(){
...
...
// Configura a função ShowStatus para receber o percentual de// envio de dados ao Servidor FTPSyncAnywhereSetSendUpdateProc(refNum, context, &ShowStatus);
...
...}
Cliente Palm 86
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
2.4.3.10 SyncAnywhereSetReceiveUpdateProc
UInt32 SyncAnywhereSetReceiveUpdateProc(UInt16 refNum, UInt32clientContext, UpdateProcPtr updateProc);
Comentários
Configura uma procedure na sua aplicação que será chamada pelo SyncAnywherecom o percentual do andamento do recebimento de dados ao servidor FTP.
Parâmetros
refNum: Referência à biblioteca SyncAnywhereclientContext: Contexto de acesso à bibliotecaupdateProc: Procedure com apenas um parâmetro UInt16 para receber o
percentual do andamento do recebimento de dados ao servidor FTP.
Os parâmetros RefNum e ClientContext devem ter sido recuperados na função
SyncAnywhereOpenRef .
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
Exemplo
void ShowStatus(UInt16 status){ char str[21], str2[21];
StrIToA(str2, status); StrCopy(str, "Status: ");
StrCat(str, str2); StrCat(str, "%"); SetFieldTextFromStr(FldStatus, str); // Atualiza o campo}
void XXXX(){
...
...
// Configura a função ShowStatus para receber o percentual de// recebimento de dados do Servidor FTPSyncAnywhereSetReceiveUpdateProc(refNum, context, &ShowStatus);
...
...}
SyncAnywhere v1.2287
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
2.4.3.11 SyncAnywhereSetPackUpdateProc
UInt32 SyncAnywhereSetPackUpdateProc(UInt16 refNum, UInt32clientContext, UpdateProcPtr updateProc);
Comentários
Configura uma procedure na sua aplicação que será chamada pelo SyncAnywherecom o percentual da compactação do banco de dados.
Parâmetros
refNum: Referência à biblioteca SyncAnywhereclientContext: Contexto de acesso à bibliotecaupdateProc: Procedure com apenas um parâmetro UInt16 para receber o
percentual da compactação do banco de dados.
Os parâmetros RefNum e ClientContext devem ter sido recuperados na função
SyncAnywhereOpenRef .
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
Exemplo
void ShowStatus(UInt16 status){ char str[21], str2[21];
StrIToA(str2, status); StrCopy(str, "Status: ");
StrCat(str, str2); StrCat(str, "%"); SetFieldTextFromStr(FldStatus, str); // Atualiza o campo}
void XXXX(){
...
...
// Configura a função ShowStatus para receber o percentual da// da compactação do banco de dadosSyncAnywhereSetPackUpdateProc(refNum, context, &ShowStatus);
...
...}
Cliente Palm 88
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
2.4.3.12 SyncAnywhereSetUnpackUpdateProc
UInt32 SyncAnywhereSetPackUpdateProc(UInt16 refNum, UInt32clientContext, UpdateProcPtr updateProc);
Comentários
Configura uma procedure na sua aplicação que será chamada pelo SyncAnywherecom o percentual da descompactação do banco de dados.
Parâmetros
refNum: Referência à biblioteca SyncAnywhereclientContext: Contexto de acesso à bibliotecaupdateProc: Procedure com apenas um parâmetro UInt16 para receber o
percentual da descompactação do banco de dados.
Os parâmetros RefNum e ClientContext devem ter sido recuperados na função
SyncAnywhereOpenRef .
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
Exemplo
void ShowStatus(UInt16 status){ char str[21], str2[21];
StrIToA(str2, status); StrCopy(str, "Status: ");
StrCat(str, str2); StrCat(str, "%"); SetFieldTextFromStr(FldStatus, str); // Atualiza o campo}
void XXXX(){
...
...
// Configura a função ShowStatus para receber o percentual da// da descompactação do banco de dadosSyncAnywhereSetUnpackUpdateProc(refNum, context, &ShowStatus);
...
...}
SyncAnywhere v1.2289
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
2.4.3.13 SyncAnywhereSetCreatorID
UInt32 SyncAnywhereSetCreatorID(UInt16 refNum, UInt32 clientContext, char*creatorID);
Comentários
Configura o CreatorID que será usado para os arquivos compactados.
Parâmetros
refNum: Referência à biblioteca SyncAnywhereclientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
creatorID: O CreatorID, com exatamente quatro caracteres.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.4.3.14 SyncAnywherePackDatabase
UInt32 SyncAnywherePackDatabase(UInt16 refNum, UInt32 clientContext, char*DBDest, char *DBSource, UInt16 MaxBlockSize);
Comentários
Compacta o banco de dados informado em DBSource, no banco de dadosinformado em DBDest.
Parâmetros
refNum: Referência à biblioteca SyncAnywhereclientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
DBDest: Nome do banco de dados destino, onde será compactado o banco dedados de origem. Atenção: O banco de dados destino deve ser apagado antes dechamar esta função pela primeira vez. As chamadas sucessivas à esta funçãoadicionam bancos de dados compactados à DBDest, portanto na primeira vez que usaresta função, certifique-se que ele não exista, para que a compactação inicie em umbanco de dados novo.
DBSource: Banco de dados origem, que será compactado dentro de DBDest.MaxBlockSize: Tamanho máximo do registro que será gerado no banco de dados
DBDest. Este valor normalmente deve ser em torno de 5000, que representa 5000 bytes
Cliente Palm 90
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
em cada registro e pode ser configurado em função da qualidade de transmissão da linhatelefônica ou celular. Há locais onde é melhor que este valor seja menor, em torno de1000, para minimizar erros na transmissão. O tamanho mínimo é 50 bytes e o máximo30000.
Observação importante: para os modelos M100, Zire e outros que temmemória igual ou inferior a 2MB, este parâmetro não poderá ser maior que2500 bytes, ou retornará o erro appErrInvalidBlockSize. Estes modelos temmemória "Heap" (memória dinâmica liberada pelo PalmOS) extremamentelimitada e as alocações de memória internas necessárias para compactaçãopodem falhar se o valor for maior que 2500 bytes. Se o Banco de Dados tiverque ser descompactado em equipamentos deste tipo, não se esqueça deconfigurar o tamanho do bloco de compactação com as funções
SyncAnywhereSetPackDataBlock no Palm e PackSetMaxDataBlock no Servidor.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.4.3.15 SyncAnywhereGetDBCount
UInt32 SyncAnywhereGetDBCount(UInt16 refNum, UInt32 clientContext, char*DBSource, UInt16 *DBCount);
Comentários
Recupera o número de bancos de dados compactados dentro do bancoespecificado no parâmetro DBSource, na variável informada no parâmetro DBCount. O
número de bancos de dados compactados só pode ser recuperado dos PDBsgerados pelo SyncAnywhere a partir da versão 1.17.
Parâmetros
refNum: Referência à biblioteca SyncAnywhereclientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
DBSource: O nome do banco de dados compactado com o SyncAnywhere.DBCount: Ponteiro para uma variável do tipo UInt16 para receber o número de
bancos de dados compactados.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
SyncAnywhere v1.2291
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
2.4.3.16 SyncAnywhereGetDBName
UInt32 SyncAnywhereGetDBName(UInt16 refNum, UInt32 clientContext, char*DBSource, UInt16 indx, char *DBName);
Comentários
Recupera o nome de bancos de dados compactado dentro do banco especificadono parâmetro DBSource, na variável informada no parâmetro DBName , de acordo como índice do banco informado no parâmetro Indx. O nome dos bancos de dados
compactados só podem ser recuperados dos PDBs gerados pelo SyncAnywherea partir da versão 1.17.
Parâmetros
refNum: Referência à biblioteca SyncAnywhereclientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
DBSource: O nome do banco de dados compactado com o SyncAnywhere.indx: O índice do banco de dados. O primeiro banco de dados compactado tem
índice ZERO. Para saber o número de bancos de dados compactados, utilize a funçãoSyncAnywhereGetDBCount .
DBName: O nome do banco de dados compactado é retornado neste parâmetro.Atenção: Este parâmetro DEVE SER uma variável PChar ou Array de Charalocada com no mínimo 32 caracteres. A biblioteca irá copiar o nome nesteparâmetro, não fará alocação de memória para o retorno da mensagem. Se vocênão alocar espaço, poderá causar um erro na sua aplicação e Reset no Palm .
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.4.3.17 SyncAnywhereCheckDatabase
UInt32 SyncAnywhereCheckDatabase(UInt16 refNum, UInt32 clientContext,char *DBSource);
Comentários
Verifica a estrutura de um banco compactado gerado pelo SyncAnywhere. Afunção verifica a integridade do número de registros no banco e CheckSum (sehabilitado).
Parâmetros
refNum: Referência à biblioteca SyncAnywhere
clientContext: Contexto de acesso à biblioteca
Cliente Palm 92
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
DBSource: O nome do banco de dados compactado com o SyncAnywhere.
Retorno
ZERO indica que o PDB está íntegro na sua estrutura.
UM indica que o PDB está íntegro na sua estrutura, mas o CheckSum estádesabilitado, portanto ainda pode haver erro nos registros transferidos.
> UM é o código de erro da verificação do PDB.
2.4.3.18 SyncAnywhereUnpackDatabase
UInt32 SyncAnywhereUnpackDatabase(UInt16 refNum, UInt32 clientContext,char *DBSource);
Comentários
Descompacta os bancos de dados para a memória do Palm. Atenção: Você deveapagar os bancos de dados que serão descompactados antes que eles sejamdescompactados por esta função ou os registros serão adicionados aosregistros dos bancos de dados se já existirem.
Parâmetros
refNum: Referência à biblioteca SyncAnywhere
clientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
DBSource: O nome do banco de dados compactado com o SyncAnywhere.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.4.3.19 SyncAnywhereUnpackOneDB
UInt32 SyncAnywhereUnpackOneDB(UInt16 refNum, UInt32 clientContext,char *DBSource, char *DBName);
Comentários
Descompacta um único banco de dados para a memória do Palm. Atenção: Vocêdeve apagar o banco de dados que será descompactado antes que eles sejadescompactado por esta função ou os registros serão adicionados aos registros
SyncAnywhere v1.2293
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
do banco de dados.
Parâmetros
refNum: Referência à biblioteca SyncAnywhere
clientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
DBSource: O nome do banco de dados compactado com o SyncAnywhere.DBName: O nome do banco de dados que será extraído do banco compactado.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.4.3.20 SyncAnywhereUnpackApplication
UInt32 SyncAnywhereUnpackApplication(UInt16 refNum, UInt32 clientContext,
char *DBSource);
Comentários
Descompacta a aplicação compactada em um Banco de Dados Palm (PDB) para amemória do Palm. Atenção: Você deve apagar a aplicação que serádescompactada antes que ela seja descompactada por esta função ou seráretornado um código de erro.
É possível utilizar SyncAnywhereSetUnpackUpdateProc para configurar umafunção da sua aplicação para mostrar o andamento da descompactação da aplicação.
Parâmetros
refNum: Referência à biblioteca SyncAnywhereclientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
DBSource: O nome do banco de dados que contém a aplicação compactada como SyncAnywhere.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
Cliente Palm 94
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
2.4.3.21 SyncAnywhereSetNetLib
UInt32 SyncAnywhereSetNetLib(UInt16 refNum, UInt32 clientContext, UInt16netLibRef);
Comentários
Se você iniciar a comunicação sem utilizar a função SyncAnywhereDial , vocêdeve usar esta função para informar a referência à Net.Lib aberta antes de usar asfunções de comunicação do SyncAnywhere.
Parâmetros
refNum: Referência à biblioteca SyncAnywhereclientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
netLibRef: A referência à Net.Lib.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.4.3.22 SyncAnywhereNetLibOpen
UInt32 SyncAnywhereNetLibOpen(UInt16 refNum, UInt32 clientContext);
Comentários
Abre a biblioteca de comunicação do Palm. Esta função deve ser chamada antesde qualquer outra função de comunicação.
Parâmetros
refNum: Referência à biblioteca SyncAnywhereclientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
SyncAnywhere v1.2295
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
2.4.3.23 SyncAnywhereNetLibClose
UInt32 SyncAnywhereNetLibClose(UInt16 refNum, UInt32 clientContext);
Comentários
Fecha a biblioteca de comunicação do Palm. Esta função deve ser chamadaquando a comunicação não for mais necessária, geralmente a última função a serchamada no processo de comunicação.
Parâmetros
refNum: Referência à biblioteca SyncAnywhereclientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.4.3.24 SyncAnywhereModemDetect
UInt32 SyncAnywhereModemDetect(UInt16 refNum, UInt32 clientContext);
Comentários
Detecta se um Modem ou Celular (via cabo serial) está conectado ao Palm.
Parâmetros
refNum: Referência à biblioteca SyncAnywhere
clientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indica
erro cujo código está descrito em uma seção mais adiante.
2.4.3.25 SyncAnywhereDial
UInt32 SyncAnywhereDial(UInt16 refNum, UInt32 clientContext, char *phone,UInt16 pulse, char *username, char *password);
Comentários
Cliente Palm 96
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
Disca para um servidor de comunicação usando o modem acoplado ao Palm(PalmModem ou Celular via cabo serial).
Parâmetros
refNum: Referência à biblioteca SyncAnywhereclientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
phone: Número do telefone.pulse: 1 para discagem de Pulso e ZERO para discagem por Tom.
username: Nome do usuário para validação no servidor de comunicação(RAS/Internet).
password : Senha de acesso do usuário.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indica
erro cujo código está descrito em uma seção mais adiante.
2.4.3.26 SyncAnywhereDialWireless
UInt32 SyncAnywhereDialWireless(UInt16 refNum, UInt32 clientContext, char*connection, char *phone, char *username, char *password, char *dnsServer,char *script);
Comentários
Disca para um servidor de comunicação usando uma Conexão predeterminada.Esta função pode ser usada para discagem por modem ou celular infravermelho ouBluetooth.
Parâmetros
refNum: Referência à biblioteca SyncAnywhere
clientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
connection: Nome da Conexão preconfigurada na aplicação Prefs, opçãoConnection (Conexões).
phone: Número do telefone.
username: Nome do usuário para validação no servidor de comunicação(RAS/Internet).
password : Senha de acesso do usuário.dnsServer: Endereço IP do Servidor DNS, exemplo '222.111.22.11'.script: Texto do Script para conexão. Caso um Script não seja necessário, use
NULL ou uma String vazia. Para informar um Script neste parâmetro, veja os
SyncAnywhere v1.2297
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
comentários mais abaixo.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indica
erro cujo código está descrito em uma seção mais adiante.
Script para conexão
Segundo a documentação da API do PalmOS, o Script é muito rígido, se um Script comsintaxe incorreta for informado, os resultados serão imprevisíveis. O formato do Script éuma sequência de Strings terminadas em ZERO, com um ZERO extra no final detodas as Strings, exemplo:
"s go PPP\0s ^N\0\0"
No exemplo acima temos um comando Send, terminado em ZERO, outro comando Send,terminado em ZERO e um ZERO indicando o final do Script.
Comandos aceitos no Script
Função Comando Parâmetro Exemplo
Send s String s go PPP
Wait For w String s password:
Delay d Número de segundos s 1
Get IP g g
Prompt a String a Digite Nome:
Wait for Prompt f String f ID:
Send CR s String s ^N
Send UserID s String s nomeusuario
Send Password s String s senha
OBS: DEVE HAVER APENAS UM ÚNICO ESPAÇO ENTRE O COMANDO E OPARÂMETRO.
2.4.3.27 SyncAnywhereOpenActiveService
UInt32 SyncAnywhereOpenActiveService(UInt16 refNum, UInt32clientContext);
Comentários
Inicia o serviço selecionado no Prefs/Network. Esta função é útil quando você já
tem o serviço configurado ou quando o serviço requer configurações especiais comocomunicação IR (Celular IR), Bluetooth, WiFi, ou necessita configurar scripts.
Parâmetros
Cliente Palm 98
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
refNum: Referência à biblioteca SyncAnywhereclientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.4.3.28 SyncAnywhereOpenService
UInt32 SyncAnywhereOpenService(UInt16 refNum, UInt32 clientContext, char*serviceName);
Comentários
Inicia um serviço já configurado no Prefs/Network. Esta função é útil quando vocêjá tem o serviço configurado ou quando o serviço requer configurações especiais comocomunicação IR (Celular IR), Bluetooth, WiFi, ou necessita configurar scripts.
Parâmetros
refNum: Referência à biblioteca SyncAnywhereclientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
serviceName : Nome do Serviço criado no Prefs/Network.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.4.3.29 SyncAnywhereHangup
UInt32 SyncAnywhereHangup(UInt16 refNum, UInt32 clientContext);
Comentários
Desconecta do servidor de comunicação, conectado pela funçãoSyncAnywhereDial ou pela função SyncAnywhereOpenService .
Parâmetros
refNum: Referência à biblioteca SyncAnywhereclientContext: Contexto de acesso à biblioteca
SyncAnywhere v1.2299
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.4.3.30 SyncAnywhereFTPPassiveModeOn
UInt32 SyncAnywhereFTPPassiveModeOn(UInt16 refNum, UInt32clientContext);
Comentários
Configura o modo "PASV" (FTP PASSIVO) na conexão FTP (default noSyncAnywhere).
Parâmetros
refNum: Referência à biblioteca SyncAnywhere
clientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indica
erro cujo código está descrito em uma seção mais adiante.
2.4.3.31 SyncAnywhereFTPPassiveModeOff
UInt32 SyncAnywhereFTPPassiveModeOff(UInt16 refNum, UInt32clientContext);
Comentários
Configura o modo não passivo (FTP ATIVO) na conexão FTP.
Parâmetros
refNum: Referência à biblioteca SyncAnywhereclientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indica
Cliente Palm 100
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
erro cujo código está descrito em uma seção mais adiante.
2.4.3.32 SyncAnywhereSetTCPDelay
UInt32 SyncAnywhereSetTCPDelay(UInt16 refNum, UInt32 clientContext,UInt16 delay);
Comentários
Configura um tempo de espera entre os envios e recebimentos de blocos de dadosde/para o Servidor FTP. Esta função é importante quando as conexões são notoriamentelentas, sensíveis e suscetíveis à quedas como conexões via celular e principalmente porinfravermelho.
Como regra, quanto maior o tamanho do bloco utilizado para compactar o bancode dados através da função SyncAnywherePackDatabase, maior deve ser o tempo deespera passado nesta função em conexões lentas, principalmente infravermelho. Comoparâmetro, em testes realizados em conexões IR com média qualidade, blocos de 500bytes compactados podem ser utilizados com o parâmetro Delay nesta funçãoconfigurado para 3 (300ms). Em conexões com pior qualidade, o tempo deve seraumentado e o tamanho do bloco diminuído.
Parâmetros
refNum: Referência à biblioteca SyncAnywhereclientContext: Contexto de acesso à bibliotecadelay: Número de "décimos de segundo" para a espera. DEZ décimos de segundo
equivalem a UM segundo de atraso, portanto, para atrasar TRÊS décimos de segundo(300 ms) use SyncAnywhereSetTCPDelay(refNum, clientContext, 3).
Os parâmetros refNum e clientContext devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.4.3.33 SyncAnywhereFTPOpen
UInt32 SyncAnywhereFTPOpen(UInt16 RefNum, UInt32 clientContext, char*hostname, UInt16 Port, char *username, char *password, UInt16 timeout);
Comentários
Conecta-se a um servidor FTP. A conexão com um servidor de comunicação
(RAS/Internet) já deve ter sido iniciada pela função SyncAnywhereDial ou por outromeio.
Parâmetros
SyncAnywhere v1.22101
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
refNum: Referência à biblioteca SyncAnywhereclientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
hostName: O nome ou endereço IP do servidor FTP.port: A porta do serviço FTP no servidor. Se a porta for a padrão, utilize ZERO
neste parâmetro.username: O nome do usuário para logon no servidor FTP.password : A senha de acesso do usuário.timeout: Número de segundos para timeout no acesso ao servidor FTP.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.4.3.34 SyncAnywhereFTPClose
UInt32 SyncAnywhereFTPClose(UInt16 refNum, UInt32 clientContext);
Comentários
Fecha a conexão com o servidor FTP. A conexão deve ter sido aberta pela funçãoSyncAnywhereFTPOpen .
Parâmetros
refNum: Referência à biblioteca SyncAnywhereclientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.4.3.35 SyncAnywhereFTPCd
UInt32 SyncAnywhereFTPCd(UInt16 refNum, UInt32 clientContext, char*path);
Comentários
Muda o diretório no servidor FTP.
Parâmetros
Cliente Palm 102
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
refNum: Referência à biblioteca SyncAnywhereclientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
path: Caminho para o diretório no servidor FTP
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.4.3.36 SyncAnywhereFTPMkd
UInt32 SyncAnywhereFTPMkd(UInt16 refNum, UInt32 clientContext, char*name);
Comentários
Cria o diretório no servidor FTP.
Parâmetros
refNum: Referência à biblioteca SyncAnywhereclientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
name: Nome do diretório a ser criado no servidor FTP.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.4.3.37 SyncAnywhereFTPRmd
UInt32 SyncAnywhereFTPRmd(UInt16 refNum, UInt32 clientContext, char*name);
Comentários
Remove o diretório do servidor FTP.
Parâmetros
refNum: Referência à biblioteca SyncAnywhereclientContext: Contexto de acesso à biblioteca
SyncAnywhere v1.22103
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
name: Nome do diretório a ser removido no servidor FTP.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.4.3.38 SyncAnywhereFTPDel
UInt32 SyncAnywhereFTPDel(UInt16 refNum, UInt32 clientContext, char
*name);
Comentários
Remove o arquivo do servidor FTP.
Parâmetros
refNum: Referência à biblioteca SyncAnywhereclientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
name: Nome do arquivo a ser removido no servidor FTP.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.4.3.39 SyncAnywhereFTPPut
UInt32 SyncAnywhereFTPPut(UInt16 refNum, UInt32 clientContext, char
*DBName);
Comentários
Envia um banco de dados ou aplicação do Palm para o servidor FTP.
Parâmetros
refNum: Referência à biblioteca SyncAnywhereclientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
Cliente Palm 104
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
DBName: Nome do banco de dados ou aplicação para ser enviada ao servidor. Onome não deve conter extensão pois ela será colocada automaticamente (.PDB/.PRC)dependendo do que estiver sendo enviado. Atenção: o nome do banco de dados écase-sensitive.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.4.3.40 SyncAnywhereFTPGet
UInt32 SyncAnywhereFTPGet(UInt16 refNum, UInt32 clientContext, char
*name);
Comentários
Recebe um banco de dados ou aplicação do servidor FTP.
Parâmetros
refNum: Referência à biblioteca SyncAnywhereclientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
name: Nome do banco de dados ou aplicação para ser recebida do servidor. Onome deve conter a extensão (.PDB/.PRC) dependendo do que estiver sendo recuperado.
Atenção: alguns servidores FTP exigem que os nomes de arquivo sejamexatamente como estão armazenados (case-sensitive) .
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.4.3.41 SyncAnywhereFTPRename
UInt32 SyncAnywhereFTPRename(UInt16 refNum, UInt32 clientContext, char*oldName, char *newName);
Comentários
Renomeia um banco de dados ou aplicação no servidor FTP.
Parâmetros
refum: Referência à biblioteca SyncAnywhereclientContext: Contexto de acesso à biblioteca
SyncAnywhere v1.22105
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
oldName: Nome do banco de dados ou aplicação para ser renomeada noservidor. O nome deve conter a extensão (.PDB/.PRC) dependendo do que estiver sendo
renomeado. Atenção: alguns servidores FTP exigem que os nomes de arquivosejam exatamente como estão armazenados (case-sensitive).
newName: Novo nome do arquivo no servidor.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.4.3.42 SyncAnywhereFTPGetLastResponse
UInt32 SyncAnywhereFTPGetLastResponse(UInt16 refNum, UInt32clientContext, char *response);
Comentários
Obtém o texto da última resposta do servidor FTP.
Parâmetros
refNum: Referência à biblioteca SyncAnywhereclientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na função
SyncAnywhereOpenRef .
Response: Última mensagem de resposta do servidor FTP. Este texto érecuperado diretamente o servidor FTP, portanto a mensagem é do próprio servidor.Atenção: Este parâmetro DEVE SER um ponteiro ou Array de char (ex: charresponse[255]) alocada com 255 caracteres. A biblioteca irá copiar amensagem neste parâmetro, não fará alocação de memória para o retorno damensagem. Se você não alocar espaço, poderá causar um erro na sua aplicação
e Reset no Palm.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.4.3.43 SyncAnywhereFTPSetServerType
UInt32 SyncAnywhereFTPSetServerType(UInt16 refNum, UInt32 clientContext,UInt16 serverType);
Comentários
Cliente Palm 106
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
Configura o tipo de listagem de diretório (comando DIR) retornada pelo servidorFTP. O parâmetro ServerType pode ser configurado como ZERO para retorno padrãoUnix/Linux e UM para retorno padrão Windows 2000.
Parâmetros
refNum: Referência à biblioteca SyncAnywhereclientContext: Contexto de acesso à bibliotecaserverType: ZERO para retorno padrão Unix/Linux e UM para
retorno padrão Windows 2000.
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.4.3.44 SyncAnywhereFTPDir
UInt32 SyncAnywhereFTPDir(UInt16 refNum, UInt32 clientContext);
Comments
Get the listing from the current directory on the FTP server. This operation doesnot present the listing, only get the list for later use by SyncAnywhereFTPGetFileCount,SyncAnywhereFTPGetFileName, SyncAnywhereFTPFileExists andSyncAnywhereFTPDirectoryExists calls.
SyncAnywhereFTPDir is not automatically called when you connect to the FTPServer or when you change the current directory; you must explicitly call it.
Parameters
refNum: Reference to the SyncAnywhere SharedLib.clientContext: Context to access the SyncAnywhere SharedLib.
Both parameters are retrieve from the SyncAnywhereOpenRef call.
Return value
ZERO indicates the call was succesfuly executed; non-zero value indicates anerror described in an error table listed later.
Example
// Obtém a listagem dos arquivos do diretório // corrente no Servidor Erro = SyncAnywhereFTPDir(refNum, context); if (Erro)
SyncAnywhere v1.22107
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
{ // Erro no comando SyncAnywhereFTPDIR
return; }
// Recupera o número de arquivos no diretório // corrente no Servidor Erro = SyncAnywhereFTPGetFileCount(refNum, context, &fileCount); if (Erro) {
// Erro no comando SyncAnywhereFTPGetFileCount return; }
// Mostra o número de arquivos StrCopy(Str, "Número de Arquivos no Servidor: "); StrIToA(Str2, fileCount); StrCat(Str, Str2); FrmCustomAlert(AlertInfo, Str, NULL, NULL);
// Mostra os nomes dos arquivos for (x=0; x<fileCount; x++) { Erro = SyncAnywhereFTPGetFileName(refNum, context, x, Nome);
if (!Erro) FrmCustomAlert(AlertInfo, Nome, NULL, NULL); }
// Verifica se o arquivo existe no Servidor Erro = SyncAnywhereFTPFileExists(refNum, context, "Test.pdb", &exists); if (Erro) { // Erro no comando SyncAnywhereFTPFileExists return; }
// Indica se o arquivo existe if (exists) FrmCustomAlert(AlertInfo, "Arquivo existe no Servidor!", NULL, NULL); else FrmCustomAlert(AlertInfo, "Arquivo não existe no Servidor!", NULL, NULL);
// Verifica se o diretório existe no Servidor
Erro = SyncAnywhereFTPDirectoryExists(refNum, context, "dados", &exists); if (Erro) { // Erro no comando SyncAnywhereFTPDirectoryExists return; }
// Indica se o diretório existe
Cliente Palm 108
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
if (exists) FrmCustomAlert(AlertInfo, "Diretório existe no Servidor!", NULL, NULL); else FrmCustomAlert(AlertInfo, "Diretório não existe no Servidor!", NULL,NULL);
2.4.3.45 SyncAnywhereFTPGetFileCount
UInt32 SyncAnywhereFTPGetFileCount(UInt16 refNum, UInt32 clientContext,UInt16 *fileCount);
Comentários
Recupera o número de arquivos no diretório corrente do Servidor FTP. Atenção:esta função só funciona se o comando SyncAnywhereFTPDir for chamado antes pararecuperar a lista de arquivos do Servidor FTP.
Parâmetros
refNum: Referência à biblioteca SyncAnywhereclientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
fileCount: Ponteiro para uma variável do tipo UInt16 para receber o número dearquivos no diretório corrente do Servidor FTP.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
Exemplo de utilização
Consulte a função SyncAnywhereFTPDir para exemplo de utilização desta função.
2.4.3.46 SyncAnywhereFTPFileExists
UInt32 SyncAnywhereFTPFileExists(UInt16 refNum, UInt32 clientContext, char*fileName, UInt16 *fileExists);
Comentários
Verifica se o arquivo existe no diretório corrente do Servidor FTP. Atenção: esta
função só funciona se o comando SyncAnywhereFTPDir for chamado antes pararecuperar a lista de arquivos do Servidor FTP.
Parâmetros
refNum: Referência à biblioteca SyncAnywhere
SyncAnywhere v1.22109
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
clientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
fileName: Nome do arquivo.fileExists: Ponteiro para uma variável do tipo UInt16 para receber o resultado da
verificação. ZERO indica que o arquivo não existe no diretório corrente do Servidor; UMindica que o arquivo existe.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indica
erro cujo código está descrito em uma seção mais adiante.
Exemplo de utilização
Consulte a função SyncAnywhereFTPDir para exemplo de utilização desta função.
2.4.3.47 SyncAnywhereFTPDirectoryExists
UInt32 SyncAnywhereFTPDirectoryExists(UInt16 refNum, UInt32 clientContext,char *dirName, UInt16 *dirExists);
Comentários
Verifica se o diretório existe no diretório corrente do Servidor FTP. Atenção: estafunção só funciona se o comando SyncAnywhereFTPDir for chamado antes pararecuperar a lista de arquivos do Servidor FTP.
Parâmetros
refNum: Referência à biblioteca SyncAnywhereclientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
dirName: Nome do diretório.dirExists: Ponteiro para uma variável do tipo UInt16 para receber o resultado da
verificação. ZERO indica que o diretório não existe no diretório corrente do Servidor; UMindica que o diretório existe.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
Exemplo de utilização
Consulte a função SyncAnywhereFTPDir para exemplo de utilização desta função.
Cliente Palm 110
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
2.4.3.48 SyncAnywhereFTPGetFileName
UInt32 SyncAnywhereFTPGetFileName(UInt16 refNum, UInt32 clientContext,UInt16 fileIndex, char *fileName);
Comentários
Recupera o nome do arquivo no diretório do Servidor FTP segundo o índiceespecificado. Atenção: esta função só funciona se o comando SyncAnywhereFTPDir forchamado antes para recuperar a lista de arquivos do Servidor FTP.
Parâmetros
refNum: Referência à biblioteca SyncAnywhereclientContext: Contexto de acesso à biblioteca
Os dois parâmetros devem ter sido recuperados na funçãoSyncAnywhereOpenRef .
fileIndex: Índice do arquivo na lista. O primeiro índice é ZERO.DBName: O nome do arquivo será retornado neste parâmetro. Atenção: Este
parâmetro DEVE SER uma variável PChar ou Array de Char alocada com nomínimo 100 caracteres. A biblioteca irá copiar o nome neste parâmetro, nãofará alocação de memória para o retorno da mensagem. Se você não alocarespaço, poderá causar um erro na sua aplicação e Reset no Palm.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
Exemplo de utilização
Consulte a função SyncAnywhereFTPDir para exemplo de utilização desta função.
2.5 HB++
2.5.1 Instalação
No diretório do SyncAnywhere\HB++ , há um arquivo chamadoSyncAnywhere.hbm que deve ser adicionado ao seu projeto. Este arquivo contém asinformações de acesso à SharedLib do SyncAnywhere, necessário para que o HB++
possa compilar sua aplicação.
2.5.2 Utilização
A aplicação exemplo HBDemo sob o diretório HB++ explica como utilizar asfunções da biblioteca para compactar dados e também para acessar um servidor FTP. Noformulário da aplicação, serão solicitados todos os dados para que seja possível a
SyncAnywhere v1.22111
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
conexão com o servidor FTP:
· O número de telefone para discagem ao servidor de comunicação, seja um RASou provedor Internet;
· Tipo de discagem, pulso ou tom;· Nome de usuário e senha de acesso ao servidor RAS ou provedor Internet;· O endereço IP ou nome do servidor FTP;· O nome do usuário e senha para logon no servidor FTP.
No arquivo de acesso às funções do SyncAnywhere (SyncAnywhere.hbm), háduas variáveis declaradas para acesso às funções do SyncAnywhere que você utilizaráem praticamente todas as funções, conforme demonstrado nas chamadas a seguir.
Para chamar uma função da biblioteca, basta utilizar o formato:SyncAnywhere.XXXXXX(Parâmeros), onde "SyncAnywhere." indica o arquivo headeronde as funções estão declaradas, XXXXXX é o nome dafunção desejada e Parâmetros
são os parâmetros que a função exige.
Atenção: antes de compactar e descompactar arquivos PDB na suaaplicação Delphi utilize o comando SyaGlobal.SetRecordUIDSupport(True), ouem VB Sya.SetRecordUIDSupport True, para habilitar o suporte ao UniqueIDdos registros no banco compactado. A não utilização deste comando acarretaráem arquivos incompatíveis com o HB++.
Antes de utilizar as funções do SyncAnywhere, é necessário carregar a bibliotecacom o seguinte comando:
' Carrega biblioteca SyncAnywhereIf not SyncAnywhere.OpenRef() Then MsgBox "Erro ao carregar SyncAnywhere!"
Exit Sub
End If
Atenção: não utilize as funções da biblioteca se a chamada acima falharou causará um erro na sua aplicação.
Para fechar a biblioteca, basta usar:
' Verifica se a biblioteca foi carregada
If SyncAnywhere.SyaRefNum=0 thenExit Sub
End If
' Fecha biblioteca SyncAnywhereSyncAnywhere.CloseRef
O código no botão Iniciar FTP executa comandos da biblioteca:
Dim Erro as Long Dim Telefone as String Dim Pulso as Integer
Dim Usuario as String
Cliente Palm 112
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
Dim Senha as StringDim ServidorFTP as StringDim UsuarioFTP as StringDim SenhaFTP as StringDim DBPack as new DatabaseInfo
' Verifica se a biblioteca foi carregadaIf SyncAnywhere.SyaRefNum=0 then MsgBox "Biblioteca SyncAnywhere não foi carregada!"
Exit Sub End If
' Verifica se existe um modem --> Inicialmente comentada pelos motivos
' abaixo explicados ' ------------------------------------------------------------------------ ' Para conexão por Celulares ou Modem via Infravermelho, NÃO USE afunção ' SyncAnywhere.ModemDetect, pois ela não será capaz de detectar a ' comunicação com o Celular. Esta função deve ser usada somentequando a
' conexão for feita através de Modem acoplado ao Palm, ou celular viacabo ' ------------------------------------------------------------------------ 'FldStatus.Text = "Detectando Modem..." 'Erro =SyncAnywhere.ModemDetect(SyncAnywhere.SyaRefNum,SyncAnywhere.SyaContext) 'If Erro>0 Then ' FldStatus.Text = "Modem não detectado!"
' Exit Sub 'End If
' Configura o CreatorID para criação do Arquivo PDB compactado Erro = SyncAnywhere.SetCreatorID(SyncAnywhere.SyaRefNum,SyncAnywhere.SyaContext, "CBCT") If Erro>0 Then MsgBox "Erro configurando CreatorID: " & CStr(Erro)
Exit Sub End If
' Recupera as informações dos campos Telefone = FldTelefone.Text Usuario = FldUsuario.Text Senha = FldSenha.Text ServidorFTP = FldServidor.Text
UsuarioFTP = FldFTPUsuario.Text SenhaFTP = FldFTPSenha.Text
' Valida as informaçõesIf Len(Telefone)=0 Then
MsgBox "Telefone inválido!"Exit Sub
End If
SyncAnywhere v1.22113
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
If Len(Usuario)=0 ThenMsgBox "Usuario inválido!"Exit Sub
End If
If Len(Senha)=0 ThenMsgBox "Senha inválido!"Exit Sub
End If
If Len(ServidorFTP)=0 ThenMsgBox "Servidor FTP inválido!"Exit Sub
End If
If Len(UsuarioFTP)=0 ThenMsgBox "UsuarioFTP inválido!"Exit Sub
End If
If Len(SenhaFTP)=0 ThenMsgBox "SenhaFTP inválido!"Exit Sub
End If
' Pulso/TomIf ChkPulso.Value Then
Pulso = 1
ElsePulso = 0
End If
' Apaga o banco PDBPack, necessário para que os bancos não sejam ' adicionados aos já existentes If DBPack.FindByName("PDBPack") Then
DBPack.Delete
End If
' Compacta bancos de dados para envio ao Servidor FldStatus.Text = "Compactando ProdutosDB" Erro = SyncAnywhere.PackDatabase(SyncAnywhere.SyaRefNum,SyncAnywhere.SyaContext, "PDBPack", "ProdutosDB", 500) If Erro>0 Then MsgBox "Erro em ProdutosDB: " & CStr(Erro)
Exit Sub End If
FldStatus.Text = "Compactando ClientesDB" Erro = SyncAnywhere.PackDatabase(SyncAnywhere.SyaRefNum,SyncAnywhere.SyaContext, "PDBPack", "ClientesDB", 500) If Erro>0 Then
MsgBox "Erro em ClientesDB: " & CStr(Erro)
Cliente Palm 114
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
Exit Sub End If
' Abre a Net.Lib FldStatus.Text = "Abrindo Net.Lib..."
Erro = SyncAnywhere.NetLibOpen(SyncAnywhere.SyaRefNum,SyncAnywhere.SyaContext) If Erro>0 Then MsgBox "Erro de abertura Net.Lib: " & CStr(Erro) Exit Sub End If
' Conecta no servidor de comunicação
FldStatus.Text = "Discando"
' ------------------------------------------------------------------------ ' Para conexão por Celulares ou Modem via Infravermelho, NÃO USE afunção ' SyncAnywhere.Dial, pois ela não fará a discagem. Ao invés de usar esta ' função, crie a conexão com o celular na aplicação Prefs do Palm, opção
' Network e configure lá o telefone, o modo de conexão, usuário e senha, ' e utilize a função SyncAnywhere.OpenService(NomeDaConexão) paraefetuar ' a discagem. O nome no parâmetro deve ser exatamente igual ao nomedo ' serviço criado, respeitando-se as letras maiúsculas e minúsculas. ' Caso tenha alguma dúvida, consulte o manual do SyncAnywhere. ' ------------------------------------------------------------------------
Erro = SyncAnywhere.Dial(SyncAnywhere.SyaRefNum,SyncAnywhere.SyaContext, Telefone, Pulso, Usuario, Senha) If Erro>0 Then
FldStatus.Text = "Erro de Discagem"MsgBox "Erro de Discagem: " & CStr(Erro)
' Fecha a biblioteca de comunicação SyncAnywhere.NetLibClose SyncAnywhere.SyaRefNum,
SyncAnywhere.SyaContext
Exit Sub End If
' Conecta no Servidor FTP FldStatus.Text = "Conectando no Servidor FTP..." Erro = SyncAnywhere.FTPOpen(SyncAnywhere.SyaRefNum,
SyncAnywhere.SyaContext, ServidorFTP, 0, UsuarioFTP, SenhaFTP, 10) If Erro>0 Then
FldStatus.Text = "Erro de Conexão"MsgBox "Erro de Conexão: " & CStr(Erro)
' Desconecta do Servidor de comunicação SyncAnywhere.Hangup SyncAnywhere.SyaRefNum,SyncAnywhere.SyaContext
SyncAnywhere v1.22115
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
' Fecha Net.Lib SyncAnywhere.NetLibClose SyncAnywhere.SyaRefNum,SyncAnywhere.SyaContext
Exit Sub
End If
' Comando GET de uma aplicação FldStatus.Text = "Recebendo Clientes.prc" Erro = SyncAnywhere.FTPGet(SyncAnywhere.SyaRefNum,SyncAnywhere.SyaContext, "Clientes.prc") If Erro>0 Then
If Erro=33800 Then
MsgBox "Arquivo não existe no servidor"Else
MsgBox "Erro de recepção: " & CStr(Erro)End If
End If
' Comando PUT do Banco compactado FldStatus.Text = "Enviando PDBPack..." Erro = SyncAnywhere.FTPPut(SyncAnywhere.SyaRefNum,SyncAnywhere.SyaContext, "PDBPack") If Erro>0 Then
MsgBox "Erro de envio: " & CStr(Erro) End If
' Fecha Conexão FTP, se o envio teve sucesso SyncAnywhere.FTPClose SyncAnywhere.SyaRefNum, SyncAnywhere.SyaContext
' Desconecta do Servidor de comunicação SyncAnywhere.Hangup SyncAnywhere.SyaRefNum, SyncAnywhere.SyaContext
' Fecha Net.Lib SyncAnywhere.NetLibClose SyncAnywhere.SyaRefNum,
SyncAnywhere.SyaContext
FldStatus.Text = "Comunicação realizada com sucesso!"
O código no botão Analisar PDBPack executa comandos da biblioteca:
Dim Erro as Long
Dim NumDBs as IntegerDim x as IntegerDim NomeBanco as StringDim DBPack as new DatabaseInfo
' Verifica se a biblioteca foi carregadaIf SyncAnywhere.SyaRefNum=0 then
MsgBox "Biblioteca SyncAnywhere não foi carregada!"
Cliente Palm 116
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
Exit SubEnd If
' Procura pelo banco PDBPack no PalmIf not DBPack.FindByName("PDBPack") Then
MsgBox "Banco PDBPack não foi encontrado, comande o Início do FTP oucarregue o banco de dados PDBPack.pdb do diretório TestDB no palm ouEmulador" Exit SubEnd If
' Verifica o número de bancos de dados Compactados em PDBPackErro = SyncAnywhere.GetDBCount(SyncAnywhere.SyaRefNum,
SyncAnywhere.SyaContext, "PDBPack", NumDBs)If Erro>0 Then
MsgBox "Erro ao recuperar número de bancos: " & CStr(Erro) Exit SubEnd If
' Apresenta número de Bancos
MsgBox "Número de bancos de dados em PDBPack: " & CStr(NumDBs)
' Apresenta o nome dos Bancos em PDBPackFor x=0 To NumDBs-1
' Reserva espaço na variável para receber o nome do banco dedados
NomeBanco = Space(35)
Erro = SyncAnywhere.GetDBName(SyncAnywhere.SyaRefNum,SyncAnywhere.SyaContext, "PDBPack", x, NomeBanco) If Erro>0 Then
MsgBox "Erro ao recuperar nome do banco: " & CStr(Erro) Exit Sub End If
' Apresenta o nome
MsgBox "Banco armazenado em PDBPack: " & NomeBanco
Next
' Descompacta apenas um banco de dados de PDBPackErro = SyncAnywhere.UnpackOneDB(SyncAnywhere.SyaRefNum,SyncAnywhere.SyaContext, "PDBPack", "ProdutosDB")If Erro>0 Then
MsgBox "Erro ao descompactar banco ProdutosDB de PDBPack: " &CStr(Erro) Exit SubEnd If
' Teste efetuado com sucesso!MsgBox "Banco de dados ProdutosDB descompactado!"
SyncAnywhere v1.22117
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
2.5.3 Funções do SyncAnywhere
2.5.3.1 SyncAnywhere.GetVersion
Public Declare Function GetVersion(ByVal iRef as Integer) as Integer
Comentários
Recupera a versão da biblioteca. A versão é retornada como um número inteiro,onde a centena representa a versão e a dezena, a correção da versão, exemplo: a versão113 representa a versão 1 da biblioteca, com a correção 13.
Parâmetros
iRef: Variável SyncAnywhere.SyaRefNum.
Retorno
Inteiro representando a versão da biblioteca.
2.5.3.2 SyncAnywhere.CheckSumOn
Public Declare Function CheckSumOn(ByVal iRef as Integer, ByValiClientContext as Long) as Long
Comentários
Habilita a gravação de bytes de verificação de integridade nos registros do bancode dados compactado, para auxiliar na garantia da integridade dos dados transmitidos.Por default, a gravação dos bytes de verificação está desabilitada . O número de bytes
de verificação de integridade gravados por registro é 10.
Parâmetros
iRef: Variável SyncAnywhere.SyaRefNum.iClientContext: Variável SyncAnywhere.SyaContext.
2.5.3.3 SyncAnywhere.CheckSumOff
Public Declare Function CheckSumOff(ByVal iRef as Integer, ByValiClientContext as Long) as Long
Comentários
Desabilita a gravação de bytes de verificação de integridade nos registros dobanco de dados compactado (default).
Parâmetros
Cliente Palm 118
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
iRef: Variável SyncAnywhere.SyaRefNum.iClientContext: Variável SyncAnywhere.SyaContext.
2.5.3.4 SyncAnywhere.SetPackDataBlock
Public Declare Function SetPackDataBlock(ByVal iRef as Integer, ByValiClientContext as Long, ByVal MaxAllocSize as Integer) as Long
Comentários
Esta função é de extrema importância se o arquivo tiver que ser descompactadoem equipamentos com pouca memória como o Zire, M100, M105 ou qualquer outro quetenha 2MB de memória ou menos. Esses equipamentos tem muito pouca memória
dinâmica para alocação, assim, a quantidade de memória disponível depende dotamanho da aplicação. O tamanho máximo do bloco compactado de dados deve serconfigurado segundo sua necessidade em equipamentos com pouca memória e nestecaso um valor de 500 bytes é geralmente adequado à aplicações grandes.
Parâmetros
iRef: Variável SyncAnywhere.SyaRefNum.
iClientContext: Variável SyncAnywhere.SyaContext.MaxAllocSize : Tamanho máximo (em bytes) do bloco de dados que será
compactado. O default é 30000 bytes, mas para equipamentos com pouca memória estevalor deve ser muito mais baixo, em torno de 500 bytes quando a aplicação executada égrande ou até 5000 bytes se a aplicação for pequena.
2.5.3.5 SyncAnywhere.SetCreatorID
Public Declare Function SetCreatorID(ByVal iRef as Integer, ByVal
iClientContext as Long, ByVal CrID as String) as Long
Comentários
Configura o CreatorID que será usado para os arquivos compactados.
Parâmetros
iRef: Variável SyncAnywhere.SyaRefNum.iClientContext: Variável SyncAnywhere.SyaContext.CrID: O CreatorID, com exatamente quatro caracteres.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indica
erro cujo código está descrito em uma seção mais adiante.
SyncAnywhere v1.22119
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
2.5.3.6 SyncAnywhere.PackDatabase
Public Declare Function PackDatabase(ByVal iRef as Integer, ByValiClientContext as Long, ByVal DBDest as String, ByVal DBSource as String,ByVal MaxBlockSize as Integer) as Long
Comentários
Compacta o banco de dados informado em DBSource, no banco de dadosinformado em DBDest.
Parâmetros
iRef: Variável SyncAnywhere.SyaRefNum.iClientContext: Variável SyncAnywhere.SyaContext.DBDest: Nome do banco de dados destino, onde será compactado o banco de
dados de origem. Atenção: O banco de dados destino deve ser apagado antes dechamar esta função pela primeira vez. As chamadas sucessivas à esta função
adicionam bancos de dados compactados à DBDest, portanto na primeira vez que usaresta função, certifique-se que ele não exista, para que a compactação inicie em umbanco de dados novo.
DBSource: Banco de dados origem, que será compactado dentro de DBDest.MaxBlockSize: Tamanho máximo do registro que será gerado no banco de dados
DBDest. Este valor normalmente deve ser em torno de 5000, que representa 5000 bytesem cada registro e pode ser configurado em função da qualidade de transmissão da linha
telefônica ou celular. Há locais onde é melhor que este valor seja menor, em torno de1000, para minimizar erros na transmissão. O tamanho mínimo é 50 bytes e o máximo30000.
Observação importante: para os modelos M100, Zire e outros que temmemória igual ou inferior a 2MB, este parâmetro não poderá ser maior que2500 bytes, ou retornará o erro appErrInvalidBlockSize. Estes modelos temmemória "Heap" (memória dinâmica liberada pelo PalmOS) extremamente
limitada e as alocações de memória internas necessárias para compactaçãopodem falhar se o valor for maior que 2500 bytes. Se o Banco de Dados tiverque ser descompactado em equipamentos deste tipo, não se esqueça deconfigurar o tamanho do bloco de compactação com as funçõesSyncAnywhereSetPackDataBlock no Palm e PackSetMaxDataBlock no Servidor.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.5.3.7 SyncAnywhere.GetDBCount
Public Declare Function GetDBCount(ByVal iRef as Integer, ByVal iClientContextas Long, ByVal DBSource as String, ByRef DBCount as Integer) as Long
Comentários
Cliente Palm 120
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
Recupera o número de bancos de dados compactados dentro do bancoespecificado no parâmetro DBSource, na variável informada no parâmetro DBCount. Onúmero de bancos de dados compactados só pode ser recuperado dos PDBsgerados pelo SyncAnywhere a partir da versão 1.17.
Parâmetros
iRef: Variável SyncAnywhere.SyaRefNum.iClientContext: Variável SyncAnywhere.SyaContext.DBSource: O nome do banco de dados compactado pelo SyncAnywhere.DBCount: Variável do tipo Integer para receber o número de bancos de dados.
Retorno
ZERO indica que houve um erro na recuperação do número de bancos de dadoscompactados ou que o banco de dados não foi gerado com o SyncAnywhere versão 1.17ou superior. Maior que ZERO indica o número de bancos compactados dentro do bancoinformado.
2.5.3.8 SyncAnywhere.GetDBName
Public Declare Function GetDBName(ByVal iRef as Integer, ByVal iClientContextas Long, ByVal DBSource as String, ByVal Indx as Integer, ByRef DBName asString) as Long
Comentários
Recupera o nome de bancos de dados compactado dentro do banco especificadono parâmetro DBSource, na variável informada no parâmetro DBName , de acordo com
o índice do banco informado no parâmetro Indx. O nome dos bancos de dadoscompactados só podem ser recuperados dos PDBs gerados pelo SyncAnywherea partir da versão 1.17.
Parâmetros
iRef: Variável SyncAnywhere.SyaRefNum.iClientContext: Variável SyncAnywhere.SyaContext.
DBSource: O nome do banco de dados compactado com o SyncAnywhere.Indx: O índice do banco de dados. O primeiro banco de dados compactado tem
índice ZERO. Para saber o número de bancos de dados compactados, utilize a funçãoSyncAnywhere.GetDBCount .
DBName: O nome do banco de dados compactado é retornado neste parâmetro.Atenção: Este parâmetro DEVE SER uma variável String previamente preenchidacom no mínimo 32 espaços. Se você não preparar a variável com os 32 espaços,poderá causar um erro na sua aplicação e Reset no Palm. Use a função Space do
HB++ para reservar os espaços.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
SyncAnywhere v1.22121
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
2.5.3.9 SyncAnywhere.CheckDatabase
Public Declare Function CheckDatabase(ByVal iRef as Integer, ByValiClientContext as Long, ByVal SourceDB as String) as Long
Comentários
Verifica a estrutura de um banco compactado gerado pelo SyncAnywhere. Afunção verifica a integridade do número de registros no banco e CheckSum (sehabilitado).
Parâmetros
iRef: Variável SyncAnywhere.SyaRefNum.iClientContext: Variável SyncAnywhere.SyaContext.DBSource: O nome do banco de dados compactado com o SyncAnywhere.
Retorno
ZERO indica que o PDB está íntegro na sua estrutura.
UM indica que o PDB está íntegro na sua estrutura, mas o CheckSum estádesabilitado, portanto ainda pode haver erro nos registros transferidos.
> UM é o código de erro da verificação do PDB.
2.5.3.10 SyncAnywhere.UnpackDatabase
Public Declare Function UnpackDatabase(ByVal iRef as Integer, ByValiClientContext as Long, ByVal DBSource as String) As Long
Comentários
Descompacta os bancos de dados para a memória do Palm. Atenção: Você deve
apagar os bancos de dados que serão descompactados antes que eles sejamdescompactados por esta função ou os registros serão adicionados aosregistros dos bancos de dados se já existirem.
Parâmetros
iRef: Variável SyncAnywhere.SyaRefNum.iClientContext: Variável SyncAnywhere.SyaContext.
DBSource: O nome do banco de dados compactado com o SyncAnywhere.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
Cliente Palm 122
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
2.5.3.11 SyncAnywhere.UnpackOneDB
Public Declare Function UnpackOneDB(ByVal iRef as Integer, ByValiClientContext as Long, ByVal DBSource as String, ByVal DBName as String) asLong
Comentários
Descompacta um único banco de dados para a memória do Palm. Atenção: Vocêdeve apagar o banco de dados que será descompactado antes que eles seja
descompactado por esta função ou os registros serão adicionados aos registrosdo banco de dados.
Parâmetros
iRef: Variável SyncAnywhere.SyaRefNum.iClientContext: Variável SyncAnywhere.SyaContext.DBSource: O nome do banco de dados compactado com o SyncAnywhere.
DBName: O nome do banco de dados que será extraído do banco compactado.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.5.3.12 SyncAnywhere.UnpackApplication
Public Declare Function UnpackApplication(ByVal iRef as Integer, ByValiClientContext as Long, ByVal DBSource as String) as Long
Comentários
Descompacta a aplicação compactada em um Banco de Dados Palm (PDB) para amemória do Palm. Atenção: Você deve apagar a aplicação que será
descompactada antes que ela seja descompactada por esta função ou seráretornado um código de erro.
Parâmetros
iRef: Variável SyncAnywhere.SyaRefNum.iClientContext: Variável SyncAnywhere.SyaContext.DBSource: O nome do banco de dados que contém a aplicação compactada com
o SyncAnywhere.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
SyncAnywhere v1.22123
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
2.5.3.13 SyncAnywhere.NetLibOpen
Public Declare Function NetLibOpen(ByVal iRef as Integer, ByVal iClientContextas Long) as Long
Comentários
Abre a biblioteca de comunicação do Palm. Esta função deve ser chamada antesde qualquer outra função de comunicação.
Parâmetros
iRef: Variável SyncAnywhere.SyaRefNum.iClientContext: Variável SyncAnywhere.SyaContext.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indica
erro cujo código está descrito em uma seção mais adiante.
2.5.3.14 SyncAnywhere.NetLibClose
Public Declare Function NetLibClose(ByVal iRef as Integer, ByVal iClientContextas Long) as Long
Comentários
Fecha a biblioteca de comunicação do Palm. Esta função deve ser chamadaquando a comunicação não for mais necessária, geralmente a última função a serchamada no processo de comunicação.
Parâmetros
iRef: Variável SyncAnywhere.SyaRefNum.
iClientContext: Variável SyncAnywhere.SyaContext.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.5.3.15 SyncAnywhere.ModemDetect
Public Declare Function ModemDetect(ByVal iRef as Integer, ByValiClientContext as Long) as Long
Comentários
Detecta se um Modem ou Celular (via cabo serial) está conectado ao Palm.
Cliente Palm 124
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
Parâmetros
iRef: Variável SyncAnywhere.SyaRefNum.iClientContext: Variável SyncAnywhere.SyaContext.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.5.3.16 SyncAnywhere.Dial
Public Declare Function Dial(ByVal iRef as Integer, ByVal iClientContext as
Long, ByVal Phone as String, ByVal Pulse as Integer, ByVal UserName as String,ByVal Password as String) as Long
Comentários
Disca para um servidor de comunicação usando o modem acoplado ao Palm(PalmModem ou Celular via cabo serial).
Parâmetros
iRef: Variável SyncAnywhere.SyaRefNum.iClientContext: Variável SyncAnywhere.SyaContext.Phone: Número do telefone para discagem.Pulse: 1 para discagem por Pulso ou ZERO para discagem por Tom.Username: Nome do usuário para validação no servidor de comunicação
(RAS/Internet).
Password: Senha de acesso do usuário.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.5.3.17 SyncAnywhere.DialWireless
Public Declare Function DialWireless(ByVal iRef as Integer, ByVal iClientContextas Long, ByVal Connection as String, ByVal Phone as String, ByVal UserName asString, ByVal Password as String, ByVal PrimaryDNS as String, ByVal Script asString) as Long
Comentários
Disca para um servidor de comunicação usando uma Conexão predeterminada.Esta função pode ser usada para discagem por modem ou celular infravermelho ouBluetooth.
Parâmetros
SyncAnywhere v1.22125
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
iRef: Variável SyncAnywhere.SyaRefNum.iClientContext: Variável SyncAnywhere.SyaContext.Connection: Nome da Conexão preconfigurada na aplicação Prefs , opção
Connection (Conexões).Phone: Número do telefone.
Username: Nome do usuário para validação no servidor de comunicação(RAS/Internet).
Password: Senha de acesso do usuário.PrimaryDNS : Endereço IP do Servidor DNS, exemplo '222.111.22.11'.Script: Texto do Script para conexão. Caso um Script não seja necessário, use
uma String vazia. Para informar um Script neste parâmetro, veja os comentários maisabaixo.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
Script para conexão
Segundo a documentação da API do PalmOS, o Script é muito rígido, se um Script comsintaxe incorreta for informado, os resultados serão imprevisíveis. O formato do Script éuma sequência de Strings terminadas em ZERO, com um ZERO extra no final detodas as Strings, exemplo:
s go PPP#0's ^N#0#0
No exemplo acima temos um comando Send, terminado em ZERO, outro comando Send,
terminado em ZERO e um ZERO indicando o final do Script.
Comandos aceitos no Script
Função Comando Parâmetro Exemplo
Send s String s go PPP
Wait For w String s password:
Delay d Número de segundos s 1
Get IP g g
Prompt a String a Digite Nome:
Wait for Prompt f String f ID:
Send CR s String s ^N
Send UserID s String s nomeusuario
Send Password s String s senha
OBS: DEVE HAVER APENAS UM ÚNICO ESPAÇO ENTRE O COMANDO E OPARÂMETRO.
Cliente Palm 126
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
2.5.3.18 SyncAnywhere.OpenActiveService
Public Declare Function OpenActiveService(ByVal iRef as Integer, ByValiClientContext as Long) as Long
Comentários
Inicia o serviço selecionado no Prefs/Network. Esta função é útil quando você játem o serviço configurado ou quando o serviço requer configurações especiais comocomunicação IR (Celular IR), Bluetooth, WiFi, ou necessita configurar scripts.
Parâmetros
iRef: Variável SyncAnywhere.SyaRefNum.iClientContext: Variável SyncAnywhere.SyaContext.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.5.3.19 SyncAnywhere.OpenService
Public Declare Function OpenService(ByVal iRef as Integer, ByVal iClientContextas Long, ByVal ServiceName as String) as Long
Comentários
Inicia um serviço já configurado no Prefs/Network. Esta função é útil quando vocêjá tem o serviço configurado ou quando o serviço requer configurações especiais comocomunicação IR (Celular IR), Bluetooth, WiFi, ou necessita configurar scripts.
Parâmetros
iRef: Variável SyncAnywhere.SyaRefNum.iClientContext: Variável SyncAnywhere.SyaContext.ServiceName: Nome do Serviço criado no Prefs/Network.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.5.3.20 SyncAnywhere.Hangup
Public Declare Function Hangup(ByVal iRef as Integer, ByVal iClientContext asLong) as Long
Comentários
SyncAnywhere v1.22127
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
Desconecta do servidor de comunicação, conectado pela funçãoSyncAnywhereDial ou pela função SyncAnywhereOpenService .
Parâmetros
iRef: Variável SyncAnywhere.SyaRefNum.iClientContext: Variável SyncAnywhere.SyaContext.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.5.3.21 SyncAnywhere.FTPPassiveModeOn
Public Declare Function FTPPassiveModeOn(ByVal iRef as Integer, ByValiClientContext as Long) as Long
Comentários
Configura o modo "PASV" (FTP PASSIVO) na conexão FTP (default no
SyncAnywhere).
Parâmetros
iRef: Variável SyncAnywhere.SyaRefNum.iClientContext: Variável SyncAnywhere.SyaContext.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.5.3.22 SyncAnywhere.FTPPassiveModeOff
Public Declare Function FTPPassiveModeOff(ByVal iRef as Integer, ByValiClientContext as Long) as Long
Comentários
Configura o modo não passivo (FTP ATIVO) na conexão FTP.
Parâmetros
iRef: Variável SyncAnywhere.SyaRefNum.
iClientContext: Variável SyncAnywhere.SyaContext.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
Cliente Palm 128
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
2.5.3.23 SyncAnywhere.SetTCPDelay
Public Declare Function SetTCPDelay(ByVal iRef as Integer, ByValiClientContext as Long, ByVal Delay as Integer) as Long
Comentários
Configura um tempo de espera entre os envios e recebimentos de blocos de dadosde/para o Servidor FTP. Esta função é importante quando as conexões são notoriamentelentas, sensíveis e suscetíveis à quedas como conexões via celular e principalmente por
infravermelho.
Como regra, quanto maior o tamanho do bloco utilizado para compactar o bancode dados através da função SyncAnywherePackDatabase, maior deve ser o tempo deespera passado nesta função em conexões lentas, principalmente infravermelho. Comoparâmetro, em testes realizados em conexões IR com média qualidade, blocos de 500bytes compactados podem ser utilizados com o parâmetro Delay nesta funçãoconfigurado para 3 (300ms). Em conexões com pior qualidade, o tempo deve ser
aumentado e o tamanho do bloco diminuído.
Parâmetros
iRef: Variável SyncAnywhere.SyaRefNum.iClientContext: Variável SyncAnywhere.SyaContext.Delay: Número de "décimos de segundo" para a espera. DEZ décimos de
segundo equivalem a UM segundo de atraso, portanto, para atrasar TRÊS décimos desegundo (300 ms) use SyncAnywhere.SetTCPDelay(Context, 3).
2.5.3.24 SyncAnywhere.FTPOpen
Public Declare Function FTPOpen(ByVal iRef as Integer, ByVal iClientContext asLong, ByVal HostName as String, ByVal Port as Integer, ByVal UserName asString, ByVal Password as String, ByVal Timeout as Integer) as Long
Comentários
Conecta-se a um servidor FTP. A conexão com um servidor de comunicação(RAS/Internet) já deve ter sido iniciada pela função SyncAnywhere.Dial ou por outromeio.
Parâmetros
iRef: Variável SyncAnywhere.SyaRefNum.iClientContext: Variável SyncAnywhere.SyaContext.Port: Porta para conexão no Servidor FTP. Se a porta for padrão, passe ZERO
neste parâmetro.HostName: O nome ou endereço IP do servidor FTP.Username: O nome do usuário para logon no servidor FTP.Password: A senha de acesso do usuário.
Timeout: Tempo (em segundos) para que as funções de comunicação utilizemcomo tempo limite de conexão. O default é 10 segundos. Há servidores que necessitam
SyncAnywhere v1.22129
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
de um tempo maior devido à sua lentidão ou quantidade maior de usuários conectados.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indica
erro cujo código está descrito em uma seção mais adiante.
2.5.3.25 SyncAnywhere.FTPClose
Public Declare Function FTPClose(ByVal iRef as Integer, ByVal iClientContext asLong) as Long
Comentários
Fecha a conexão com o servidor FTP. A conexão deve ter sido aberta pela funçãoSyncAnywhere.FTPOpen .
Parâmetros
iRef: Variável SyncAnywhere.SyaRefNum.iClientContext: Variável SyncAnywhere.SyaContext.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.5.3.26 SyncAnywhere.FTPCd
Public Declare Function FTPCd(ByVal iRef as Integer, ByVal iClientContext as
Long, ByVal Path as String) as Long
Comentários
Muda o diretório no servidor FTP.
Parâmetros
iRef: Variável SyncAnywhere.SyaRefNum.iClientContext: Variável SyncAnywhere.SyaContext.Path: Caminho para o diretório no servidor FTP
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indica
erro cujo código está descrito em uma seção mais adiante.
Cliente Palm 130
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
2.5.3.27 SyncAnywhere.FTPMkd
Public Declare Function FTPMkd(ByVal iRef as Integer, ByVal iClientContext asLong, ByVal Name as String) as Long
Comentários
Cria o diretório no servidor FTP.
Parâmetros
iRef: Variável SyncAnywhere.SyaRefNum.iClientContext: Variável SyncAnywhere.SyaContext.Name: Nome do diretório a ser criado no servidor FTP.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indica
erro cujo código está descrito em uma seção mais adiante.
2.5.3.28 SyncAnywhere.FTPRmd
Public Declare Function FTPRmd(ByVal iRef as Integer, ByVal iClientContext asLong, ByVal Name as String) as Long
Comentários
Remove o diretório do servidor FTP.
Parâmetros
iRef: Variável SyncAnywhere.SyaRefNum.iClientContext: Variável SyncAnywhere.SyaContext.Name: Nome do diretório a ser removido no servidor FTP.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.5.3.29 SyncAnywhere.FTPDel
Public Declare Function FTPDel(ByVal iRef as Integer, ByVal iClientContext asLong, ByVal Name as String) as Long
Comentários
Remove o arquivo do servidor FTP.
Parâmetros
SyncAnywhere v1.22131
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
iRef: Variável SyncAnywhere.SyaRefNum.iClientContext: Variável SyncAnywhere.SyaContext.Name: Nome do arquivo a ser removido no servidor FTP.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.5.3.30 SyncAnywhere.FTPPut
Public Declare Function FTPPut(ByVal iRef as Integer, ByVal iClientContext asLong, ByVal DBName as String) as Long
Comentários
Envia um banco de dados ou aplicação do Palm para o servidor FTP.
Parâmetros
iRef: Variável SyncAnywhere.SyaRefNum.
iClientContext: Variável SyncAnywhere.SyaContext.DBName: Nome do banco de dados ou aplicação para ser enviada ao servidor. O
nome não deve conter extensão pois ela será colocada automaticamente (.PDB/.PRC)dependendo do que estiver sendo enviado. Atenção: o nome do banco de dados écase-sensitive.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.5.3.31 SyncAnywhere.FTPGet
Public Declare Function FTPGet(ByVal iRef as Integer, ByVal iClientContext asLong, ByVal Name as String) as Long
Comentários
Recebe um banco de dados ou aplicação do servidor FTP.
Parâmetros
iRef: Variável SyncAnywhere.SyaRefNum.iClientContext: Variável SyncAnywhere.SyaContext.
Name: Nome do banco de dados ou aplicação para ser recebida do servidor. Onome deve conter a extensão (.PDB/.PRC) dependendo do que estiver sendo recuperado.Atenção: alguns servidores FTP exigem que os nomes de arquivo sejamexatamente como estão armazenados (case-sensitive) .
Retorno
Cliente Palm 132
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.5.3.32 SyncAnywhere.FTPRename
Public Declare Function FTPRename(ByVal iRef as Integer, ByVal iClientContextas Long, ByVal OldName as String, ByVal NewName as String) as Long
Comentários
Renomeia um banco de dados ou aplicação no servidor FTP.
Parâmetros
iRef: Variável SyncAnywhere.SyaRefNum.iClientContext: Variável SyncAnywhere.SyaContext.OldName: Nome do banco de dados ou aplicação para ser renomeada no
servidor. O nome deve conter a extensão (.PDB/.PRC) dependendo do que estiver sendorenomeado. Atenção: alguns servidores FTP exigem que os nomes de arquivosejam exatamente como estão armazenados (case-sensitive).
NewName: Novo nome do arquivo no servidor.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.5.3.33 SyncAnywhere.FTPGetLastResponse
Public Declare Function FTPGetLastResponse(ByVal iRef as Integer, ByVal
iClientContext as Long, ByRef Response as String) as Long
Comentários
Obtém o texto da última resposta do servidor FTP.
Parâmetros
iRef: Variável SyncAnywhere.SyaRefNum.iClientContext: Variável SyncAnywhere.SyaContext.Response: Última mensagem de resposta do servidor FTP. Este texto é
recuperado diretamente o servidor FTP, portanto a mensagem é do próprio servidor.Atenção: Este parâmetro DEVE SER uma variável String previamente preenchidacom 255 espaços. Se você não preparar a variável com os 255 espaços, poderácausar um erro na sua aplicação e Reset no Palm. Use a função Space do HB++
para reservar os espaços.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
SyncAnywhere v1.22133
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
2.5.3.34 SyncAnywhere.FTPSetServerType
Public Declare Function FTPSetServerType(ByVal iRef as Integer, ByValiClientContext as Long, ByVal ServerType as Integer) as Long
Comentários
Configura o tipo de listagem de diretório (comando DIR) retornada pelo servidorFTP. O parâmetro ServerType pode ser configurado como ZERO para retorno padrãoUnix/Linux e UM para retorno padrão Windows 2000.
Parâmetros
iRef: Variável SyncAnywhere.SyaRefNum.iClientContext: Variável SyncAnywhere.SyaContext.ServerType: ZERO para retorno padrão Unix/Linux e UM para
retorno padrão Windows 2000.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
2.5.3.35 SyncAnywhere.FTPDir
Public Declare Function FTPDir(ByVal iRef as Integer, ByVal iClientContext as
Long) as Long
Comentários
Obtém a listagem dos arquivos do diretório corrente no Servidor FTP. Estaoperação não apresenta os arquivos no formulário, obtém a lista para uso posterior pelasfunções SyncAnywhere.FTPGetFileCount, SyncAnywhere.FTPGetFileName,SyncAnywhere.FTPFileExists e SyncAnywhere.FTPDirectoryExists.
SyncAnywhereFTPDir não é chamada automaticamente ao se conectar ao ServidorFTP e na mudança de diretório no Servidor para otimizar a transmissão. Fica a critério dodesenvolvedor obter ou não a lista de arquivos, através da utilização ou não destafunção.
Parâmetros
iRef: Variável SyncAnywhere.SyaRefNum.iClientContext: Variável SyncAnywhere.SyaContext.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
Exemplo de utilização
Cliente Palm 134
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
' Obtém a listagem dos arquivos Do diretório ' corrente no Servidor Erro = SyncAnywhere.FTPDir(SyncAnywhere.SyaRefNum, SyncAnywhere.SyaContext ) If Erro>0 Then ' Erro no comando SyncAnywhere.FTPDIR
Exit Sub End If
' Recupera o número de arquivos no diretório ' corrente no Servidor SyncAnywhere.FTPGetFileCount(SyncAnywhere.SyaRefNum,SyncAnywhere.SyaContext, FileCount)
' Mostra o número de arquivos MsgBox "Número de Arquivos no Servidor: " & CStr(FileCount)
' Mostra os nomes dos arquivos For x=0 to FileCount-1 Nome = Space(200) Erro = SyncAnywhere.FTPGetFileName(SyncAnywhere.SyaRefNum,
SyncAnywhere.SyaContext , x, Nome)
If Erro=0 Then MsgBox Nome End If Next
' Verifica se o arquivo existe no Servidor
SyncAnywhere.FTPFileExists(SyncAnywhere.SyaRefNum, SyncAnywhere.SyaContext ,"Test.pdb", Exists)
' Indica se o arquivo existe If Exists>0 Then MsgBox "Arquivo existe no Servidor!" Else MsgBox "Arquivo não existe no Servidor!"
End If
' Verifica se o diretório existe no Servidor SyncAnywhere.FTPDirExists(SyncAnywhere.SyaRefNum, SyncAnywhere.SyaContext ,"dados", Exists)
' Indica se o diretório existe If Exists>0 Then
MsgBox "Diretório existe no Servidor!" Else MsgBox "Diretório não existe no Servidor!" End If
SyncAnywhere v1.22135
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
2.5.3.36 SyncAnywhere.FTPGetFileCount
Public Declare Function FTPGetFileCount(ByVal iRef as Integer, ByValiClientContext as Long, ByRef FileCount as Integer) as Long
Comentários
Recupera o número de arquivos no diretório corrente do Servidor FTP. Atenção:esta função só funciona se o comando SyncAnywhere.FTPDir for chamado antes pararecuperar a lista de arquivos do Servidor FTP.
Parâmetros
iRef: Variável SyncAnywhere.SyaRefNum.iClientContext: Variável SyncAnywhere.SyaContext.FileCount: Variável do tipo Integer para receber o número de arquivos.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
Exemplo de utilização
Consulte a função SyncAnywhere.FTPDir para exemplo de utilização desta função.
2.5.3.37 SyncAnywhere.FTPFileExists
Public Declare Function FTPFileExists(ByVal iRef as Integer, ByValiClientContext as Long, ByVal FileName as String, ByRef FileExists as Integer)as Long
Comentários
Verifica se o arquivo existe no diretório corrente do Servidor FTP. Atenção: estafunção só funciona se o comando SyncAnywhere.FTPDir for chamado antes pararecuperar a lista de arquivos do Servidor FTP.
Parâmetros
iRef: Variável SyncAnywhere.SyaRefNum.iClientContext: Variável SyncAnywhere.SyaContext.
FileName: Nome do arquivo.FileExists: Variável do tipo Integer para receber a resposta. ZERO indica que o
arquivo não existe no diretório corrente do Servidor; UM indica que o arquivo existe.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
Cliente Palm 136
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
Exemplo de utilização
Consulte a função SyncAnywhere.FTPDir para exemplo de utilização desta função.
2.5.3.38 SyncAnywhere.FTPDirExists
Public Declare Function FTPDirExists(ByVal iRef as Integer, ByValiClientContext as Long, ByVal DirName as String, ByRef DirExists as Integer) asLong
Comentários
Verifica se o diretório existe no diretório corrente do Servidor FTP. Atenção: esta
função só funciona se o comando SyncAnywhere.FTPDir for chamado antes pararecuperar a lista de arquivos do Servidor FTP.
Parâmetros
iRef: Variável SyncAnywhere.SyaRefNum.iClientContext: Variável SyncAnywhere.SyaContext.DirName: Nome do diretório.
DirExists: Variável do tipo Integer para receber a resposta. ZERO indica que odiretório não existe no diretório corrente do Servidor; UM indica que o diretório existe.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
Exemplo de utilização
Consulte a função SyncAnywhere.FTPDir para exemplo de utilização desta função.
2.5.3.39 SyncAnywhere.FTPGetFileName
Public Declare Function FTPGetFileName(ByVal iRef as Integer, ByValiClientContext as Long, ByVal FileIndex as Integer, ByRef FileName as String)as Long
Comentários
Recupera o nome do arquivo no diretório do Servidor FTP segundo o índiceespecificado. Atenção: esta função só funciona se o comando SyncAnywhere.FTPDir forchamado antes para recuperar a lista de arquivos do Servidor FTP.
Parâmetros
iRef: Variável SyncAnywhere.SyaRefNum.iClientContext: Variável SyncAnywhere.SyaContext.FileIndex: Variável do tipo Short para indicar o índice do arquivo na lista. O
primeiro índice é ZERO.
SyncAnywhere v1.22137
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
FileName: O nome do arquivo será retornado neste parâmetro. Atenção: Esteparâmetro DEVE SER uma variável String previamente preenchida com nomínimo 100 espaços. Se você não preparar a variável com pelo menos 100espaços, poderá causar um erro na sua aplicação e Reset no Palm. Use a funçãoSpace do HB++ para reservar os espaços.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
Exemplo de utilização
Consulte a função SyncAnywhere.FTPDir para exemplo de utilização desta função.
Cliente Palm 138
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
2.6 Códigos de Erro do SyncAnywhere no Palm
Compactação e Descompactação
Identificação do Erro Código Descrição do Erro
appErrSourceDBNotFound 32768 Banco de dados origem não foi encontrado
appErrCreateDestDB 32769 Erro de criação do banco de dados destino
appErrDestDBOpen 32770 Erro de abertura do banco de dadosdestino
appErrDestDBFull 32771 Banco de dados destino não pode maisreceber registros
appErrSourceDBOpen 32772 Erro de abertura no banco de dadosorigem
appErrSourceDBInfo 32773 Não foi possível obter a informação do
banco origem
appErrGettingDestRecord 32774 Erro de recuperação de registro do bancodestino
appErrCreatingRecord 32775 Erro de criação do registro no bancodestino
appErrResizingRecord 32776 Erro de redimensionamento do registro nobanco destino
appErrLockingDestRecord 32777 Erro de acesso ao registro no bancodestino
appErrGettingSourceRecord 32778 Erro obtendo registro no banco origem
appErrLockingSourceRecord 32779 Erro acessando registro no banco origem
appErrMemoryAllocation 32780 Erro de alocação de memória para oregistro no banco destino
appErrGettingRecordInfo 32781 Erro recuperando informações do registrono banco origem
appErrPackingData_MEMERROR 32782 Erro compactando dados (Z_MEM_ERROR)
appErrPackingData_BUFERROR 32783 Erro compactando dados (Z_BUF_ERROR)
appErrPackingData_STREAMERROR 32784 Erro compactando dados(Z_STREAM_ERROR)
SyncAnywhere v1.22139
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
appErrPackingData 32785 Erro compactando dados (outro)
appErrRecordTooBig 32786 O registro é muito grande para ser
armazenado
appErrInvalidBlockSize 32787 Tamanho do bloco não é válido. Mínimo50, máximo 30000. Para Palms com 2MBou menos de memória, o valor máximopermitido é 2500
appErrUnpackNoRecords 32788 Não há registros no banco de dadoscompactado
appErrNotSyncAnywhereDB 32789 Banco de dados não foi compactado peloSyncAnywhere
appErrUnpackingData_MEMERROR 32790 Erro descompactando dados(Z_MEM_ERROR). Se você estádescompactando os dados em umequipamento com 2MB ou menos dememória, é necessário diminuir otamanho do bloco na compactação noServidor ou no Palm. Veja as funçõesSyncAnywhereSetPackDataBlock no Palm
e PackSetMaxDataBlock no Servidor
appErrUnpackingData_BUFERROR 32791 Erro descompactando dados(Z_BUF_ERROR)
appErrUnpackingData_STREAMERROR 32792 Erro descompactando dados(Z_STREAM_ERROR)
appErrUnpackingData 32793 Erro descompactando dados (outro)
appErrGettingMoreData 32794 Erro ao obter dados para descompactação
appErrAppInfoTooBig 32795 AppInfo tem mais de é maior que otamanho limite do bloco (em bytes)
appErrSortInfoTooBig 32796 SortInfo tem mais de é maior que otamanho limite do bloco (em bytes)
appErrBlockSizeIsInvalid 32797 Tamanho do bloco não é suportado nestaplataforma
appErrDataBlockSizeTooBig 32798 Tamanho do bloco de dados compactados
é não é suportado neste plataforma. Use afunção PackSetMaxDataBlock noServidor com um valor máximo de 2500.
appErrDestAppInfo 32799 Erro ao recuperar a AppInfoArea do bancode dados compactado
appErrNoDBInfo 32800 Banco de dados informado não contéminformação dos bancos compactados.Verifique se o banco compactado foigerado com o SyncAnywhere a partir daversão 1.17
appErrInvalidIndex 32801 O índice informado para recuperação donome do banco de dados compactado nãoé válido. O índice começa em ZERO para o
primeiro banco e vai até o número debancos menos um.
Cliente Palm 140
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
appErrDBNotFound 32802 Banco de dados não foi encontrado nobanco compactado.
appErrInvalidCreatorID 32803 CreatorID não é válido; deve ter 4caracteres.
appErrCheckSum 32804 Erro de verificação do arquivocompactado. A transferência do arquivodo Servidor FTP deve ter sido
interrompida ou o arquivo estácorrompido. Retransmita o arquivocompactado.
appErrSourceAppInfo 32805 Erro ao recuperar a DatabaseInfo doarquivo compactado, o arquivo deve estar
corrompido.
appErrApplicationExists 32806 A Aplicação já existe na memória do Palm.Você deve apaga-la antes dedescompacta-la.
appErrCreateApp 32807 Não foi possível criar a aplicação namemória do Palm. Verifique se a memóriaestá cheia ou se o Palm está bloqueando aaplicação. Um Reset pode funcionar.
appErrDestAppOpen 32808 Erro de abertura da aplicação.
appErrGettingResource 32809 Erro ao obter Resource.
appErrResizingResource 32810 Erro ao redimensionar Resource.
appErrCreatingResource 32811 Erro ao criar Resource.
appErrLockingResource 32812 Erro ao bloquear Resource para uso.
appErrNumberOfRecords 32813 Nem todos os registros foramtransferidos, banco de dados estácorrompido
SyncAnywhere v1.22141
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
FTP
Identificação do Erro Código Descrição do Erro
ftpErrConnection 33768 Não foi possível conectar ao servidor,verifique IP/Porta
ftpErrReply 33769 Não foi possível obter resposta doservidor, verifique a conexão
ftpErrAuthentication 33770 Erro de autenticação
ftpErrNotOpen 33771 Comunicação FTP não foi previamenteaberta
ftpErrMemoryAllocation 33772 Erro de alocação de memória
ftpErrConnectionClose 33773 Conexão FTP está fechada
ftpErrSocketReadError 33774 Erro de leitura do Socket
ftpErrTimeout 33775 Conexão FTP estourou tempo limite detimeout
ftpErrLoginRequired 33776 Informações de login (User/Pass) énecessário
ftpErrInvalidPath 33777 Diretório não é válido
ftpErrPathDoesNotExist 33778 Diretório não existe no servidor FTP
ftpErrInvalidName 33779 Nome inválido
ftpErrDirectoryExists 33780 Diretório já existe no servidor FTP
ftpErrFailedCreatingDir 33781 Falha de criação do diretório no servidorFTP
ftpErrDirDoesNotExist 33782 Diretório não existe no servidor FTP
ftpErrFailedRemovingDir 33783 Falha ao remover diretório do servidor
FTP
ftpErrDBDoesNotExit 33784 Banco de dados não existe
ftpErrBinaryMode 33785 Erro ao entrar no modo binário
ftpErrSocketCreate 33786 Erro de criação no Socket
ftpErrSocketBind 33787 Erro ao vincular o Socket
ftpErrSocketListen 33788 Erro ao esperar por conexões
ftpErrSocketGetAddr 33789 Erro ao obter o endereço do Socket
ftpErrPortCmd 33790 Erro no comando PORT no servidor FTP
ftpErrGettingDBAttr 33791 Erro ao recuperar os atributos do bancode dados
ftpErrStorCmd 33792 Erro ao enviar o comando STOR aoservidor FTP
ftpErrSocketAccept 33793 Erro ao aceitar o Socket
ftpErrOpenDB 33794 Erro de abertura no banco de dados
ftpErrGettingResource 33795 Erro ao recuperar Resource da aplicação
ftpErrGettingAppInfo 33796 Erro ao recuperar AppInfoArea
ftpErrGettingSortInfo 33797 Erro ao recuperar SortInfoArea
ftpErrGettingRecord 33798 Erro recuperando o registro do banco dedados
Cliente Palm 142
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
ftpErrSendingData 33799 Erro enviando dados ao servidor FTP.Verifique se conexão caiu ou se vocêutilizou o comandoSyncAnywhereFTPClose acidentalmenteem alguma parte do código
ftpErrFileDoesNotExit 33800 Arquivo não existe no servidor FTP
ftpErrReceivingData 33801 Erro ao receber dados o servidor FTP.Verifique se conexão caiu ou se vocêutilizou o comandoSyncAnywhereFTPClose acidentalmenteem alguma parte do código
ftpErrCreatingDB 33802 Erro ao criar banco de dados no Palm
ftpErrSettingDBAttr 33803 Erro configurando atributos do banco dedados
ftpErrCreatingResource 33804 Erro ao criar Resource
ftpErrGettingResIndex 33805 Erro ao recuperar o índice do Resource
ftpErrBadFile 33806 O arquivo está corrompido no servidorFTP
ftpErrCreatingRecord 33807 Erro ao criar registro
ftpErrResizingResource 33808 Erro ao redimensionar resource
ftpErrResizingRecord 33809 Erro ao redimensionar registro
ftpErrPasvCmd 33810 Erro de envio do comando PASV aoservidor FTP
ftpErrSocketConnect 33811 Erro de conexão ao servidor FTP. Verifique
se seu Servidor FTP está sob um Firewallou sob uma rede cuja porta do Servidor éredirecionada por outro equipamento. Seeste for o caso, antes de conectar aoServidor FTP com SyncAnywhereFTPOpen,utilize o comandoSyncAnywhereFTPPassiveModeOff paraque o Servidor FTP faça a conexão no
Palm.
ftpErrPut 33812 Erro no comando PUT. Verifique se
conexão caiu. Geralmente este erro édevido a problemas de linha telefônica outimeout no Servidor FTP. Se o problemafor frequente, use o comandoSyncAnywhereSetTCPDelay antes de seconectar ao servidor FTP. O valor doatraso pode ser de 1 a 5, acima disso sóse o servidor ou a qualidade da
comunicação for muito ruim, pois acomunicação ficará mais lenta, apesar depossível. Utilize este comando emcombinação com a redução do tamanhodos blocos do banco compactado, porexemplo blocos de 300 a 1000 bytes.
SyncAnywhere v1.22143
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
frpErrGet 33813 Erro no comando GET. Verifique seconexão caiu. Veja explicação no erro33812 acima
frpErrSendingUsername 33814 Erro de envio do nome do usuário aoservidor FTP
ftpErrSendingPassword 33815 Erro de envio da senha do usuário aoservidor FTP
ftpErrFileDoesNotExist 33816 Arquivo não existe no Servidor
ftpErrFailedRemovingFile 33817 Falha ao remover o arquivo do Servidor
ftpErrFailedRenamingFile 33818 Falha ao renomear o arquivo no Servidor
ftpErrDir 33819 Erro na execução do comando DIR noServidor
ftpErrDirWasNotCalled 33820 Você deve executar o comandoSyncAnywhereFTPDir antes de tentarrecuperar informações sobre arquivos
Comunicação do Palm
Identificação do Erro Código Descrição do Erro
netErrNetLibNotFound 34768 Net.Lib não foi encontrada no Palm
netErrNetLibNotOpen 34769 NetLib não foi aberta comSyncAnywhereNetLibOpen
netErrNetLibNotActive 34770 Net.Lib não está ativa
netErrNetLibActive 34771 A comunicação já está aberta
netErrGettingInstance 34772 Erro obtendo a instância da interface
netErrOpeningNetLib 34773 Erro abrindo o serviço
netErrNoInterfaceFound 34774 Nenhuma interface foi encontrada
netErrCancelled 34775 Cancelado pelo usuário
netErrNoAnswer 34776 Número discado não atendeu
netErrAuthentication 34777 Erro de autenticação
netErrFailure 34778 Faha de conexão no serviço
netErrRetrievingIndex 34779 Erro recuperando o índice do serviço
netErrOpenPalmPort 34780 Erro abrindo a porta serial do Palm
netErrModemNotFound 34781 Modem não foi encontrado
netErrReceivingModemData 34782 Erro ao receber dados do Modem
netErrServiceDoesNotExit 34783 Serviço especificado não existe
Cliente Palm 144
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
Serviços de Rede
Identificação do Erro Código Descrição do Erro
svcErrNetworkPanelNotFound 35768 Aplicação Prefs/Network não foiencontrada
svcErrReceivingList 35769 Erro ao receber a lista de serviços doNetwork Panel
svcErrRetrActiveService 35770 Erro ao recuperar o serviço ativo doNetwork Panel
Mensagens do Sistema
Identificação Código Descrição
appMsgNoCheckSum 39000 O banco de dados foi verificado mas oCheckSum não foi utilizado nacompactação. Não representa um erro esim um aviso do sistema
Parte
III
Software no Servidor 146
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
3 Software no Servidor
3.1 Introdução
Mais uma característica importante no SyncAnywhere é a possibilidade decompactar e descompactar os bancos de dados do Palm no desktop, para que você possacoloca-los no servidor FTP e também que descompacte os bancos de dados provenientesdo Palm. Isto pode ser feito utilizando-se o Delphi 5, 6 ou 7 ou o Visual Basic.
3.2 Delphi
3.2.1 Instalação
Sob o diretório do SyncAnywhere\Delphi\Lib , há subdiretórios chamados D5,D6 e D7 para o Delphi 5, 6 e 7 respectivamente. Você deve acrescentar o diretóriosegundo sua versão do Delphi no campo Library Path, sob o menu Tools,Environment Options, Library. Não há necessidade de adicionar componentes.
Nas units onde você for utilizar as rotinas de compactação, você deve colocar aunit SyaPack na uses clause; onde for utilizar a rotina de descompactação, deve colocar
a unit SyaUnpack na uses clause.
3.2.2 Utilização
Para compactar dados, você deve ter os arquivos PDB já criados para poderutilizar como parâmetro das funções de compactação. Se você não sabe como criar PDBsdo Palm com o Delphi, conheça o produto PDBDataManager, também desenvolvido pela
Cialogica Tecnologia, no site www.cialogica.com.br.
A aplicação exemplo sob o diretório Delphi do SyncAnywhere mostra comoutilizar o SyncAnywhere para compactar e descompactar bancos de dados Palm.
Código para compactação, no botão Compacta da aplicação exemplo:
procedure TFrmPrincipal.BtCompactaClick(Sender: TObject);
var Err: Integer;begin // Inicia a compactação Err := PackStart(TxtDir.Text, 'PDBPack.pdb', 'PDBPack', 'PDBP'); if Err>0 then begin ShowMessage('Erro de início no processo de compactação!');
exit; end;
// Compacta os Arquivos PDB // A função PackDB encontra-se dentro da unit SyaPack
SyncAnywhere v1.22147
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
// Parâmetros // TxtDir.Text - Diretório onde os arquivos PDB a serem // compactados estão localizados // ProdutosDB.pdb e ClientesDB.pdb - São os arquivos PDB // a serem compactados
// 5000 - É o tamanho máximo em bytes de cada registro // compactado dentro do banco PDBPack // Você pode mudar este número em função da qualidade de // transmissão em sua // região. O número máximo é 30000. Valores maiores proporcionam // menos registros no banco de dados, mas podem ocasionar // problemas de transmissão em linhas com menor qualidade. Err := PackDB(TxtDir.Text, 'ClientesDB.pdb', 5000);
if Err>0 then begin ShowMessage('Erro compactando ProdutosDB.pdb: '+IntToStr(Err)); exit; end;
Err := PackDB(TxtDir.Text, 'ProdutosDB.pdb', 5000);
if Err>0 then begin ShowMessage('Erro compactando ProdutosDB.pdb: '+IntToStr(Err)); exit; end;
// Finaliza a compactação PackFinish;
ShowMessage('Fim de Compactação dos Arquivos PDB! Verifique o arquivo compactadono diretório informado.');end;
Código para descompactação, no botão Descompacta da aplicação exemplo:
procedure TFrmPrincipal.BtDescompactaClick(Sender: TObject);
var DirSource: String; Err: Integer;begin // Extrai o diretório onde está o Arquivo PDB Compactado DirSource := ExtractFilePath(TxtPDB.Text); DirSource := Copy(DirSource, 1, Length(DirSource)-1);
// Extrai os arquivos PDB inseridos no arquivo PDB Compactado // UnpackDB está contida na unit SyaUnpack que deve ser adicionada à 'usesclause' // Parâmetros: // DirSource - É o diretório onde está armazenado o arquivo PDB Compactado // ExtractFileName(TxtPDB.Text) - É o nome do arquivo PDB Compactado // ..\TestDB - É o local onde os arquivos serão Descompactados Err := UnpackDB(DirSource, ExtractFileName(TxtPDB.Text), '..\TestDB');
Software no Servidor 148
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
if Err>0 then begin ShowMessage('Erro de Descompactação: '+IntToStr(Err)); exit; end;
ShowMessage('Arquivos foram Descompactados com Sucesso! Verifique no diretórioinformado.');end;
ATENÇÃO: Quando for gerar arquivos compactados paraPalm M100 ou Zire ou qualquer outro modelo commemória igual ou inferior a 2MB, você deve utilizar afunção PackSetMaxDataBlock ANTES de usar a funçãoPackDB, passando como parâmetro o tamanho máximode 2500 Bytes (para aplicações grandes, use de 500 a1000 bytes), além disso, o parâmetro BlockSize dafunção PackDB deve também ter o tamanho máximo de2500 Bytes ou a operação de descompactação nestesmodelos de Palm poderá falhar por falta de memóriadinâmica (HEAP). Estes modelos tem memória limitada ea alocação frequentemente falha com blocos muitograndes de dados. Nos modelos mais novos, com 8MB dememória ou mais, a memória dinâmica é bem maior,portanto menos suscetível a falhas.
No botão Analisar PDBPack, há um código para encontrar os bancos de dados
que estão compactados dentro do arquivo PDB e também para descompactar apenas umdeles:
var Name, DirSource: String; Err, DBCount, x: Integer;begin // Extrai o diretório onde está o Arquivo PDB Compactado
DirSource := ExtractFilePath(TxtPDB.Text); DirSource := Copy(DirSource, 1, Length(DirSource)-1);
// Recupera o número de bancos no arquivo compactado Err := GetDBCount(DirSource, ExtractFileName(TxtPDB.Text), DBCount); if Err>0 then begin ShowMessage('Erro de processamento: '+IntToStr(Err));
exit; end;
ShowMessage('Número de Bancos no arquivo Compactado: '+IntToStr(DBCount));
SyncAnywhere v1.22149
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
// Apresenta os nomes dos bancos armazenados em PDBPack for x:=0 to DBCount-1 do begin Err := GetDBName(DirSource, ExtractFileName(TxtPDB.Text), x, Name); if Err>0 then
begin ShowMessage('Erro na recuperação do nome do banco: '+IntToStr(Err)); exit; end;
ShowMessage(Name); end;
// Extrai apenas um banco de dados do arquivo compactado Err := UnpackOneDB(DirSource, ExtractFileName(TxtPDB.Text), DirSource,'ClientesDB'); if Err>0 then begin ShowMessage('Erro de Descompactação: '+IntToStr(Err)); exit;
end;
// Teste foi completado com sucesso! ShowMessage('O arquivo foi descompactado com Sucesso!');end;
3.2.3 Funções no SyncAnywhere para o Delphi
3.2.3.1 PackSetMaxDataBlock
procedure PackSetMaxDataBlock(Size: Integer);
Unit
SyaPack
Comentários
Configura o tamanho máximo do bloco de dados que será usado paracompactação. Por default, o SyncAnywhere compacta blocos de 30000 bytes paraotimizar a taxa de compressão. Esta função deve ser usada quando o Palm que for
descompactar o arquivo seja M100, Zire ou outro com memória igual ou inferior a 2MB.QUANDO ESTIVER GERANDO ARQUIVOS COMPACTADOS PARA ESTES MODELOS,
O PARÂMETRO SIZE *NÃO DEVE* SER MAIOR QUE 2500 BYTES POR CAUSA DOTAMANHO DO TAMANHO DO "HEAP" (MEMÓRIA DINÂMICA DO PALMOS) QUE ÉDISPONIBILIZADA PARA MODELOS COM MEMÓRIA IGUAL OU INFERIOR A 2MB.
SE VOCÊ USAR UM VALOR MAIOR, A OPERAÇÃO DE DESCOMPACTAÇÃO NO PALMPODE FALHAR, RETORNANDO ERROS 32790 A 32793. PARA APLICAÇÕESGRANDES, O TAMANHO DEVE FICAR ENTRE 500 E 1000 BYTES.
Parâmetros
Software no Servidor 150
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
Size: Configura o tamanho do bloco de dados que será compactado de cada vez.ATENTE PARA A OBSERVAÇÃO ACIMA NO CASO DE PALMS COM MEMÓRIA IGUALOU INFERIOR A 2MB.
3.2.3.2 PackSetCheckSum
procedure PackSetCheckSum(Enabled: Boolean);
Unit
SyaPack
Comentários
Habilita ou desabilita a gravação de bytes de verificação (CheckSum) no banco dedados compactado.
Parâmetros
Enabled: True, habilita CheckSum; False, desabilita.
3.2.3.3 PackStart
function PackStart(Directory, PDBFilename, DatabaseName, CreatorID: String):Integer;
Unit
SyaPack
Comentários
Informa ao SyncAnywhere que uma operação de compactação irá começar. Vocêdeve usar este comando antes de utilizar a função PackDB para compactar bancos dedados Palm.
Parâmetros
Directory: Diretório onde será gerado o arquivo PDB com os bancoscompactados
PDBFilename : Nome do arquivo PDB que será geradoDatabaseName: Nome do banco de dados PalmCreatorID: CreatorID que será associado ao arquivo PDB gerado
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
SyncAnywhere v1.22151
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
3.2.3.4 PackDB
function PackDB(DirSource: String; SourcePDB: String; BlockSize: Integer):Integer;
Unit
SyaPack
Comentários
Compacta um arquivo PDB. Antes de usar PackDB, é necessário iniciar o processode compactação através da chamada à função PackStart.
Parâmetros
DirSource: Diretório onde está localizado o arquivo PDB a ser compactadoSourcePDB: Nome do arquivo PDB a ser compactado
BlockSize: Tamanho máximo do registro que será gerado no arquivo PDBcompactado. Este valor normalmente deve ser em torno de 5000, que representa 5000bytes em cada registro e pode ser configurado em função da qualidade de transmissãoda linha telefônica ou celular. Há locais onde é melhor que este valor seja menor, emtorno de 1000, para minimizar erros na transmissão. O tamanho mínimo é 50 bytes e omáximo 30000.
OBSERVAÇÃO IMPORTANTE: QUANDO ESTIVER GERANDO ARQUIVOSCOMPACTADOS PARA PALMS COM MEMÓRIA IGUAL OU INFERIOR A 2MB, COMO
M100, ZIRE, ETC, ESTE VALOR *NÃO DEVE* SER MAIOR QUE 2500 BYTES PORCAUSA DO TAMANHO DO TAMANHO DO "HEAP" (MEMÓRIA DINÂMICA DOPALMOS) QUE É DISPONIBILIZADA PARA MODELOS COM MEMÓRIA IGUAL OUINFERIOR A 2MB. SE VOCÊ USAR UM VALOR MAIOR, A OPERAÇÃO DE
DESCOMPACTAÇÃO NO PALM PODE FALHAR, RETORNANDO ERROS 32790 A32793. PARA APLICAÇÕES GRANDES, O TAMANHO DEVE FICAR ENTRE 500 E1000 BYTES.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indica
erro cujo código está descrito em uma seção mais adiante.
3.2.3.5 PackFinish
function PackFinish: Integer;
Unit
SyaPack
Comentários
Finaliza a operação de compactação. Quando já tiver utilizado a função PackDB
Software no Servidor 152
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
para todos os arquivos PDB que deseja compactar, é necessário executar PackFinish parafinalizar a compactação.
Parâmetros
Nenhum
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
3.2.3.6 GetDBCount
function GetDBCount(DirSource: String; SourcePDB: String; var DBCount:Integer): Integer;
Unit
SyaUnpack
Comentários
Recupera o número de bancos de dados armazenados no arquivo compactado. Onúmero de bancos de dados no arquivo compactado só pode ser recuperado dosPDBs gerados pelo SyncAnywhere a partir da versão 1.17.
Parâmetros
DirSource: Diretório onde está localizado o arquivo PDB compactadoSourcePDB: Nome do arquivo PDB compactadoDBCount: Passe neste parâmetro uma variável do tipo Integer para ser
carregada com o número de bancos de dados que estão compactados dentro do arquivoPDB.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
3.2.3.7 GetDBName
function GetDBName(DirSource: String; SourcePDB: String; Indx: Integer; varName: String): Integer;
Unit
SyaUnpack
Comentários
SyncAnywhere v1.22153
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
Recupera o nome do banco de dados no arquivo compactado, identificado peloparâmetro Indx. O número de bancos de dados no arquivo compactado só podeser recuperado dos PDBs gerados pelo SyncAnywhere a partir da versão 1.17.
Parâmetros
DirSource: Diretório onde está localizado o arquivo PDB compactadoSourcePDB: Nome do arquivo PDB compactadoIndx: Índice do banco de dados dentro do arquivo compactado. O primeiro banco
de dados tem índice ZERO.Name: Passe neste parâmetro uma variável do tipo String para ser carregada
com o nome do banco de dados.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
3.2.3.8 CheckDB
function CheckDB(DirSource: String; SourcePDB: String): Integer;
Unit
SyaUnpack
Comentários
Verifica a estrutura de um PDB compactado gerado pelo SyncAnywhere. A função
verifica a integridade do número de registros no banco e CheckSum (se habilitado).
Parâmetros
DirSource: Diretório onde está localizado o arquivo PDB compactadoSourcePDB: Nome do arquivo PDB compactado
Retorno
ZERO indica que o PDB está íntegro na sua estrutura.
UM indica que o PDB está íntegro na sua estrutura, mas o CheckSum estádesabilitado, portanto ainda pode haver erro nos registros transferidos.
> UM é o código de erro da verificação do PDB.
3.2.3.9 UnpackDB
function UnpackDB(DirSource: String; SourcePDB: String; DirDest: String):Integer;
Unit
Software no Servidor 154
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
SyaUnpack
Comentários
Descompacta um arquivo PDB gerado pelo SyncAnywhere no Palm ou no Desktop,
gravando todos os arquivos PDB que estão contidos nele no diretório indicado porDirDest.
Parâmetros
DirSource: Diretório onde está localizado o arquivo PDB compactadoSourcePDB: Nome do arquivo PDB compactadoDirDest: Diretório onde serão gravados os arquivos PDB que estão compactados
dentro do arquivo PDB.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
3.2.3.10 UnpackOneDB
function UnpackOneDB(DirSource: String; SourcePDB: String; DirDest: String;DBName: String): Integer;
Unit
SyaUnpack
Comentários
Descompacta apenas um banco de dados do arquivo compactado.
Parâmetros
DirSource: Diretório onde está localizado o arquivo PDB compactadoSourcePDB: Nome do arquivo PDB compactado
DirDest: Diretório onde serão gravados os arquivos PDB que estão compactadosdentro do arquivo PDB.
DBName: Nome do banco de dados que será descompactado.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indica
erro cujo código está descrito em uma seção mais adiante.
3.2.3.11 PackPRC
function PackPRC(DirSource: String; SourcePRC: String; DirDest, DestPDBFile,DestDBName, DestCreatorID: String; BlockSize: Integer; CheckSum: Boolean):Integer;
SyncAnywhere v1.22155
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
Unit
SyaPackPRC
Comentários
Compacta uma aplicação Palm (PRC) em um banco de dados (PDB) paratransferencia ao Palm via FTP. Apenas uma aplicação pode ser compactada em um bancode dados e a aplicação não pode ser colocada junto com outros bancos de dados.
Parâmetros
DirSource: Diretório onde está localizado a aplicação (PRC)
SourcePRC: Nome do arquivo PRCDirDest: Diretório onde será gravado o arquivo PDB que com a aplicação
compactadaDestPDBFile: Nome do Arquivo PDB que será gerado com a aplicação
compactada. O nome deve terminar com a extensão ".PDB"DestDBName: Nome do Banco de Dados que será gerado com a aplicação
compactada. Este nome será usado no Palm para descompactar a aplicação. Atenção:
este não é o nome da aplicação. O nome da aplicação foi gerado pelacompilação do seu projeto em sua ferramenta de desenvolvimento
DestCreatorID : CreatorID do Banco de Dados contendo a aplicação compactadaBlockSize: Tamanho máximo do registro que será gerado no arquivo PDB
compactado. Este valor normalmente deve ser em torno de 5000, que representa 5000bytes em cada registro e pode ser configurado em função da qualidade de transmissãoda linha telefônica ou celular. Há locais onde é melhor que este valor seja menor, emtorno de 1000, para minimizar erros na transmissão. O tamanho mínimo é 50 bytes e o
máximo 30000.CheckSum: True, habilita CheckSum; False, desabilita
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
3.2.3.12 SetRecordUIDSupport
procedure PackSetCheckSum(Enabled: Boolean);
Unit
SyaGlobal
Comentários
Habilita a gravação do UniqueID de cada registro do banco de dados. O UniqueIDé uma informação não utilizada pela maioria das ferramentas, mas se por algum motivosua aplicação Palm usa esta informação, você precisa habilitar o uso com esta função.Por default, a gravação do UniqueID está desabilitada para economizar espaço nobanco de dados compactado gerado.
Software no Servidor 156
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
Atenção:
- O uso desta função torna o SyncAnywhereincompatível com bancos de dados compactados sem o uso destafunção. Para que o SyncAnywhere seja compatível com bancos dedados compactados sem o UniqueID, é necessário desabilitar osuporte ao UniqueID.
- É necessário habilitar a gravação do UniqueID nacompactação e descompactação de dados.
Parâmetros
Enabled: True, habilita gravação do UniqueID; False, desabilita.
3.3 Visual Basic
3.3.1 Instalação
O suporte do SyncAnywhere ao Visual Basic é feito por um componente COM queé instalado e registrado automaticamente na sua máquina pelo programa de instalaçãodo SyncAnywhere. Na sua aplicação VB que for utilizar o SyncAnywhere, é necessárioadicionar a Type Library do SyncAnywhere no menu Project, References da sua
aplicação VB. Neste menu, clique no botão Browse e mova-se até o diretório doSyncAnywhere\VB\SyncAnywhereCOM e selecione o arquivo SyncAnywhere.tlb .Certifique-se que o SyncAnywhere foi adicionado à lista de referências da sua aplicação.Esta operação é necessária para que sua aplicação possa utilizar o objeto COM doSyncAnywhere.
Para distribuir sua aplicação que faz uso do SyncAnywhere ao seu cliente, vocêprecisa enviar a DLL SyncAnywhere.dll que se encontra no diretório
SyncAnywhere\VB\SyncAnywhereCOM junto com sua aplicação, copia-la nodiretório C:\Windows\System ou C:\Winnt\System32 e registra-la no computadordo seu cliente. O registro pode ser feito automaticamente pelo programa de instalaçãoque você estiver utilizando, como por exemplo o InstallShield ou InnoSetup, oumanualmente, abrindo uma janela DOS, movendo-se até o diretórioC:\Windows\System ou C:\Winnt\System32 e utilizar o comando REGSVR32SYNCANYWHERE.DLL . Este procedimento é obrigatório ou sua aplicação não poderáutilizar o objeto COM do SyncAnywhere
3.3.2 Utilização
Para compactar dados, você deve ter os arquivos PDB já criados para poderutilizar como parâmetro das funções de compactação. Se você não sabe como criar PDBsdo Palm com o Visual Basic, conheça o produto PDBDataManager versão COM, tambémdesenvolvido pela Cialogica Tecnologia, no site www.cialogica.com.br.
SyncAnywhere v1.22157
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
A aplicação exemplo sob o diretório VB do SyncAnywhere mostra como utilizar oSyncAnywhere para compactar e descompactar bancos de dados Palm.
Inicialmente, devemos criar uma variável que referencie o objeto COM doSyncAnywhere:
' Declaração do Objeto SyncAnywhereDim Sya As SyncAnywhere.SyncAnywhere
PARA APLICAÇÕES GRANDES, O TAMANHO DEVE FICAR ENTRE 500 E 1000BYTES.
Código para compactação, no botão Compacta da aplicação exemplo:
Private Sub BtCompacta_Click()
Dim Err As Integer
' Cria o objeto SyncAnywhere Set Sya = New SyncAnywhere.SyncAnywhere
' Inicia a compactação
Err = Sya.PackStart(TxtDir.Text, "PDBPack.pdb", "PDBPack", "PDBP") If Err > 0 Then MsgBox ("Erro de início no processo de compactação!") Exit Sub End If
' Compacta os Arquivos PDB ' A função PackDB encontra-se dentro da unit SyaPack
' Parâmetros ' TxtDir.Text - Diretório onde os arquivos PDB a serem ' compactados estão localizados ' ProdutosDB.pdb e ClientesDB.pdb - São os arquivos PDB ' a serem compactados ' 5000 - É o tamanho máximo em bytes de cada registro ' compactado dentro do banco PDBPack ' Você pode mudar este número em função da qualidade
' de transmissão em sua região. O número máximo é 30000. ' Valores maiores proporcionam menos registros no banco ' de dados, mas podem ocasionar problemas de transmissão ' em linhas com menor qualidade. Err = Sya.PackDB(TxtDir.Text, "ClientesDB.pdb", 5000) If Err > 0 Then MsgBox ("Erro compactando ProdutosDB.pdb: " + Str(Err)) Exit Sub
End If
Err = Sya.PackDB(TxtDir.Text, "ProdutosDB.pdb", 5000) If Err > 0 Then MsgBox ("Erro compactando ProdutosDB.pdb: " + Str(Err)) Exit Sub End If
Software no Servidor 158
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
' Finaliza a compactação Sya.PackFinish
MsgBox ("Fim de Compactação dos Arquivos PDB! Verifique o arquivo compactado nodiretório informado.")
End Sub
Código para descompactação, no botão Descompacta da aplicação exemplo:
Private Sub BtDescompacta_Click()
Dim DirSource As String
Dim SourcePDB As String Dim Err As Integer Dim Pos As Integer Dim x As Integer
' Cria o objeto SyncAnywhere Set Sya = New SyncAnywhere.SyncAnywhere
' Extrai o diretório onde está o Arquivo PDB Compactado For x = Len(TxtPDB.Text) To 1 Step -1 If Mid(TxtPDB.Text, x, 1) = "\" Then Pos = x Exit For End If Next
DirSource = Left(TxtPDB.Text, Pos - 1) SourcePDB = Mid(TxtPDB.Text, Pos + 1, Len(TxtPDB.Text) - Pos)
' Extrai os arquivos PDB inseridos no arquivo PDB Compactado ' UnpackDB está contida na unit SyaUnpack que deve ser adicionada à 'usesclause' ' Parâmetros:
' DirSource - É o diretório onde está armazenado o arquivo PDB Compactado ' ExtractFileName(TxtPDB.Text) - É o nome do arquivo PDB Compactado ' ..\TestDB... - É o local onde os arquivos serão Descompactados Err = Sya.UnpackDB(DirSource, SourcePDB, "..\TestDB") If Err > 0 Then MsgBox ("Erro de Descompactação: " + Str(Err)) Exit Sub End If
MsgBox ("Arquivos foram Descompactados com Sucesso! Verifique no diretórioinformado.")
End Sub
ATENÇÃO: Quando for gerar arquivos compactados paraPalm M100 ou Zire ou qualquer outro modelo com
SyncAnywhere v1.22159
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
memória igual ou inferior a 2MB, você deve utilizar afunção PackSetMaxDataBlock ANTES de usar a funçãoPackDB, passando como parâmetro o tamanho máximode 2500 Bytes (em aplicações grandes, use de 500 a1000 bytes), além disso, o parâmetro BlockSize dafunção PackDB deve também ter o tamanho máximo de2500 Bytes ou a operação de descompactação nestesmodelos de Palm poderá falhar por falta de memóriadinâmica (HEAP). Estes modelos tem memória limitada ea alocação frequentemente falha com blocos muitograndes de dados. Nos modelos mais novos, com 8MB dememória ou mais, a memória dinâmica é bem maior,portanto menos suscetível a falhas.
No botão Analisar PDBPack, há um código para encontrar os bancos de dados
que estão compactados dentro do arquivo PDB e também para descompactar apenas umdeles:
Private Sub BtPDBPack_Click()
Dim DirSource As String Dim Name As String Dim Err As Integer
Dim DBCount As Long Dim Pos As Integer Dim x As Integer
' Cria o objeto SyncAnywhere Set Sya = New SyncAnywhere.SyncAnywhere
' Extrai o diretório onde está o Arquivo PDB Compactado
For x = Len(TxtPDB.Text) To 1 Step -1 If Mid(TxtPDB.Text, x, 1) = "\" Then Pos = x Exit For End If Next
' Extrai o diretório onde está o Arquivo PDB Compactado
DirSource = Left(TxtPDB.Text, Pos - 1) SourcePDB = Mid(TxtPDB.Text, Pos + 1, Len(TxtPDB.Text) - Pos)
' Recupera o número de bancos compactados no arquivo PDB Err = Sya.GetDBCount(DirSource, SourcePDB, DBCount) If Err > 0 Then MsgBox ("Erro de processamento: " + Str(Err)) Exit Sub
Software no Servidor 160
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
End If
MsgBox "Número de Bancos no arquivo Compactado: " + Str(DBCount)
' Apresenta os nomes dos bancos compactados em PDBPack
For x = 0 To DBCount - 1 Err = Sya.GetDBName(DirSource, SourcePDB, x, Name) If Err > 0 Then MsgBox ("Erro de processamento: " + Str(Err)) Exit Sub End If
MsgBox Name
Next
' Descompacta apenas um banco de dados do arquivo PDB Err = Sya.UnpackOneDB(DirSource, SourcePDB, DirSource, "ClientesDB") If Err > 0 Then MsgBox ("Erro de Descompactação: " + Str(Err)) Exit Sub
End If
MsgBox ("Arquivo foi descompactado com Sucesso!")
End Sub
3.3.3 Funções do objeto COM do SyncAnywhere
3.3.3.1 PackSetMaxDataBlock
Sub PackSetMaxDataBlock(Size As Integer)
Comentários
Configura o tamanho máximo do bloco de dados que será usado paracompactação. Por default, o SyncAnywhere compacta blocos de 30000 bytes paraotimizar a taxa de compressão. Esta função deve ser usada quando o Palm que fordescompactar o arquivo seja M100, Zire ou outro com memória igual ou inferior a 2MB.QUANDO ESTIVER GERANDO ARQUIVOS COMPACTADOS PARA ESTES MODELOS,
O PARÂMETRO SIZE *NÃO DEVE* SER MAIOR QUE 2500 BYTES POR CAUSA DO
TAMANHO DO TAMANHO DO "HEAP" (MEMÓRIA DINÂMICA DO PALMOS) QUE ÉDISPONIBILIZADA PARA MODELOS COM MEMÓRIA IGUAL OU INFERIOR A 2MB.SE VOCÊ USAR UM VALOR MAIOR, A OPERAÇÃO DE DESCOMPACTAÇÃO NO PALMPODE FALHAR, RETORNANDO ERROS 32790 A 32793. PARA APLICAÇÕESGRANDES, O TAMANHO DEVE FICAR ENTRE 500 E 1000 BYTES.
Parâmetros
Size: Configura o tamanho do bloco de dados que será compactado de cada vez.ATENTE PARA A OBSERVAÇÃO ACIMA NO CASO DE PALMS COM MEMÓRIA IGUALOU INFERIOR A 2MB.
SyncAnywhere v1.22161
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
3.3.3.2 PackSetCheckSum
Sub PackSetCheckSum(Enabled As Boolean)
Comentários
Habilita ou desabilita a gravação de bytes de verificação (CheckSum) no banco dedados compactado.
Parâmetros
Enabled: True, habilita CheckSum; False, desabilita.
3.3.3.3 PackStart
Function PackStart(Directory As String, PDBFilename As String, DatabaseNameAs String, CreatorID As String) As Integer
Comentários
Informa ao SyncAnywhere que uma operação de compactação irá começar. Vocêdeve usar este comando antes de utilizar a função PackDB para compactar bancos dedados Palm.
Parâmetros
Directory: Diretório onde será gerado o arquivo PDB com os bancoscompactados
PDBFilename : Nome do arquivo PDB que será geradoDatabaseName: Nome do banco de dados PalmCreatorID: CreatorID que será associado ao arquivo PDB gerado
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
3.3.3.4 PackDB
Function PackDB(DirSource As String, SourcePDB As String, BlockSize AsInteger) As Integer
Comentários
Compacta um arquivo PDB. Antes de usar PackDB, é necessário iniciar o processode compactação através da chamada à função PackStart.
Parâmetros
DirSource: Diretório onde está localizado o arquivo PDB a ser compactado
Software no Servidor 162
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
SourcePDB: Nome do arquivo PDB a ser compactadoBlockSize: Tamanho máximo do registro que será gerado no arquivo PDB
compactado. Este valor normalmente deve ser em torno de 5000, que representa 5000bytes em cada registro e pode ser configurado em função da qualidade de transmissãoda linha telefônica ou celular. Há locais onde é melhor que este valor seja menor, em
torno de 1000, para minimizar erros na transmissão. O tamanho mínimo é 50 bytes e omáximo 30000.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
3.3.3.5 PackFinish
Function PackFinish() As Integer
Comentários
Finaliza a operação de compactação. Quando já tiver utilizado a função PackDBpara todos os arquivos PDB que deseja compactar, é necessário executar PackFinish para
finalizar a compactação.
Parâmetros
Nenhum
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
3.3.3.6 GetDBCount
Function GetDBCount(DirSource As String, SourcePDB As String, ByRef DBCountAs Long) As Integer
Comentários
Recupera o número de bancos de dados armazenados no arquivo compactado. Onúmero de bancos de dados no arquivo compactado só pode ser recuperado dosPDBs gerados pelo SyncAnywhere a partir da versão 1.17.
Parâmetros
DirSource: Diretório onde está localizado o arquivo PDB compactadoSourcePDB: Nome do arquivo PDB compactadoDBCount: Passe neste parâmetro uma variável do tipo Long para ser carregada
com o número de bancos de dados que estão compactados dentro do arquivo PDB.
Retorno
SyncAnywhere v1.22163
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
3.3.3.7 GetDBName
Function GetDBName(DirSource As String, SourcePDB As String, Indx AsInteger, ByRef Name As String) As Integer
Comentários
Recupera o nome do banco de dados no arquivo compactado, identificado peloparâmetro Indx. O número de bancos de dados no arquivo compactado só podeser recuperado dos PDBs gerados pelo SyncAnywhere a partir da versão 1.17.
Parâmetros
DirSource: Diretório onde está localizado o arquivo PDB compactadoSourcePDB: Nome do arquivo PDB compactadoIndx: Índice do banco de dados dentro do arquivo compactado. O primeiro banco
de dados tem índice ZERO.Name: Passe neste parâmetro uma variável do tipo String para ser carregada
com o nome do banco de dados.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
3.3.3.8 CheckDB
Function CheckDB(DirSource As String, SourcePDB As String) As Integer
Comentários
Verifica a estrutura de um PDB compactado gerado pelo SyncAnywhere. A funçãoverifica a integridade do número de registros no banco e CheckSum (se habilitado).
Parâmetros
DirSource: Diretório onde está localizado o arquivo PDB compactadoSourcePDB: Nome do arquivo PDB compactado
Retorno
ZERO indica que o PDB está íntegro na sua estrutura.
UM indica que o PDB está íntegro na sua estrutura, mas o CheckSum estádesabilitado, portanto ainda pode haver erro nos registros transferidos.
> UM é o código de erro da verificação do PDB.
Software no Servidor 164
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
3.3.3.9 UnpackDB
Function UnpackDB(DirSource As String, SourcePDB As String, DirDest AsString) As Integer
Comentários
Descompacta um arquivo PDB gerado pelo SyncAnywhere no Palm ou no Desktop,gravando todos os arquivos PDB que estão contidos nele no diretório indicado porDirDest.
Parâmetros
DirSource: Diretório onde está localizado o arquivo PDB compactadoSourcePDB: Nome do arquivo PDB compactadoDirDest: Diretório onde serão gravados os arquivos PDB que estão compactados
dentro do arquivo PDB.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
3.3.3.10 UnpackOneDB
Function UnpackOneDB(DirSource As String, SourcePDB As String, DirDest As
String, DBName As String) As Integer
Comentários
Descompacta apenas um banco de dados do arquivo compactado.
Parâmetros
DirSource: Diretório onde está localizado o arquivo PDB compactadoSourcePDB: Nome do arquivo PDB compactadoDirDest: Diretório onde serão gravados os arquivos PDB que estão compactados
dentro do arquivo PDB.DBName: Nome do banco de dados que será descompactado.
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
3.3.3.11 PackPRC
Function PackPRC(DirSource As String, SourcePRC As String, DirDest As String,DestPDBFile As String, DestDBName As String, DestCreatorID As String,
SyncAnywhere v1.22165
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
BlockSize As Integer, CheckSum As Boolean) As Integer
Comentários
Compacta uma aplicação Palm (PRC) em um banco de dados (PDB) para
transferencia ao Palm via FTP. Apenas uma aplicação pode ser compactada em um bancode dados e a aplicação não pode ser colocada junto com outros bancos de dados.
Parâmetros
DirSource: Diretório onde está localizado a aplicação (PRC)SourcePRC: Nome do arquivo PRCDirDest: Diretório onde será gravado o arquivo PDB que com a aplicação
compactadaDestPDBFile: Nome do Arquivo PDB que será gerado com a aplicação
compactada. O nome deve terminar com a extensão ".PDB"DestDBName: Nome do Banco de Dados que será gerado com a aplicação
compactada. Este nome será usado no Palm para descompactar a aplicação. Atenção:este não é o nome da aplicação. O nome da aplicação foi gerado pelacompilação do seu projeto em sua ferramenta de desenvolvimento
DestCreatorID : CreatorID do Banco de Dados contendo a aplicação compactadaBlockSize: Tamanho máximo do registro que será gerado no arquivo PDB
compactado. Este valor normalmente deve ser em torno de 5000, que representa 5000bytes em cada registro e pode ser configurado em função da qualidade de transmissãoda linha telefônica ou celular. Há locais onde é melhor que este valor seja menor, emtorno de 1000, para minimizar erros na transmissão. O tamanho mínimo é 50 bytes e omáximo 30000.
CheckSum: True, habilita CheckSum; False, desabilita
Retorno
ZERO indica que a função foi executada corretamente; maior que ZERO indicaerro cujo código está descrito em uma seção mais adiante.
3.3.3.12 SetRecordUIDSupport
Sub PackSetCheckSum(Enabled As Boolean)
Comentários
Habilita a gravação do UniqueID de cada registro do banco de dados. O UniqueIDé uma informação não utilizada pela maioria das ferramentas, mas se por algum motivosua aplicação Palm usa esta informação, você precisa habilitar o uso com esta função.Por default, a gravação do UniqueID está desabilitada para economizar espaço nobanco de dados compactado gerado.
Atenção:
- O uso desta função torna o SyncAnywhereincompatível com bancos de dados compactados sem o uso destafunção. Para que o SyncAnywhere seja compatível com bancos de
Software no Servidor 166
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
dados compactados sem o UniqueID, é necessário desabilitar osuporte ao UniqueID.
- É necessário habilitar a gravação do UniqueID nacompactação e descompactação de dados.
Parâmetros
Enabled: True, habilita gravação do UniqueID; False, desabilita.
SyncAnywhere v1.22167
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
3.4 Códigos de Erro no Servidor
Software no Servidor 168
© 2002-2005 by Cialogica Tecnologia em Informática Ltda
Compactação e Descompactação
Identificação do Erro Código Descrição do Erro
AppErrCreateDirectory 1001 Não é possível criar o diretório
AppErrSourceDirDoesNotExist 1002 Diretório origem não existe
AppErrPDBFileDoesNotExist 1003 Arquivo PDB não existe
AppErrNotAPDBFile 1004 Arquivo PDB está corrompido ou não é umarquivo PDB válido
AppErrPDBDoesNotHaveData 1005 O arquivo PDB não contém dados
AppErrNotASyncAnywhereDB 1006 O arquivo PDB não foi gerado peloSyncAnywhere
AppErrMemoryAllocation 1007 Erro de alocação de memória interna
AppErrGettingMoreData 1008 Erro ao obter dados para os buffers
AppErrInvalidBlockSize 1009 Tamanho do bloco não é válido, mín: 50,máx: 30000
AppErrDestPDBIsNotOpen 1010 Arquivo PDB não foi aberto
AppErrDestPDBIsNotForWrite 1011 Arquivo PDB não foi aberto para gravação
AppErrDestDBFull 1012 Arquivo PDB não pode mais conterregistros
AppErrRecordTooBig 1013 Registro é maior que o tamanho máximopermitido
AppErrPackingData 1014 Erro de compactação de dados
AppErrAppInfoInvalid 1015 AppInfoArea não é válida
AppErrSortInfoInvalid 1016 SortInfoArea não é válida
AppErrAppInfoTooBig 1017 AppInfoArea é muito grande
AppErrAppInfoIsCorrupt 1018 AppInfoArea está corrompida
AppErrSortInfoTooBig 1019 SortInfoArea é muito grande
AppErrPackAlreadyStarted 1020 A compactação já foi iniciada comPackStart
AppErrPackNotStarted 1021 A compactação não foi iniciada comPackStart
AppErrNoDBInfo 1022 O banco de dados compactado não contém
informação dos bancos de dadosarmazenados nele
AppErrDBNotFound 1023 O banco de dados compactado não contémo banco de dados com o nome especificadona função UnpackOneDB
AppErrCheckSum 1024 O banco de dados compactado estácorrompido
AppErrPRCFileDoesNotExist 1025 Arquivo PDB não existe no diretórioinformado
AppErrNotAPRCFile 1026 Arquivo PRC está corrompido ou não estáno formato de aplicação PalmOS
AppErrGettingResource 1027 Erro ao recuperar Resource do arquivo PRC
AppErrNumberOfRecords 1028 Nem todos os registros foram transferidos,banco de dados está corrompido