You are on page 1of 171

SyncAnywhere v1.

22
2002-2005 by Cialogica Tecnologia em Informtica Ltda

SyncAnywhere v1.22
by Marcio Alexandroni

SyncAnywhere um produto especialmente desenvolvido para utilizao no suporte a sincronizao de dados. Com ele possvel compactar vrios bancos de dados em um nico banco de dados Palm para que o envio dos dados seja mais rpido e simplificado, e conta tambm com a descompactao dos bancos de dados, alm de um cliente FTP para a transmisso e recepo de dados.

SyncAnywhere v1.22
2002-2005 by Cialogica Tecnologia em Informtica Ltda
Todos os direitos reservados. Nenhuma parte deste documento pode ser reproduzida em qualquer forma ou por qualquer meio, seja grfico, eletrnico ou mecnico, incluindo fotocpia, gravao em qualquer tipo de mdia, ou sistemas de armazenamento e recuperao de informaes sem a permisso do autor. Produtos que so referenciados neste documento so marcas registradas dos respectivos proprietrios. O autor reconhece as devidas marcas e seus proprietrios como legtimos autores dos produtos citados. Embora toda precauo tenha sido tomada na preparao deste documento, o autor no assume a responsabilidade por danos causados pelo uso da informao contida neste documento ou do uso indevido de programas e/ou cdigo fonte que seja gerado com a ajuda deste produto. Neste caso, o autor no pode ser responsabilizado por qualquer perda or dano ou qualquer outra acusao causada direta ou indiretamente pelo contedo deste documento.

SyncAnywhere v1.22

Tabela de Contedo
Parte I Introduo
1 Conceitos

................................................................................................................................... 7

2 Apresentao................................................................................................................................... 7 3 ltimas Atualizaes ................................................................................................................................... 7 4 Contedo do Pacote ................................................................................................................................... 9

Parte II Cliente Palm

12

1 Introduo ................................................................................................................................... 12 2 PocketStudio ................................................................................................................................... 12


Instalao ... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 12 Utilizao ... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 12 Funes do SyncAnywhere ... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 18 SyncAnywhereOpenRef .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 18 SyncAnywhereCloseRef .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 18 SyncAnywhereGetVersion .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 19 SyncAnywhereCheckSumOn .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 19 SyncAnywhereCheckSumOff .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 20 SyncAnywhereUIDSupportOn .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 20 SyncAnywhereUIDSupportOff .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 21 SyncAnywhereSetPackDataBlock .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 22 SyncAnywhereSetSendUpdateProc .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 22 SyncAnywhereSetReceiveUpdateProc .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 23 SyncAnywhereSetPackUpdateProc .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 24 SyncAnywhereSetUnpackUpdateProc .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 25 SyncAnywhereSetCreatorID .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 26 SyncAnywherePackDatabase .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 27 SyncAnywhereGetDBCount .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 28 SyncAnywhereGetDBName .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 28 SyncAnywhereCheckDatabase .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 29 SyncAnywhereUnpackDatabase .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 30 SyncAnywhereUnpackOneDB .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 30 SyncAnywhereUnpackApplication .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 31 SyncAnywhereSetNetLib .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 31 SyncAnywhereNetLibOpen .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 32 SyncAnywhereNetLibClose .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 32 SyncAnywhereModemDetect .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 33 SyncAnywhereDial .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 33 SyncAnywhereDialWireless .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 34 SyncAnywhereOpenActiveService .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 35 SyncAnywhereOpenService .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 35 SyncAnywhereHangup .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 36 SyncAnywhereFTPPassiveModeOn .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 36 SyncAnywhereFTPPassiveModeOff .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 37 SyncAnywhereSetTCPDelay .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 37 SyncAnywhereFTPOpen .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 38 2002-2005 by Cialogica Tecnologia em Informtica Ltda

Contedo

II

SyncAnywhereFTPClose .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 39 SyncAnywhereFTPCd .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 39 SyncAnywhereFTPMkd .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 40 SyncAnywhereFTPRmd .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 40 SyncAnywhereFTPDel .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 41 SyncAnywhereFTPPut .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 41 SyncAnywhereFTPGet .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 42 SyncAnywhereFTPRename .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 42 SyncAnywhereFTPGetLastResponse .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 43 SyncAnywhereFTPSetServerType .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 43 SyncAnywhereFTPDir .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 44 SyncAnywhereFTPGetFileCount .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 46 SyncAnywhereFTPFileExists .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 46 SyncAnywhereFTPDirectoryExists .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 47 SyncAnywhereFTPGetFileName .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 47

3 NSBasic

................................................................................................................................... 48

Instalao ... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 48 Utilizao ... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 48 Funes do SyncAnywhere ... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 54 SyncAnywhereCreateContext .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 54 SyncAnywhereDestroyContext .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 54 SyncAnywhereGetVersion .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 55 SyncAnywhereCheckSumOn .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 55 SyncAnywhereCheckSumOff .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 55 SyncAnywhereUIDSupportOn .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 56 SyncAnywhereUIDSupportOff .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 56 SyncAnywhereSetPackDataBlock .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 57 SyncAnywhereSetCreatorID .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 57 SyncAnywherePackDatabase .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 58 SyncAnywhereGetDBCount .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 58 SyncAnywhereGetDBName .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 59 SyncAnywhereCheckDatabase .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 60 SyncAnywhereUnpackDatabase .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 60 SyncAnywhereUnpackOneDB .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 61 SyncAnywhereUnpackApplication .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 61 SyncAnywhereNetLibOpen .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 62 SyncAnywhereNetLibClose .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 62 SyncAnywhereModemDetect .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 62 SyncAnywhereSetDialProperties .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 63 SyncAnywhereDial .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 63 SyncAnywhereOpenActiveService .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 64 SyncAnywhereOpenService .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 64 SyncAnywhereHangup .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 64 SyncAnywhereSetFTPProperties .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 65 SyncAnywhereFTPPassiveModeOn .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 65 SyncAnywhereFTPPassiveModeOff .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 66 SyncAnywhereSetTCPDelay .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 66 SyncAnywhereFTPOpen .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 66 SyncAnywhereFTPClose .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 67 SyncAnywhereFTPCd .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 67 SyncAnywhereFTPMkd .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 68 SyncAnywhereFTPRmd .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 68 SyncAnywhereFTPDel .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 68 SyncAnywhereFTPPut .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 69 2002-2005 by Cialogica Tecnologia em Informtica Ltda

II

III

SyncAnywhere v1.22
SyncAnywhereFTPGet .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 69 SyncAnywhereFTPRename .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 70 SyncAnywhereFTPGetLastResponse .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 70 SyncAnywhereFTPSetServerType .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 70 SyncAnywhereFTPDir .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 71 SyncAnywhereFTPGetFileCount .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 72 SyncAnywhereFTPFileExists .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 73 SyncAnywhereFTPDirectoryExists .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 73 SyncAnywhereFTPGetFileName .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 74

4 CodeWarrior................................................................................................................................... 74
Instalao ... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 74 Utilizao ... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 75 Funes do SyncAnywhere ... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 80 SyncAnywhereOpenRef .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 80 SyncAnywhereCloseRef .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 81 SyncAnywhereGetVersion .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 81 SyncAnywhereCheckSumOn .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 82 SyncAnywhereCheckSumOff .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 82 SyncAnywhereUIDSupportOn .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 82 SyncAnywhereUIDSupportOff .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 83 SyncAnywhereSetPackDataBlock .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 84 SyncAnywhereSetSendUpdateProc .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 85 SyncAnywhereSetReceiveUpdateProc .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 86 SyncAnywhereSetPackUpdateProc .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 87 SyncAnywhereSetUnpackUpdateProc .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 88 SyncAnywhereSetCreatorID .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 89 SyncAnywherePackDatabase .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 89 SyncAnywhereGetDBCount .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 90 SyncAnywhereGetDBName .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 91 SyncAnywhereCheckDatabase .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 91 SyncAnywhereUnpackDatabase .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 92 SyncAnywhereUnpackOneDB .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 92 SyncAnywhereUnpackApplication .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 93 SyncAnywhereSetNetLib .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 94 SyncAnywhereNetLibOpen .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 94 SyncAnywhereNetLibClose .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 95 SyncAnywhereModemDetect .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 95 SyncAnywhereDial .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 95 SyncAnywhereDialWireless .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 96 SyncAnywhereOpenActiveService .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 97 SyncAnywhereOpenService .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 98 SyncAnywhereHangup .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 98 SyncAnywhereFTPPassiveModeOn .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 99 SyncAnywhereFTPPassiveModeOff .. .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............... 99 SyncAnywhereSetTCPDelay .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. 100 SyncAnywhereFTPOpen .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. 100 SyncAnywhereFTPClose .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. 101 SyncAnywhereFTPCd .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. 101 SyncAnywhereFTPMkd .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. 102 SyncAnywhereFTPRmd .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. 102 SyncAnywhereFTPDel .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. 103 SyncAnywhereFTPPut .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. 103 SyncAnywhereFTPGet .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. 104 SyncAnywhereFTPRename .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. 104 2002-2005 by Cialogica Tecnologia em Informtica Ltda

Contedo

IV
105 105 106 108 108 109 110

SyncAnywhereFTPGetLastResponse .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. SyncAnywhereFTPSetServerType .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. SyncAnywhereFTPDir .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. SyncAnywhereFTPGetFileCount .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. SyncAnywhereFTPFileExists .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. SyncAnywhereFTPDirectoryExists .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. SyncAnywhereFTPGetFileName .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .............

5 HB++

................................................................................................................................... 110
110 110 117 117 117 117 118 118 119 119 120 121 121 122 122 123 123 123 124 124 126 126 126 127 127 128 128 129 129 130 130 130 131 131 132 132 133 133 135 135 136 136

Instalao ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. Utilizao ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. Funes do SyncAnywhere ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. SyncAnywhere.GetVersion .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. SyncAnywhere.CheckSumOn .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. SyncAnywhere.CheckSumOff .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. SyncAnywhere.SetPackDataBlock .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. SyncAnywhere.SetCreatorID .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. SyncAnywhere.PackDatabase .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. SyncAnywhere.GetDBCount .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. SyncAnywhere.GetDBName .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. SyncAnywhere.CheckDatabase .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. SyncAnywhere.UnpackDatabase .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. SyncAnywhere.UnpackOneDB .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. SyncAnywhere.UnpackApplication .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. SyncAnywhere.NetLibOpen .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. SyncAnywhere.NetLibClose .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. SyncAnywhere.ModemDetect .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. SyncAnywhere.Dial .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. SyncAnywhere.DialWireless .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. SyncAnywhere.OpenActiveService .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. SyncAnywhere.OpenService .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. SyncAnywhere.Hangup .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. SyncAnywhere.FTPPassiveModeOn .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. SyncAnywhere.FTPPassiveModeOff .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. SyncAnywhere.SetTCPDelay .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. SyncAnywhere.FTPOpen .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. SyncAnywhere.FTPClose .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. SyncAnywhere.FTPCd .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. SyncAnywhere.FTPMkd .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. SyncAnywhere.FTPRmd .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. SyncAnywhere.FTPDel .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. SyncAnywhere.FTPPut .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. SyncAnywhere.FTPGet .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. SyncAnywhere.FTPRename .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. SyncAnywhere.FTPGetLastResponse .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. SyncAnywhere.FTPSetServerType .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. SyncAnywhere.FTPDir .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. SyncAnywhere.FTPGetFileCount .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. SyncAnywhere.FTPFileExists .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. SyncAnywhere.FTPDirExists .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. SyncAnywhere.FTPGetFileName .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .............

6 Cdigos de................................................................................................................................... Erro do SyncAnywhere no Palm 138

Parte III Software no Servidor


2002-2005 by Cialogica Tecnologia em Informtica Ltda

146

IV

SyncAnywhere v1.22 1 Introduo ................................................................................................................................... 146 2 Delphi ................................................................................................................................... 146


146 146 149 149 150 150 151 151 152 152 153 153 154 154 155 Instalao ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. Utilizao ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. Funes no SyncAnywhere ..... .... ..... .... .....para .... .....o .... Delphi ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. PackSetMaxDataBlock .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. PackSetCheckSum .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. PackStart .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. PackDB .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. PackFinish .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. GetDBCount .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. GetDBName .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. CheckDB .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. UnpackDB .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. UnpackOneDB .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. PackPRC .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. SetRecordUIDSupport .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .............

3 Visual Basic ................................................................................................................................... 156


Instalao ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. Utilizao ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. Funes do objeto ..... .... COM ..... ....do .....SyncAnywhere .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. PackSetMaxDataBlock .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. PackSetCheckSum .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. PackStart .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. PackDB .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. PackFinish .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. GetDBCount .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. GetDBName .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. CheckDB .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. UnpackDB .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. UnpackOneDB .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. PackPRC .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. SetRecordUIDSupport .... .... ..... .... ..... .... ..... .... ..... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... .... ..... ..... .... ..... ............. 156 156 160 160 161 161 161 162 162 163 163 164 164 164 165

4 Cdigos de................................................................................................................................... Erro no Servidor 167

2002-2005 by Cialogica Tecnologia em Informtica Ltda

Parte

SyncAnywhere v1.22

1
1.1

Introduo
Conceitos
A idia principal das funes de compactao do SyncAnywhere que seja possvel criar um nico banco de dados contendo vrios bancos de dados Palm, compactados, para otimizao da transmisso entre o servidor e o Palm. Para compactar e descompactar dados no servidor, o desenvolvedor poder criar sua prpria aplicao que gere o banco de dados compactado e tambm descompacte os bancos de dados recebidos do Palm. O Cliente FTP incorporado na biblioteca do Palm permite que sua aplicao se comunique diretamente com um servidor FTP, enviando e recebendo bancos de dados e aplicaes, com total controle da transmisso, isto , se a linha cair, voc saber e tomar providncias para enviar ou receber os dados novamente. Outra caracterstica importante so as rotinas para deteco do modem quando acoplado ao Palm e tambm para fazer a discagem automaticamente, simplesmente informando o nmero de telefone, usurio e senha.

1.2

Apresentao
Seja bem-vindo ao SyncAnywhere , um produto especialmente desenvolvido para utilizao no suporte a sincronizao de dados. Com ele possvel compactar vrios bancos de dados em um nico banco de dados Palm para que o envio dos dados seja mais rpido e simplificado, e conta tambm com a descompactao dos bancos de dados. A compactao e descompactao de dados est disponvel na biblioteca Palm e tambm no desktop, com suporte a Delphi 5/6/7 e tambm ao Visual Basic. O SyncAnywhere conta tambm com um cliente FTP para a transmisso e recepo de dados. Agora tambm possvel compactar uma aplicao Palm (PRC) em um arquivo PDB, para agilizar a transmisso da aplicao para o Palm, e descompacta-la atravs de um simples comando na sua aplicao. A verso Trial no tem data limite de operao e tem as mesmas caractersticas da verso Full, mas apresentar uma tela que identifica a verso Trial toda vez que uma operao for executada com a biblioteca. Caso tenha interesse em adquirir o SyncAnywhere, entre em contato conosco pelo e-mail info@cialogica.com.

1.3

ltimas Atualizaes
Verso 1.22 Correo de Bug na SyaUnpack.pas, gravao dos flags do registro. Suporte a record flags na compactao no Desktop. Adicionado suporte ferramenta HB++. Adico das funes SyncAnywhereUIDSupportOn e SyncAnywhereUIDSupportOff.

2002-2005 by Cialogica Tecnologia em Informtica Ltda

Introduo

Verso 1.21 Adio da funo SyncAnywhereCheckDatabase para verificar o banco antes de descompactar. Adico da funo CheckDB no Delphi e VB para verificar o PDB antes de descompactar. Melhorias no controle de registros transferidos. Aumento do tamanho do buffer de descompresso. Adio da funo SyncAnywhereFTPSetServerType para que a funo SyncAnywhereFTPDir funcione com servidores FTP que emitem listagem de diretrios no padro MS-DOS. Adaptao da funo SyncAnywhereFTPDir para listagem padro Windows 2000. Adicionado suporte ao Delphi 2005. Correo da funo SyncAnywhereFTPDir para contornar problemas de quebra de Strings. Correo do percentual na funo de chamada s Callbacks. Estava passando de 100%. Tratamento da String 'total XXXXX' na funo SyncAnywhereFTPDir. Verso 1.20 Adio da funo SyncAnywhereFTPGetFileName. Adio da funo SyncAnywhereFTPDirectoryExists. Adio da funo SyncAnywhereFTPFileExists. Adio da funo SyncAnywhereFTPGetFileCount. Adio da funo SyncAnywhereFTPDir. Acrescentado "Trim" no nome do Servidor FTP na funo SyncAnywhereFTPOpen, para evitar que o usurio utilize espaos direita ou esquerda do endereo do Servidor. Adio da funo SyncAnywhereUnpackApplication. Adio das chamadas de Callback, SyncAnywhereSetPackUpdateProc e SyncAnywhereSetUnpackUpdateProc. Verso 1.19 Adio das chamadas de Callback, SyncAnywhereSetSendUpdateProc e SyncAnywhereSetReceiveUpdateProc. Adio da verificao do CheckSum do arquivo compactado no Servidor. Adio do CheckSum no arquivo compactado no Servidor. Alterao na funo GetDBCount e GetDBName; estavam deixando o PDB aberto. Adio da verificao do CheckSum do arquivo compactado na funo UnpackDB. Adio do CheckSum no arquivo compactado na funo PackDB. Adio da funo SyncAnywhereFTPRename. Adio da funo SyncAnywhereSetCreatorID para configurar o CreatorID dos bancos compactados pela aplicao Palm. Alterao na funo SyncAnywhereUnpackDatabase e UnpackDB para aceitar blocos com menos de 100 bytes. Alterao na funo SyncAnywhereDialWireless, aumento do Timeout para 180 segundos (era 30 segundos). Correo da funo SyncAnywhereUnpackDatabase para suportar bancos vazios, com AppInfo ou SortInfo. Verso 1.18

2002-2005 by Cialogica Tecnologia em Informtica Ltda

SyncAnywhere v1.22

Adio da funo SyncAnywhereOpenActiveService. Suporte a NSBasic verso 4. Adio da Funo SyncAnywhereDialWireless para discar para celulares e modems IR. Correo de bug na funo SyncAnywhereFTPClose. Adio da funo SyncAnywhereSetPackDataBlock. Correo de bug na funo SyncAnywhereUnpackOneDB. Correo de Memory Leak em SyncAnywherePackDatabase. Adico da funo SyncAnywhereSetPackDataBlock.

Verso 1.17 Comentrios nos exemplos atualizados. Suporte ao PocketStudio 2. Adio da funo SyncAnywhereGetDBCount. Adio da funo SyncAnywhereGetDBName. Adio da funo SyncAnywhereUnpackOneDB. Adio da funo GetDBCount. Adio da funo GetDBName. Adio da funo UnpackOneDB.

Verso 1.16 e anteriores foram liberadas antes de 25/10/2004.

1.4

Contedo do Pacote
Os diretrios que compem o SyncAnywhere so: CW : Exemplo das rotinas de compactao e FTP para o CodeWarrior. H um subdiretrio chamado Lib dentro desta pasta com o arquivo header de acesso SharedLib que deve ser includo na sua aplicao CodeWarrior. Delphi : Aplicao exemplo Delphi para compactao e descompactao de dados. Dentro deste diretrio h um subdiretrio chamado Lib que contm subdiretrios D5, D6 e D7 que correspondem s bibliotecas da parte desktop do SyncAnywhere para o Delphi 5, 6 e 7, respectivamente. NSBasic : Exemplo das rotinas de compactao e FTP para o NSBasic. O arquivo SyncAnywhere.inf a declarao das funes da SharedLib do SyncAnywhere que deve ser copiado para o diretrio NSBasic\Lib para que seja possvel a compilao do projeto no NSBasic. PocketStudio : Exemplo das rotinas de compactao e FTP para o PocketStudio. Sob este diretrio, h um subdiretrio chamado Lib que contm a unit SyaLib.pas que deve ser includa no seu projeto PocketStudio para uso das funes da SharedLib. SharedLib : SharedLib do SyncAnywhere que deve ser instalada no Palm para que sua aplicao possa acessar seus recursos. TestDB : Bancos de Dados Palm utilizados pelas aplicaes exemplo. H tambm duas aplicaes Palm para utilizao dos bancos de dados exemplo. A aplicao Clientes.prc utilizada tambm pelas aplicaes exemplo Palm para recupera-lo
2002-2005 by Cialogica Tecnologia em Informtica Ltda

Introduo

10

atravs do FTP. VB: Aplicao exemplo Visual Basic demonstrando o uso do componente COM do SyncAnywhere. Sob o diretrio SyncAnywhereCOM dentro deste diretrio, est localizado o componente COM ( SyncAnywhere.dll ) que voc deve distribuir com suas aplicaes e registra-lo na mquina do seu cliente.

2002-2005 by Cialogica Tecnologia em Informtica Ltda

Parte

II

Cliente Palm

12

2
2.1

Cliente Palm
Introduo
O Cliente SyncAnywhere para o Palm composto de uma SharedLib chamada SyncAnywhere.prc que usada pela sua aplicao para compactar e descompactar bancos de dados e para acesso a um servidor FTP. A biblioteca composta de funes com chamadas bem simples e cujo retorno indica o resultado do comando. Resultado ZERO significa que o comando foi executado com sucesso; resultado maior que ZERO indica um erro, cujo cdigo est documentado mais abaixo nesta seo. Voc deve instalar a biblioteca SyncAnywhere.prc nos Palms onde sua aplicao for fazer uso do SyncAnywhere.

2.2
2.2.1

PocketStudio
Instalao
A instalao do suporte do SyncAnywhere ao PocketStudio muito simples, basta colocar o diretrio onde est localizada a unit SyaLib.pas no campo Units Search do PocketStudio, no menu Tools , Environment Options , campo Units Search; voc deve adicionar o diretrio da unit na lista. Para utiliza-la, basta coloca-la na 'uses clause' da sua unit. Voc encontrar a unit SyaLib.pas no pacote do SyncAnywhere, sob o diretrio onde voc instalou o SyncAnywhere\PocketStudio\Lib .

2.2.2

Utilizao
A aplicao exemplo FTPTest sob o diretrio PocketStudio mostra como utilizar as funes da biblioteca para compactar dados e tambm para acessar um servidor FTP. No formulrio da aplicao, sero solicitados todos os dados para que seja possvel a conexo com o servidor FTP: O nmero de telefone para discagem ao servidor de comunicao, seja um RAS ou provedor Internet; Tipo de discagem, pulso ou tom; Nome de usurio e senha de acesso ao servidor RAS ou provedor Internet; O endereo IP ou nome do servidor FTP; O nome do usurio 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, necessrio criar variveis globais para armazenar a referncia SharedLib e tambm o contexto de acesso ela. Fazemos isso na unit EVN para que as variveis sejam acessveis na unit PPR e tambm na EVN: var

2002-2005 by Cialogica Tecnologia em Informtica Ltda

13

SyncAnywhere v1.22

RefNum: UInt16; // Referncia SharedLib do SyncAnywhere Context: UInt32; // Contexto de acesso SharedLib Nas funes StartApplication e StopApplication necessrio colocar cdigo para carregar e para descarregar a biblioteca. Se a biblioteca no for carregada, as funes no podem ser utilizadas ou causar erro na sua execuo. 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 cdigo no boto 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 conexo por Celulares ou Modem via Infravermelho, NO USE a // funo SyncAnywhereModemDetect, pois ela no ser capaz de // detectar a comunicao com o Celular. Esta funo deve ser usada // somente quando a conexo for feita atravs de Modem acoplado ao // Palm, ou celular via cabo // -----------------------------------------------------------------------PSField.SetText(FldStatus, 'Detectando Modem...');

2002-2005 by Cialogica Tecnologia em Informtica Ltda

Cliente Palm

14

Erro := SyncAnywhereModemDetect(RefNum, Context); if Erro>0 then begin PSField.SetText(FldStatus, 'Modem no detectado!'); exit; end; // Configura o CreatorID para criao 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 informaes 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, necessrio para que os bancos no 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);

2002-2005 by Cialogica Tecnologia em Informtica Ltda

15

SyncAnywhere v1.22

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 comunicao PSField.SetText(FldStatus, 'Discando'); // -----------------------------------------------------------------------// Para conexo por Celulares ou Modem via Infravermelho, NO USE a // funo SyncAnywhereModemDial, pois ela no far a discagem. Ao // invs de usar esta // funo, crie a conexo com o celular na // aplicao Prefs do Palm, opo Network e configure l o telefone, o // modo de conexo, usurio e senha, e utilize a funo // SyncAnywhereOpenService(NomeDaConexo) para efetuar // a discagem. O nome no parmetro deve ser exatamente igual ao // nome do servio criado, respeitando-se as letras maisculas e // minsculas. // Caso tenha alguma dvida, 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 comunicao SyncAnywhereNetLibClose(RefNum, Context); exit; end; // Conecta no Servidor FTP PSField.SetText(FldStatus, 'Conectando no Servidor FTP...'); Erro := SyncAnywhereFTPOpen(RefNum, Context, ServidorFTP, 0, UsuarioFTP,

2002-2005 by Cialogica Tecnologia em Informtica Ltda

Cliente Palm

16

SenhaFTP, 10); if Erro>0 then begin StrCopy(Str, 'Erro de Conexo: '); StrIToA(Str2, Erro); StrCat(Str, Str2); PSField.SetText(FldStatus, Str); // Desconecta do Servidor de comunicao SyncAnywhereHangup(RefNum, Context); // Fecha Net.Lib SyncAnywhereNetLibClose(RefNum, Context); exit; end; // Comando GET de uma aplicao PSField.SetText(FldStatus, 'Recebendo Clientes.prc'); Erro := SyncAnywhereFTPGet(RefNum, Context, 'Clientes.prc'); if Erro>0 then begin StrCopy(Str, 'Erro de recepo: '); 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 Conexo FTP, se o envio teve sucesso Erro := SyncAnywhereFTPClose(RefNum, Context); end; // Desconecta do Servidor de comunicao SyncAnywhereHangup(RefNum, Context); // Fecha Net.Lib SyncAnywhereNetLibClose(RefNum, Context); PSField.SetText(FldStatus, 'Comunicao realizada com sucesso!'); end;

2002-2005 by Cialogica Tecnologia em Informtica Ltda

17

SyncAnywhere v1.22

J o boto Analisar PDBPack, mostra os bancos de dados compactados em PDBPack: 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 no foi encontrado, comande o Incio do FTP ou carregue o banco de dados PDBPack.pdb do diretrio TestDB no palm ou Emulador'); exit; end; // Verifica o nmero de bancos de dados Compactados em PDBPack Erro := SyncAnywhereGetDBCount(RefNum, Context, 'PDBPack', NumDBs); if Erro>0 then begin StrCopy(Str, 'Erro ao recuperar nmero de bancos: '); StrIToA(Str2, Erro); StrCat(Str, Str2); ShowMessage(Str); exit; end; // Apresenta nmero de Bancos StrIToA(Str2, NumDBs); StrCopy(Str, 'Nmero 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: ');

2002-2005 by Cialogica Tecnologia em Informtica Ltda

Cliente Palm

18

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
2.2.3.1

Funes do SyncAnywhere
SyncAnywhereOpenRef function SyncAnywhereOpenRef(var RefNum: UInt16; var Context: UInt32): Boolean; Comentrio Abre a referncia SharedLib. Parmetros RefNum : A referncia SharedLib ser retornada neste parmetro Context : O contexto de acesso SharedLib ser retornado neste parmetro Voc deve armazenar os dois parmetros em variveis globais pois ser necessrio utiliza-los em todas as chamadas s funes 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; Comentrio

2002-2005 by Cialogica Tecnologia em Informtica Ltda

19

SyncAnywhere v1.22

Fecha a referncia SharedLib. Parmetros RefNum : Referncia biblioteca SyncAnywhere Context : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . Retorno Boolean indicando se a biblioteca foi fechada corretamente. 2.2.3.3 SyncAnywhereGetVersion function SyncAnywhereGetVersion(RefNum: UInt16): UInt16; Comentrios Recupera a verso da biblioteca. A verso retornada como um nmero inteiro, onde a centena representa a verso e a dezena, a correo da verso, exemplo: a verso 113 representa a verso 1 da biblioteca, com a correo 13. Parmetros RefNum : Referncia biblioteca SyncAnywhere, recuperado na funo SyncAnywhereOpenRef . Retorno Inteiro representando a verso da biblioteca. 2.2.3.4 SyncAnywhereCheckSumOn function SyncAnywhereCheckSumOn(RefNum: UInt16; ClientContext: UInt32): UInt32; Comentrios Habilita a gravao de bytes de verificao de integridade nos registros do banco de dados compactado, para auxiliar na garantia da integridade dos dados transmitidos. Por default, a gravao dos bytes de verificao est desabilitada . O nmero de bytes de verificao de integridade gravados por registro 10. Parmetros RefNum : Referncia biblioteca SyncAnywhere ClientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo
2002-2005 by Cialogica Tecnologia em Informtica Ltda

Cliente Palm

20

SyncAnywhereOpenRef . Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.2.3.5 SyncAnywhereCheckSumOff function SyncAnywhereCheckSumOff(RefNum: UInt16; ClientContext: UInt32): UInt32; Comentrios Desabilita a gravao de bytes de verificao de integridade nos registros do banco de dados compactado (default). Parmetros RefNum : Referncia biblioteca SyncAnywhere ClientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.2.3.6 SyncAnywhereUIDSupportOn function SyncAnywhereUIDSupportOn(RefNum: UInt16; ClientContext: UInt32): UInt32; Comentrios Habilita a gravao do UniqueID de cada registro do banco de dados. O UniqueID uma informao no utilizada pela maioria das ferramentas, mas se por algum motivo sua aplicao usa esta informao, voc precisa habilitar o uso com esta funo. Por default, a gravao do UniqueID est desabilitada para economizar espao no banco de dados compactado gerado.

Ateno: - O uso desta funo torna o SyncAnywhere incompatvel com bancos de dados compactados sem o uso desta funo. Para que o SyncAnywhere seja compatvel com bancos de dados compactados sem o UniqueID, necessrio utilizar a funo
2002-2005 by Cialogica Tecnologia em Informtica Ltda

21

SyncAnywhere v1.22

SyncAnywhereUIDSupportOff. - necessrio tambm habilitar a gravao do UniqueID na sua aplicao que compacta e descompacta dados no servidor. - Quando quiser habilitar o suporte ao UniqueID, utilize esta funo logo aps abrir a biblioteca pois ela necessria para compactar e descompactar bancos de dados com UniqueID.
Parmetros RefNum : Referncia biblioteca SyncAnywhere ClientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.2.3.7 SyncAnywhereUIDSupportOff function SyncAnywhereUIDSupportOff(RefNum: UInt16; ClientContext: UInt32): UInt32; Comentrios Desabilita a gravao do UniqueID de cada registro do banco de dados. O UniqueID uma informao no utilizada pela maioria das ferramentas, mas se por algum motivo sua aplicao usa esta informao, voc precisa habilitar o uso com a funo SyncAnywhereUIDSupportOn . Por default, a gravao do UniqueID est desabilitada para economizar espao no banco de dados compactado gerado.

Ateno: o uso do UniqueID torna o SyncAnywhere incompatvel com bancos de dados compactados sem o uso da funo SyncAnywhereUIDSupportOn.
Parmetros RefNum : Referncia biblioteca SyncAnywhere ClientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . Retorno

2002-2005 by Cialogica Tecnologia em Informtica Ltda

Cliente Palm

22

ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante.

2.2.3.8

SyncAnywhereSetPackDataBlock function SyncAnywhereSetPackDataBlock(RefNum: UInt16; ClientContext: UInt32; MaxDataBlock: UInt16): UInt32; Comentrios Esta funo de extrema importncia se o arquivo tiver que ser descompactado em equipamentos com pouca memria como o Zire, M100, M105 ou qualquer outro que tenha 2MB de memria ou menos. Esses equipamentos tem muito pouca memria dinmica para alocao, assim, a quantidade de memria disponvel depende do tamanho da aplicao. O tamanho mximo do bloco compactado de dados deve ser configurado segundo sua necessidade em equipamentos com pouca memria e neste caso um valor de 500 bytes geralmente adequado aplicaes grandes. Parmetros RefNum : Referncia biblioteca SyncAnywhere ClientContext : Contexto de acesso biblioteca MaxDataBlock : Tamanho mximo (em bytes) do bloco de dados que ser compactado. O default 30000 bytes, mas para equipamentos com pouca memria este valor deve ser muito mais baixo, em torno de 500 bytes quando a aplicao executada grande ou at 2500 bytes se a aplicao for pequena. Os parmetros RefNum e ClientContext devem ter sido recuperados na funo SyncAnywhereOpenRef . Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante.

2.2.3.9

SyncAnywhereSetSendUpdateProc function SyncAnywhereSetSendUpdateProc(RefNum: UInt16; ClientContext: UInt32; UpdateProc: TUpdateProcedure): UInt32; Comentrios Configura uma procedure na sua aplicao que ser chamada pelo SyncAnywhere com o percentual do andamento do envio de dados ao servidor FTP. Parmetros RefNum : Referncia biblioteca SyncAnywhere ClientContext : Contexto de acesso biblioteca UpdateProc : Procedure com apenas um parmetro UInt16 para receber o

2002-2005 by Cialogica Tecnologia em Informtica Ltda

23

SyncAnywhere v1.22

percentual do andamento do envio de dados ao servidor FTP. Os parmetros RefNum e ClientContext devem ter sido recuperados na funo SyncAnywhereOpenRef . Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo 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 funo ShowStatus para receber o percentual de // envio de dados ao Servidor FTP SyncAnywhereSetSendUpdateProc(RefNum, Context, ShowStatus); ... ... end; 2.2.3.10 SyncAnywhereSetReceiveUpdateProc function SyncAnywhereSetReceiveUpdateProc(RefNum: UInt16; ClientContext: UInt32; UpdateProc: TUpdateProcedure): UInt32; Comentrios Configura uma procedure na sua aplicao que ser chamada pelo SyncAnywhere com o percentual do andamento do recebimento de dados ao servidor FTP. Parmetros RefNum : Referncia biblioteca SyncAnywhere ClientContext : Contexto de acesso biblioteca UpdateProc : Procedure com apenas um parmetro UInt16 para receber o

2002-2005 by Cialogica Tecnologia em Informtica Ltda

Cliente Palm

24

percentual do andamento do recebimento de dados ao servidor FTP. Os parmetros RefNum e ClientContext devem ter sido recuperados na funo SyncAnywhereOpenRef . Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo 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 funo ShowStatus para receber o percentual de // recebimento de dados do Servidor FTP SyncAnywhereSetReceiveUpdateProc(RefNum, Context, ShowStatus); ... ... end; 2.2.3.11 SyncAnywhereSetPackUpdateProc function SyncAnywhereSetPackUpdateProc(RefNum: UInt16; ClientContext: UInt32; UpdateProc: TUpdateProcedure): UInt32; Comentrios Configura uma procedure na sua aplicao que ser chamada pelo SyncAnywhere com o percentual do andamento da compactao do banco de dados. Parmetros RefNum : Referncia biblioteca SyncAnywhere ClientContext : Contexto de acesso biblioteca UpdateProc : Procedure com apenas um parmetro UInt16 para receber o

2002-2005 by Cialogica Tecnologia em Informtica Ltda

25

SyncAnywhere v1.22

percentual do andamento da compactao do banco de dados. Os parmetros RefNum e ClientContext devem ter sido recuperados na funo SyncAnywhereOpenRef . Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo 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 funo ShowStatus para receber o percentual da // compactao do banco de dados SyncAnywhereSetPackUpdateProc(RefNum, Context, ShowStatus); ... ... end; 2.2.3.12 SyncAnywhereSetUnpackUpdateProc function SyncAnywhereSetUnpackUpdateProc(RefNum: UInt16; ClientContext: UInt32; UpdateProc: TUpdateProcedure): UInt32; Comentrios Configura uma procedure na sua aplicao que ser chamada pelo SyncAnywhere com o percentual do andamento da descompactao do banco de dados. Parmetros RefNum : Referncia biblioteca SyncAnywhere ClientContext : Contexto de acesso biblioteca UpdateProc : Procedure com apenas um parmetro UInt16 para receber o

2002-2005 by Cialogica Tecnologia em Informtica Ltda

Cliente Palm

26

percentual do andamento da descompactao do banco de dados. Os parmetros RefNum e ClientContext devem ter sido recuperados na funo SyncAnywhereOpenRef . Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo 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 funo ShowStatus para receber o percentual da // descompactao do banco de dados SyncAnywhereSetUnpackUpdateProc(RefNum, Context, ShowStatus); ... ... end; 2.2.3.13 SyncAnywhereSetCreatorID function SyncAnywhereSetCreatorID(RefNum: UInt16; ClientContext: UInt32; CreatorID: PChar): UInt32; Comentrios Configura o CreatorID que ser usado para os arquivos compactados. Parmetros RefNum : Referncia biblioteca SyncAnywhere ClientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo

2002-2005 by Cialogica Tecnologia em Informtica Ltda

27

SyncAnywhere v1.22

SyncAnywhereOpenRef . CreatorID : O CreatorID, com exatamente quatro caracteres. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.2.3.14 SyncAnywherePackDatabase function SyncAnywherePackDatabase(RefNum: UInt16; ClientContext: UInt32; DBDest: PChar; DBSource: PChar; MaxBlockSize: UInt16): UInt32; Comentrios Compacta o banco de dados informado em DBSource, no banco de dados informado em DBDest. Parmetros RefNum : Referncia biblioteca SyncAnywhere ClientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . DBDest : Nome do banco de dados destino, onde ser compactado o banco de dados de origem. Ateno: O banco de dados destino deve ser apagado antes de chamar esta funo pela primeira vez. As chamadas sucessivas esta funo adicionam bancos de dados compactados DBDest , portanto na primeira vez que usar esta funo, certifique-se que ele no exista, para que a compactao inicie em um banco de dados novo. DBSource : Banco de dados origem, que ser compactado dentro de DBDest. MaxBlockSize : Tamanho mximo do registro que ser gerado no banco de dados DBDest . Este valor normalmente deve ser em torno de 5000, que representa 5000 bytes em cada registro e pode ser configurado em funo da qualidade de transmisso da linha telefnica ou celular. H locais onde melhor que este valor seja menor, em torno de 1000, para minimizar erros na transmisso. O tamanho mnimo 50 bytes e o mximo 30000. Observao importante: para os modelos M100, Zire e outros que tem memria igual ou inferior a 2MB, este parmetro no poder ser maior que 2500 bytes, ou retornar o erro appErrInvalidBlockSize. Estes modelos tem memria "Heap" (memria dinmica liberada pelo PalmOS) extremamente limitada e as alocaes de memria internas necessrias para compactao podem falhar se o valor for maior que 2500 bytes. Se o Banco de Dados tiver que ser descompactado em equipamentos deste tipo, no se esquea de configurar o tamanho do bloco de compactao com as funes SyncAnywhereSetPackDataBlock no Palm e PackSetMaxDataBlock no Servidor.

2002-2005 by Cialogica Tecnologia em Informtica Ltda

Cliente Palm

28

Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.2.3.15 SyncAnywhereGetDBCount function SyncAnywhereGetDBCount(RefNum: UInt16; ClientContext: UInt32; DBSource: PChar; var DBCount: UInt16): UInt32; Comentrios Recupera o nmero de bancos de dados compactados dentro do banco especificado no parmetro DBSource, na varivel informada no parmetro DBCount . O nmero de bancos de dados compactados s pode ser recuperado dos PDBs gerados pelo SyncAnywhere a partir da verso 1.17 . Parmetros RefNum : Referncia biblioteca SyncAnywhere ClientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . DBSource : O nome do banco de dados compactado com o SyncAnywhere. DBCount : Varivel do tipo UInt16 para receber o nmero de bancos de dados compactados. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.2.3.16 SyncAnywhereGetDBName function SyncAnywhereGetDBName(RefNum: UInt16; ClientContext: UInt32; DBSource: PChar; Indx: UInt16; DBName: PChar): UInt32; Comentrios Recupera o nome de bancos de dados compactado dentro do banco especificado no parmetro DBSource , na varivel informada no parmetro DBName , de acordo com o ndice do banco informado no parmetro Indx . O nome dos bancos de dados compactados s podem ser recuperados dos PDBs gerados pelo SyncAnywhere a partir da verso 1.17 . Parmetros RefNum : Referncia biblioteca SyncAnywhere ClientContext : Contexto de acesso biblioteca
2002-2005 by Cialogica Tecnologia em Informtica Ltda

29

SyncAnywhere v1.22

Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . 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 nmero de bancos de dados compactados, utilize a funo SyncAnywhereGetDBCount . DBName : O nome do banco de dados compactado retornado neste parmetro. Ateno: Este parmetro DEVE SER uma varivel PChar ou Array de Char alocada com no mnimo 32 caracteres. A biblioteca ir copiar o nome neste parmetro, no far alocao de memria para o retorno da mensagem. Se voc no alocar espao, poder causar um erro na sua aplicao e Reset no Palm . Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.2.3.17 SyncAnywhereCheckDatabase function SyncAnywhereCheckDatabase(RefNum: UInt16; ClientContext: UInt32; DBSource: PChar): UInt32; Comentrios Verifica a estrutura de um banco compactado gerado pelo SyncAnywhere. A funo verifica a integridade do nmero de registros no banco e CheckSum (se habilitado). Parmetros RefNum : Referncia biblioteca SyncAnywhere ClientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . 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 cdigo de erro da verificao do PDB.

2002-2005 by Cialogica Tecnologia em Informtica Ltda

Cliente Palm

30

2.2.3.18 SyncAnywhereUnpackDatabase function SyncAnywhereUnpackDatabase(RefNum: UInt16; ClientContext: UInt32; DBSource: PChar): UInt32; Comentrios Descompacta os bancos de dados para a memria do Palm. Ateno: Voc deve apagar os bancos de dados que sero descompactados antes que eles sejam descompactados por esta funo ou os registros sero adicionados aos registros dos bancos de dados se j existirem . Parmetros RefNum : Referncia biblioteca SyncAnywhere ClientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . DBSource : O nome do banco de dados compactado com o SyncAnywhere. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.2.3.19 SyncAnywhereUnpackOneDB function SyncAnywhereUnpackOneDB(RefNum: UInt16; ClientContext: UInt32; DBSource: PChar; DBName: PChar): UInt32; Comentrios Descompacta um nico banco de dados para a memria do Palm. Ateno: Voc deve apagar o banco de dados que ser descompactado antes que eles seja descompactado por esta funo ou os registros sero adicionados aos registros do banco de dados. Parmetros RefNum : Referncia biblioteca SyncAnywhere ClientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . DBSource : O nome do banco de dados compactado com o SyncAnywhere. DBName : O nome do banco de dados que ser extrado do banco compactado. Retorno
2002-2005 by Cialogica Tecnologia em Informtica Ltda

31

SyncAnywhere v1.22

ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.2.3.20 SyncAnywhereUnpackApplication function SyncAnywhereUnpackApplication(RefNum: UInt16; ClientContext: UInt32; DBSource: PChar): UInt32; Comentrios Descompacta a aplicao compactada em um Banco de Dados Palm (PDB) para a memria do Palm. Ateno: Voc deve apagar a aplicao que ser descompactada antes que ela seja descompactada por esta funo ou ser retornado um cdigo de erro. possvel utilizar SyncAnywhereSetUnpackUpdateProc para configurar uma funo da sua aplicao para mostrar o andamento da descompactao da aplicao. Parmetros RefNum : Referncia biblioteca SyncAnywhere ClientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . DBSource : O nome do banco de dados que contm a aplicao compactada com o SyncAnywhere. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.2.3.21 SyncAnywhereSetNetLib function SyncAnywhereSetNetLib(RefNum: UInt16; ClientContext: UInt32; NetLibRef: UInt16): UInt32; Comentrios Se voc iniciar a comunicao sem utilizar a funo SyncAnywhereDial , voc deve usar esta funo para informar a referncia Net.Lib aberta antes de usar as funes de comunicao do SyncAnywhere. Parmetros RefNum : Referncia biblioteca SyncAnywhere ClientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo
2002-2005 by Cialogica Tecnologia em Informtica Ltda

Cliente Palm

32

SyncAnywhereOpenRef . NetLibRef : A referncia Net.Lib. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.2.3.22 SyncAnywhereNetLibOpen function SyncAnywhereNetLibOpen(RefNum: UInt16; ClientContext: UInt32): UInt32; Comentrios Abre a biblioteca de comunicao do Palm. Esta funo deve ser chamada antes de qualquer outra funo de comunicao. Parmetros RefNum : Referncia biblioteca SyncAnywhere ClientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.2.3.23 SyncAnywhereNetLibClose function SyncAnywhereNetLibClose(RefNum: UInt16; ClientContext: UInt32): UInt32; Comentrios Fecha a biblioteca de comunicao do Palm. Esta funo deve ser chamada quando a comunicao no for mais necessria, geralmente a ltima funo a ser chamada no processo de comunicao. Parmetros RefNum : Referncia biblioteca SyncAnywhere ClientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef .

2002-2005 by Cialogica Tecnologia em Informtica Ltda

33

SyncAnywhere v1.22

Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.2.3.24 SyncAnywhereModemDetect function SyncAnywhereModemDetect(RefNum: UInt16; ClientContext: UInt32): UInt32; Comentrios Detecta se um Modem ou Celular (via cabo serial) est conectado ao Palm. Parmetros RefNum : Referncia biblioteca SyncAnywhere ClientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.2.3.25 SyncAnywhereDial function SyncAnywhereDial(RefNum: UInt16; ClientContext: UInt32; Phone: PChar; Pulse: UInt16; Username: PChar; Password: PChar): UInt32; Comentrios Disca para um servidor de comunicao usando o modem acoplado ao Palm (PalmModem ou Celular via cabo serial). Parmetros RefNum : Referncia biblioteca SyncAnywhere ClientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . Phone: Nmero do telefone. Pulse : 1 para discagem de Pulso e ZERO para discagem por Tom. Username : Nome do usurio para validao no servidor de comunicao (RAS/Internet). Password : Senha de acesso do usurio.

2002-2005 by Cialogica Tecnologia em Informtica Ltda

Cliente Palm

34

Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo 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; Comentrios Disca para um servidor de comunicao usando uma Conexo predeterminada. Esta funo pode ser usada para discagem por modem ou celular infravermelho ou Bluetooth. Parmetros RefNum : Referncia biblioteca SyncAnywhere ClientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . Connection : Nome da Conexo preconfigurada na aplicao Prefs , opo Connection (Conexes). Phone: Nmero do telefone. Username : Nome do usurio para validao no servidor de comunicao (RAS/Internet). Password : Senha de acesso do usurio. DNSServer : Endereo IP do Servidor DNS, exemplo '222.111.22.11'. Script : Texto do Script para conexo. Caso um Script no seja necessrio, use nil ou uma String vazia. Para informar um Script neste parmetro, veja os comentrios mais abaixo. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. Script para conexo Segundo a documentao da API do PalmOS, o Script muito rgido, se um Script com sintaxe incorreta for informado, os resultados sero imprevisveis. O formato do Script uma sequncia de Strings terminadas em ZERO, com um ZERO extra no final de todas as Strings , exemplo: 's go PPP'#0's ^N'#0#0 No exemplo acima temos um comando Send, terminado em ZERO, outro comando Send,

2002-2005 by Cialogica Tecnologia em Informtica Ltda

35

SyncAnywhere v1.22

terminado em ZERO e um ZERO indicando o final do Script. Comandos aceitos no Script Funo Send Wait For Delay Get IP Prompt Wait for Prompt Send CR Send UserID Send Password Comando s w d g a f s s s Parmetro String String Exemplo s go PPP s password:

Nmero de segundos s 1 g String String String String String a Digite Nome: f ID: s ^N s nomeusuario s senha

OBS: DEVE HAVER APENAS UM NICO ESPAO ENTRE O COMANDO E O PARMETRO. 2.2.3.27 SyncAnywhereOpenActiveService function SyncAnywhereOpenActiveService(RefNum: UInt16; ClientContext: UInt32): UInt32; Comentrios Inicia o servio selecionado no Prefs/Network. Esta funo til quando voc j tem o servio configurado ou quando o servio requer configuraes especiais como comunicao IR (Celular IR), Bluetooth, WiFi, ou necessita configurar scripts. Parmetros RefNum : Referncia biblioteca SyncAnywhere ClientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.2.3.28 SyncAnywhereOpenService function SyncAnywhereOpenService(RefNum: UInt16; ClientContext: UInt32; ServiceName: PChar): UInt32;

2002-2005 by Cialogica Tecnologia em Informtica Ltda

Cliente Palm

36

Comentrios Inicia um servio j configurado no Prefs/Network. Esta funo til quando voc j tem o servio configurado ou quando o servio requer configuraes especiais como comunicao IR (Celular IR), Bluetooth, WiFi, ou necessita configurar scripts. Parmetros RefNum : Referncia biblioteca SyncAnywhere ClientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . ServiceName : Nome do Servio criado no Prefs/Network. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.2.3.29 SyncAnywhereHangup function SyncAnywhereHangup(RefNum: UInt16; ClientContext: UInt32): UInt32; Comentrios Desconecta do servidor de comunicao, conectado pela funo SyncAnywhereDial ou pela funo SyncAnywhereOpenService . Parmetros RefNum : Referncia biblioteca SyncAnywhere ClientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.2.3.30 SyncAnywhereFTPPassiveModeOn function SyncAnywhereFTPPassiveModeOn(RefNum: UInt16; ClientContext: UInt32): UInt32; Comentrios

2002-2005 by Cialogica Tecnologia em Informtica Ltda

37

SyncAnywhere v1.22

Configura o modo "PASV" (FTP PASSIVO) na conexo FTP (default no SyncAnywhere). Parmetros RefNum : Referncia biblioteca SyncAnywhere ClientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.2.3.31 SyncAnywhereFTPPassiveModeOff function SyncAnywhereFTPPassiveModeOff(RefNum: UInt16; ClientContext: UInt32): UInt32; Comentrios Configura o modo no passivo (FTP ATIVO) na conexo FTP. Parmetros RefNum : Referncia biblioteca SyncAnywhere ClientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.2.3.32 SyncAnywhereSetTCPDelay function SyncAnywhereSetTCPDelay(RefNum: UInt16; ClientContext: UInt32; Delay: UInt16): UInt32; Comentrios Configura um tempo de espera entre os envios e recebimentos de blocos de dados de/para o Servidor FTP. Esta funo importante quando as conexes so notoriamente lentas, sensveis e suscetveis quedas como conexes via celular e principalmente por infravermelho. Como regra, quanto maior o tamanho do bloco utilizado para compactar o banco
2002-2005 by Cialogica Tecnologia em Informtica Ltda

Cliente Palm

38

de dados atravs da funo SyncAnywherePackDatabase, maior deve ser o tempo de espera passado nesta funo em conexes lentas, principalmente infravermelho. Como parmetro, em testes realizados em conexes IR com mdia qualidade, blocos de 500 bytes compactados podem ser utilizados com o parmetro Delay nesta funo configurado para 3 (300ms). Em conexes com pior qualidade, o tempo deve ser aumentado e o tamanho do bloco diminudo. Parmetros RefNum : Referncia biblioteca SyncAnywhere ClientContext : Contexto de acesso biblioteca Delay : Nmero de "dcimos de segundo" para a espera. DEZ dcimos de segundo equivalem a UM segundo de atraso, portanto, para atrasar TRS dcimos de segundo (300 ms) use SyncAnywhereSetTCPDelay(RefNum, ClientContext, 3). Os parmetros RefNum e ClientContext devem ter sido recuperados na funo SyncAnywhereOpenRef . Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.2.3.33 SyncAnywhereFTPOpen function SyncAnywhereFTPOpen(RefNum: UInt16; ClientContext: UInt32; Hostname: PChar; Port: UInt16; Username: PChar; Password: PChar; Timeout: UInt16): UInt32; Comentrios Conecta-se a um servidor FTP. A conexo com um servidor de comunicao (RAS/Internet) j deve ter sido iniciada pela funo SyncAnywhereDial ou por outro meio. Parmetros RefNum : Referncia biblioteca SyncAnywhere ClientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . HostName : O nome ou endereo IP do servidor FTP. Port : A porta do servio FTP no servidor. Se a porta for a padro, utilize ZERO neste parmetro. Username : O nome do usurio para logon no servidor FTP. Password : A senha de acesso do usurio. Timeout : Nmero de segundos para timeout no acesso ao servidor FTP. Retorno

2002-2005 by Cialogica Tecnologia em Informtica Ltda

39

SyncAnywhere v1.22

ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.2.3.34 SyncAnywhereFTPClose function SyncAnywhereFTPClose(RefNum: UInt16; ClientContext: UInt32): UInt32; Comentrios Fecha a conexo com o servidor FTP. A conexo deve ter sido aberta pela funo SyncAnywhereFTPOpen . Parmetros RefNum : Referncia biblioteca SyncAnywhere ClientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.2.3.35 SyncAnywhereFTPCd function SyncAnywhereFTPCd(RefNum: UInt16; ClientContext: UInt32; Path: PChar): UInt32; Comentrios Muda o diretrio no servidor FTP. Parmetros RefNum : Referncia biblioteca SyncAnywhere ClientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . Path : Caminho para o diretrio no servidor FTP Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante.

2002-2005 by Cialogica Tecnologia em Informtica Ltda

Cliente Palm

40

2.2.3.36 SyncAnywhereFTPMkd function SyncAnywhereFTPMkd(RefNum: UInt16; ClientContext: UInt32; Name: PChar): UInt32; Comentrios Cria o diretrio no servidor FTP. Parmetros RefNum : Referncia biblioteca SyncAnywhere ClientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . Name : Nome do diretrio a ser criado no servidor FTP. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.2.3.37 SyncAnywhereFTPRmd function SyncAnywhereFTPRmd(RefNum: UInt16; ClientContext: UInt32; Name: PChar): UInt32; Comentrios Remove o diretrio do servidor FTP. Parmetros RefNum : Referncia biblioteca SyncAnywhere ClientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . Name : Nome do diretrio a ser removido no servidor FTP. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante.

2002-2005 by Cialogica Tecnologia em Informtica Ltda

41

SyncAnywhere v1.22

2.2.3.38 SyncAnywhereFTPDel function SyncAnywhereFTPDel(RefNum: UInt16; ClientContext: UInt32; Name: PChar): UInt32; Comentrios Remove o arquivo do servidor FTP. Parmetros RefNum : Referncia biblioteca SyncAnywhere ClientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . Name : Nome do arquivo a ser removido no servidor FTP. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.2.3.39 SyncAnywhereFTPPut function SyncAnywhereFTPPut(RefNum: UInt16; ClientContext: UInt32; DBName: PChar): UInt32; Comentrios Envia um banco de dados ou aplicao do Palm para o servidor FTP. Parmetros RefNum : Referncia biblioteca SyncAnywhere ClientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . DBName : Nome do banco de dados ou aplicao para ser enviada ao servidor. O nome no deve conter extenso pois ela ser colocada automaticamente (.PDB/.PRC) dependendo do que estiver sendo enviado. Ateno: o nome do banco de dados case-sensitive . Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante.

2002-2005 by Cialogica Tecnologia em Informtica Ltda

Cliente Palm

42

2.2.3.40 SyncAnywhereFTPGet function SyncAnywhereFTPGet(RefNum: UInt16; ClientContext: UInt32; Name: PChar): UInt32; Comentrios Recebe um banco de dados ou aplicao do servidor FTP. Parmetros RefNum : Referncia biblioteca SyncAnywhere ClientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . Name : Nome do banco de dados ou aplicao para ser recebida do servidor. O nome deve conter a extenso (.PDB/.PRC) dependendo do que estiver sendo recuperado. Ateno: alguns servidores FTP exigem que os nomes de arquivo sejam exatamente como esto armazenados (case-sensitive) . Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.2.3.41 SyncAnywhereFTPRename function SyncAnywhereFTPRename(RefNum: UInt16; ClientContext: UInt32; OldName: PChar; NewName: PChar): UInt32; Comentrios Renomeia um banco de dados ou aplicao no servidor FTP. Parmetros RefNum : Referncia biblioteca SyncAnywhere ClientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . OldName : Nome do banco de dados ou aplicao para ser renomeada no servidor. O nome deve conter a extenso (.PDB/.PRC) dependendo do que estiver sendo renomeado. Ateno: alguns servidores FTP exigem que os nomes de arquivo sejam exatamente como esto armazenados (case-sensitive) . NewName : Novo nome do arquivo no servidor. Retorno
2002-2005 by Cialogica Tecnologia em Informtica Ltda

43

SyncAnywhere v1.22

ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.2.3.42 SyncAnywhereFTPGetLastResponse function SyncAnywhereFTPGetLastResponse(RefNum: UInt16; ClientContext: UInt32; Response: PChar): UInt32; Comentrios Obtm o texto da ltima resposta do servidor FTP. Parmetros RefNum : Referncia biblioteca SyncAnywhere ClientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . Response : ltima mensagem de resposta do servidor FTP. Este texto recuperado diretamente o servidor FTP, portanto a mensagem do prprio servidor. Ateno: Este parmetro DEVE SER uma varivel PChar ou Array de Char alocada com 255 caracteres. A biblioteca ir copiar a mensagem neste parmetro, no far alocao de memria para o retorno da mensagem. Se voc no alocar espao, poder causar um erro na sua aplicao e Reset no Palm . Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.2.3.43 SyncAnywhereFTPSetServerType function SyncAnywhereFTPSetServerType(RefNum: UInt16; ClientContext: UInt32; ServerType: UInt16): UInt32; Comentrios Configura o tipo de listagem de diretrio (comando DIR) retornada pelo servidor FTP. O parmetro ServerType pode ser configurado como ZERO para retorno padro Unix/Linux e UM para retorno padro Windows 2000. Parmetros RefNum : Referncia biblioteca SyncAnywhere ClientContext : Contexto de acesso biblioteca ServerType : ZERO para retorno padro Unix/Linux e UM para retorno padro Windows 2000. Os dois parmetros devem ter sido recuperados na funo
2002-2005 by Cialogica Tecnologia em Informtica Ltda

Cliente Palm

44

SyncAnywhereOpenRef . Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.2.3.44 SyncAnywhereFTPDir function SyncAnywhereFTPDir(RefNum: UInt16; ClientContext: UInt32): UInt32; Comentrios Obtm a listagem dos arquivos do diretrio corrente no Servidor FTP. Esta operao no apresenta os arquivos no formulrio, obtm a lista para uso posterior pelas funes SyncAnywhereFTPGetFileCount, SyncAnywhereFTPGetFileName, SyncAnywhereFTPFileExists e SyncAnywhereFTPDirectoryExists. SyncAnywhereFTPDir no chamada automaticamente ao se conectar ao Servidor FTP e na mudana de diretrio no Servidor para otimizar a transmisso. Fica a critrio do desenvolvedor obter ou no a lista de arquivos, atravs da utilizao ou no desta funo. Parmetros RefNum : Referncia biblioteca SyncAnywhere ClientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. Exemplo de utilizao // Obtm a listagem dos arquivos do diretrio // corrente no Servidor Erro := SyncAnywhereFTPDir(RefNum, Context); if Erro>0 then begin // Erro no comando SyncAnywhereFTPDIR Exit; end; // Recupera o nmero de arquivos no diretrio // corrente no Servidor Erro := SyncAnywhereFTPGetFileCount(RefNum, Context, FileCount);

2002-2005 by Cialogica Tecnologia em Informtica Ltda

45

SyncAnywhere v1.22

if Erro>0 then begin // Erro no comando SyncAnywhereFTPGetFileCount Exit; end; // Mostra o nmero de arquivos StrCopy(Str, 'Nmero 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 no existe no Servidor!'); // Verifica se o diretrio existe no Servidor Erro := SyncAnywhereFTPDirectoryExists(RefNum, Context, 'dados', Exists); if Erro>0 then begin // Erro no comando SyncAnywhereFTPDirectoryExists Exit; end; // Indica se o diretrio existe if Exists>0 then ShowMessage('Diretrio existe no Servidor!') else ShowMessage('Diretrio no existe no Servidor!');

2002-2005 by Cialogica Tecnologia em Informtica Ltda

Cliente Palm

46

2.2.3.45 SyncAnywhereFTPGetFileCount function SyncAnywhereFTPGetFileCount(RefNum: UInt16; ClientContext: UInt32; var FileCount: UInt16): UInt32; Comentrios Recupera o nmero de arquivos no diretrio corrente do Servidor FTP. Ateno: esta funo s funciona se o comando SyncAnywhereFTPDir for chamado antes para recuperar a lista de arquivos do Servidor FTP. Parmetros RefNum : Referncia biblioteca SyncAnywhere ClientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . FileCount : Varivel do tipo UInt16 para receber o nmero de arquivos no diretrio corrente do Servidor FTP. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. Exemplo de utilizao Consulte a funo SyncAnywhereFTPDir para exemplo de utilizao desta funo. 2.2.3.46 SyncAnywhereFTPFileExists function SyncAnywhereFTPFileExists(RefNum: UInt16; ClientContext: UInt32; FileName: PChar; var FileExists: UInt16): UInt32; Comentrios Verifica se o arquivo existe no diretrio corrente do Servidor FTP. Ateno: esta funo s funciona se o comando SyncAnywhereFTPDir for chamado antes para recuperar a lista de arquivos do Servidor FTP. Parmetros RefNum : Referncia biblioteca SyncAnywhere ClientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . FileName : Nome do arquivo.
2002-2005 by Cialogica Tecnologia em Informtica Ltda

47

SyncAnywhere v1.22

FileExists : Varivel do tipo UInt16 para receber o resultado da verificao. ZERO indica que o arquivo no existe no diretrio corrente do Servidor; UM indica que o arquivo existe. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. Exemplo de utilizao Consulte a funo SyncAnywhereFTPDir para exemplo de utilizao desta funo. 2.2.3.47 SyncAnywhereFTPDirectoryExists function SyncAnywhereFTPDirectoryExists(RefNum: UInt16; ClientContext: UInt32; DirName: PChar; var DirExists: UInt16): UInt32; Comentrios Verifica se o diretrio existe no diretrio corrente do Servidor FTP. Ateno: esta funo s funciona se o comando SyncAnywhereFTPDir for chamado antes para recuperar a lista de arquivos do Servidor FTP. Parmetros RefNum : Referncia biblioteca SyncAnywhere ClientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . DirName : Nome do diretrio. DirExists : Varivel do tipo UInt16 para receber o resultado da verificao. ZERO indica que o diretrio no existe no diretrio corrente do Servidor; UM indica que o diretrio existe. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. Exemplo de utilizao Consulte a funo SyncAnywhereFTPDir para exemplo de utilizao desta funo. 2.2.3.48 SyncAnywhereFTPGetFileName function SyncAnywhereFTPGetFileName(RefNum: UInt16; ClientContext: UInt32; FileIndex: UInt16; FileName: PChar): UInt32;

2002-2005 by Cialogica Tecnologia em Informtica Ltda

Cliente Palm

48

Comentrios Recupera o nome do arquivo no diretrio do Servidor FTP segundo o ndice especificado. Ateno: esta funo s funciona se o comando SyncAnywhereFTPDir for chamado antes para recuperar a lista de arquivos do Servidor FTP. Parmetros RefNum : Referncia biblioteca SyncAnywhere ClientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . FileIndex : ndice do arquivo na lista. O primeiro ndice ZERO. FileName : O nome do arquivo ser retornado neste parmetro. Ateno: Este parmetro DEVE SER uma varivel PChar ou Array de Char alocada com no mnimo 100 caracteres. A biblioteca ir copiar o nome neste parmetro, no far alocao de memria para o retorno da mensagem. Se voc no alocar espao, poder causar um erro na sua aplicao e Reset no Palm. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. Exemplo de utilizao Consulte a funo SyncAnywhereFTPDir para exemplo de utilizao desta funo.

2.3
2.3.1

NSBasic
Instalao
No diretrio do SyncAnywhere\NSBasic , h um arquivo chamado SyncAnywhere.inf que deve ser copiado para o diretrio Lib do NSBasic. Este arquivo contm as informaes de acesso SharedLib do SyncAnywhere, necessrio para que o NSBasic possa compilar sua aplicao.

2.3.2

Utilizao
A aplicao exemplo FTPTest sob o diretrio NSBasic mostra como utilizar as funes da biblioteca para compactar dados e tambm para acessar um servidor FTP. No formulrio da aplicao, sero solicitados todos os dados para que seja possvel a conexo com o servidor FTP: O nmero de telefone para discagem ao servidor de comunicao, seja um RAS ou provedor Internet; Tipo de discagem, pulso ou tom;

2002-2005 by Cialogica Tecnologia em Informtica Ltda

49

SyncAnywhere v1.22

Nome de usurio e senha de acesso ao servidor RAS ou provedor Internet; O endereo IP ou nome do servidor FTP; O nome do usurio e senha para logon no servidor FTP. O primeiro passo criar a varivel global que ir armazenar o contexto de acesso biblioteca, carregar a biblioteca e criar o contexto. Este um procedimento bsico que deve ser executado em todas as suas aplicaes que forem utilizar os recursos do SyncAnywhere. O local ideal para colocar este cdigo no Startup Code da aplicao: Sub Project_Startup() Global Context as Integer ' Carrega a biblioteca SyncAnywhere LoadLibrary "SyncAnywhere", "Sya" ' Obtm uma referncia ao Contexto da biblioteca Context = Sya.SyncAnywhereCreateContext() If Context=0 Then MsgBox "No foi possvel obter contexto da biblioteca SyncAnywhere!" End If End Sub importante tambm que o contexto de acesso biblioteca seja destrudo antes que a aplicao termine, para que a memria alocada para ele seja liberada. O melhor local para colocar este cdigo no Termination Code da aplicao: Sub Project_Termination() ' Destri o contexto de acesso biblioteca do SyncAnywhere Sya.SyncAnywhereDestroyContext Context End Sub O cdigo no boto Iniciar FTP executa comandos da biblioteca: Sub object1028() Dim Dim Dim Dim Dim Dim Dim Dim Dim Dim Dim Dim Dim TmpStr as String Telefone as String Usuario as String Senha as String ServidorFTP as String UsuarioFTP as String SenhaFTP as String Pulso as Short Erro as Integer BlockSize as Short DBPack as Database Porta as Short Timeout as Short

2002-2005 by Cialogica Tecnologia em Informtica Ltda

Cliente Palm

50

' 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 conexo por Celulares ou Modem via Infravermelho, NO USE a ' funo SyncAnywhereModemDetect, pois ela no ser capaz de ' detectar a comunicao com o Celular. Esta funo deve ser usada ' somente quando a conexo For feita atravs de Modem acoplado ao ' Palm, ou celular via cabo ' -----------------------------------------------------------------------FldStatus.Text = "Detectando Modem..." Erro = Sya.SyncAnywhereModemDetect(Context) If Erro>0 Then FldStatus.Text = "Modem no detectado!" Exit Sub End If ' Configura o CreatorID para os PDBs compactados Erro = Sya.SyncAnywhereSetCreatorID(Context, "CBCT") If Erro>0 Then MsgBox "Erro de Configurao do CreatorID" Exit Sub End If ' Recupera as informaes 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 ' ATENO: para chamadas bibliotecas, o parmetro to tipo

2002-2005 by Cialogica Tecnologia em Informtica Ltda

51

SyncAnywhere v1.22

'

nmero deve ser uma varivel ou vai causar erro ' na execuo da aplicao. Neste caso, o tipo da ' varivel deve ser Short BlockSize = 5000

' Compacta o banco de Dados ' Parmetros: ' 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 ' sero compactados ' ClientesDB e ProdutosDB: so os bancos que sero compactados dentro ' de PDBPack ' BlockSize: o tamanho mximo do registro compactado dentro de PDBPack. ' Este valor deve estar na faixa de 50 bytes a 30000 bytes e voc ' pode fazer testes com valores intermedirios na faixa de 5000, ' dependendo da qualidade de transmisso na sua regio FldStatus.Text = "Compactando ClientesDB" Erro = Sya.SyncAnywherePackDatabase(Context, "PDBPack", "ClientesDB", BlockSize) If Erro>0 Then MsgBox "Erro de Compactao 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 Compactao 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 comunicao FldStatus.Text = "Discando" ' -----------------------------------------------------------------------' Para conexo por Celulares ou Modem via Infravermelho, NO USE a

2002-2005 by Cialogica Tecnologia em Informtica Ltda

Cliente Palm

52

' funo SyncAnywhereModemDial, pois ela no far a discagem. Ao ' invs de usar esta // funo, crie a conexo com o celular na ' aplicao Prefs Do Palm, opo Network e configure l o telefone, o ' modo de conexo, usurio e senha, e utilize a funo ' SyncAnywhereOpenService(NomeDaConexo) para efetuar ' a discagem. O nome no parmetro deve ser exatamente igual ao ' nome Do servio criado, respeitando-se as letras maisculas e ' minsculas. ' Caso tenha alguma dvida, 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 Conexo: " + Str(Erro) FldStatus.Text = TmpStr ' Desconecta Do Servidor de comunicao Erro = Sya.SyncAnywhereHangup(Context) ' Fecha Net.Lib Erro = Sya.SyncAnywhereNetLibClose(Context) Exit Sub End If ' Comando GET de uma aplicao FldStatus.Text = "Recebendo Clientes.prc" Erro = Sya.SyncAnywhereFTPGet(Context, "Clientes.prc") If Erro>0 Then TmpStr = "Erro de recepo: " + Str(Erro) MsgBox TmpStr End If ' Comando PUT Do Banco compactado

2002-2005 by Cialogica Tecnologia em Informtica Ltda

53

SyncAnywhere v1.22

FldStatus.Text = "Enviando PDBPack..." Erro = Sya.SyncAnywhereFTPPut(Context, "PDBPack") If Erro>0 Then TmpStr = "Erro de envio: " + Str(Erro) MsgBox TmpStr Else ' Fecha Conexo FTP, somente se o envio foi ' concludo Erro = Sya.SyncAnywhereFTPClose(Context) End If ' Desconecta Do Servidor de comunicao Erro = Sya.SyncAnywhereHangup(Context) ' Fecha Net.Lib Erro = Sya.SyncAnywhereNetLibClose(Context) FldStatus.Text = "Comunicao realizada com sucesso!" End Sub O cdigo no boto Analisar PDBPack executa comandos da biblioteca: Sub object1032() Dim Dim Dim Dim Dim NumDBs as Integer x as Short Erro as Integer TmpStr as String DBPack as Database

' Procura pelo banco PDBPack no Palm Erro = DBOpen(DBPack, "PDBPack", 0) If Erro>0 Then MsgBox "Banco PDBPack no foi encontrado, comande o Incio do FTP ou carregue o banco de dados PDBPack.pdb do diretrio TestDB no palm ou Emulador" Exit Sub End If DBClose(DBPack) ' Verifica o nmero de bancos de dados Compactados em PDBPack NumDBs = Sya.SyncAnywhereGetDBCount(Context, "PDBPack") If NumDBs=0 Then MsgBox "Erro ao recuperar nmero de bancos ou banco de dados no foi gerado pelo SyncAnywhere verso 1.17 ou superior" Exit Sub End If ' Apresenta nmero de Bancos MsgBox "Nmero de bancos de dados em PDBPack: " + Str(NumDBs)

2002-2005 by Cialogica Tecnologia em Informtica Ltda

Cliente Palm

54

' 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
2.3.3.1

Funes do SyncAnywhere
SyncAnywhereCreateContext Function SyncAnywhereCreateContext() As Integer Comentrio Cria o contexto de acesso biblioteca. O retorno desta funo deve ser usado em todas as funes da biblioteca, portanto deve ser salvo em uma varivel global. Parmetros Nenhum Retorno O contexto de acesso biblioteca do SyncAnywhere.

2.3.3.2

SyncAnywhereDestroyContext Sub SyncAnywhereDestroyContext(ClientContext As Integer) Comentrio

2002-2005 by Cialogica Tecnologia em Informtica Ltda

55

SyncAnywhere v1.22

Destri o contexto de acesso biblioteca. Deve ser chamado antes da aplicao terminar para liberar a memria alocada para o contexto. Parmetros ClientContext : Contexto de acesso biblioteca, adquirido pela chamada SyncAnywhereCreateContext . 2.3.3.3 SyncAnywhereGetVersion Function SyncAnywhereGetVersion() As Integer Comentrios Recupera a verso da biblioteca. A verso retornada como um nmero inteiro, onde a centena representa a verso e a dezena, a correo da verso, exemplo: a verso 113 representa a verso 1 da biblioteca, com a correo 13. Parmetros Nenhum Retorno Inteiro representando a verso da biblioteca. 2.3.3.4 SyncAnywhereCheckSumOn Sub SyncAnywhereCheckSumOn(Context As Integer) Comentrios Habilita a gravao de bytes de verificao de integridade nos registros do banco de dados compactado, para auxiliar na garantia da integridade dos dados transmitidos. Por default, a gravao dos bytes de verificao est desabilitada . O nmero de bytes de verificao de integridade gravados por registro 10. Parmetros ClientContext : Contexto de acesso biblioteca 2.3.3.5 SyncAnywhereCheckSumOff Sub SyncAnywhereCheckSumOff(Context As Integer) Comentrios Desabilita a gravao de bytes de verificao de integridade nos registros do banco de dados compactado (default).

2002-2005 by Cialogica Tecnologia em Informtica Ltda

Cliente Palm

56

Parmetros ClientContext : Contexto de acesso biblioteca 2.3.3.6 SyncAnywhereUIDSupportOn Sub SyncAnywhereUIDSupportOn(Context As Integer) Comentrios Habilita a gravao do UniqueID de cada registro do banco de dados. O UniqueID uma informao no utilizada pela maioria das ferramentas, mas se por algum motivo sua aplicao usa esta informao, voc precisa habilitar o uso com esta funo. Por default, a gravao do UniqueID est desabilitada para economizar espao no banco de dados compactado gerado.

Ateno: - O uso desta funo torna o SyncAnywhere incompatvel com bancos de dados compactados sem o uso desta funo. Para que o SyncAnywhere seja compatvel com bancos de dados compactados sem o UniqueID, necessrio utilizar a funo SyncAnywhereUIDSupportOff. - necessrio tambm habilitar a gravao do UniqueID na sua aplicao que compacta e descompacta dados no servidor. - Quando quiser habilitar o suporte ao UniqueID, utilize esta funo logo aps abrir a biblioteca pois ela necessria para compactar e descompactar bancos de dados com UniqueID.
Parmetros ClientContext : Contexto de acesso biblioteca 2.3.3.7 SyncAnywhereUIDSupportOff Sub SyncAnywhereUIDSupportOff(Context As Integer) Comentrios Desabilita a gravao do UniqueID de cada registro do banco de dados. O UniqueID uma informao no utilizada pela maioria das ferramentas, mas se por algum motivo sua aplicao usa esta informao, voc precisa habilitar o uso com a funo SyncAnywhereUIDSupportOn . Por default, a gravao do UniqueID est desabilitada para economizar espao no banco de dados compactado gerado.

Ateno: o uso do UniqueID torna o SyncAnywhere


2002-2005 by Cialogica Tecnologia em Informtica Ltda

57

SyncAnywhere v1.22

incompatvel com bancos de dados compactados sem o uso da funo SyncAnywhereUIDSupportOn.


Parmetros ClientContext : Contexto de acesso biblioteca 2.3.3.8 SyncAnywhereSetPackDataBlock Sub SyncAnywhereSetPackDataBlock(ClientContext As Integer, MaxDataBlock As Integer) Comentrios Esta funo de extrema importncia se o arquivo tiver que ser descompactado em equipamentos com pouca memria como o Zire, M100, M105 ou qualquer outro que tenha 2MB de memria ou menos. Esses equipamentos tem muito pouca memria dinmica para alocao, assim, a quantidade de memria disponvel depende do tamanho da aplicao. O tamanho mximo do bloco compactado de dados deve ser configurado segundo sua necessidade em equipamentos com pouca memria e neste caso um valor de 500 bytes geralmente adequado aplicaes grandes. Parmetros ClientContext : Contexto de acesso biblioteca, adquirido pela chamada SyncAnywhereCreateContext . MaxDataBlock : Tamanho mximo (em bytes) do bloco de dados que ser compactado. O default 30000 bytes, mas para equipamentos com pouca memria este valor deve ser muito mais baixo, em torno de 500 bytes quando a aplicao executada grande ou at 5000 bytes se a aplicao for pequena. 2.3.3.9 SyncAnywhereSetCreatorID Function SyncAnywhereSetCreatorID(Context As Integer, CreatorID As String) As Integer Comentrios Configura o CreatorID que ser usado para os arquivos compactados. Parmetros Context : Contexto de acesso biblioteca, adquirido pela chamada SyncAnywhereCreateContext . CreatorID : O CreatorID, com exatamente quatro caracteres. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante.
2002-2005 by Cialogica Tecnologia em Informtica Ltda

Cliente Palm

58

2.3.3.10 SyncAnywherePackDatabase Function SyncAnywherePackDatabase(ClientContext As Integer, DBDest As String, DBSource As String, MaxBlockSize As Short) As Integer Comentrios Compacta o banco de dados informado em DBSource, no banco de dados informado em DBDest. Parmetros ClientContext : Contexto de acesso biblioteca, adquirido pela chamada SyncAnywhereCreateContext . DBDest : Nome do banco de dados destino, onde ser compactado o banco de dados de origem. Ateno: O banco de dados destino deve ser apagado antes de chamar esta funo pela primeira vez. As chamadas sucessivas esta funo adicionam bancos de dados compactados DBDest , portanto na primeira vez que usar esta funo, certifique-se que ele no exista, para que a compactao inicie em um banco de dados novo. DBSource : Banco de dados origem, que ser compactado dentro de DBDest. MaxBlockSize : Tamanho mximo do registro que ser gerado no banco de dados DBDest . Este valor normalmente deve ser em torno de 5000, que representa 5000 bytes em cada registro e pode ser configurado em funo da qualidade de transmisso da linha telefnica ou celular. H locais onde melhor que este valor seja menor, em torno de 1000, para minimizar erros na transmisso. O tamanho mnimo 50 bytes e o mximo 30000. Ateno: No NSBasic, este parmetro deve ser passado atravs de uma varivel do tipo Short. Atribua o tamanho do bloco esta varivel e passe-a no parmetro . Observao importante: para os modelos M100, Zire e outros que tem memria igual ou inferior a 2MB, este parmetro no poder ser maior que 2500 bytes, ou retornar o erro appErrInvalidBlockSize. Estes modelos tem memria "Heap" (memria dinmica liberada pelo PalmOS) extremamente limitada e as alocaes de memria internas necessrias para compactao podem falhar se o valor for maior que 2500 bytes. Se o Banco de Dados tiver que ser descompactado em equipamentos deste tipo, no se esquea de configurar o tamanho do bloco de compactao com as funes SyncAnywhereSetPackDataBlock no Palm e PackSetMaxDataBlock no Servidor. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.3.3.11 SyncAnywhereGetDBCount Function SyncAnywhereGetDBCount(ClientContext As Integer, DBSource As String) As Integer

2002-2005 by Cialogica Tecnologia em Informtica Ltda

59

SyncAnywhere v1.22

Comentrios Recupera o nmero de bancos de dados compactados dentro do banco especificado no parmetro DBSource, na varivel informada no parmetro DBCount . O nmero de bancos de dados compactados s pode ser recuperado dos PDBs gerados pelo SyncAnywhere a partir da verso 1.17 . Parmetros 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 recuperao do nmero de bancos de dados compactados ou que o banco de dados no foi gerado com o SyncAnywhere verso 1.17 ou superior. Maior que ZERO indica o nmero de bancos compactados dentro do banco informado. 2.3.3.12 SyncAnywhereGetDBName Function SyncAnywhereGetDBName(ClientContext As Integer, DBSource As String, Indx as Short, DBName As String) As Integer Comentrios Recupera o nome de bancos de dados compactado dentro do banco especificado no parmetro DBSource , na varivel informada no parmetro DBName , de acordo com o ndice do banco informado no parmetro Indx . O nome dos bancos de dados compactados s podem ser recuperados dos PDBs gerados pelo SyncAnywhere a partir da verso 1.17 . Parmetros 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 nmero de bancos de dados compactados, utilize a funo SyncAnywhereGetDBCount . DBName : O nome do banco de dados compactado retornado neste parmetro. Ateno: Este parmetro DEVE SER uma varivel String previamente preenchida com no mnimo 32 espaos. Se voc no preparar a varivel com os 32 espaos, poder causar um erro na sua aplicao e Reset no Palm. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante.

2002-2005 by Cialogica Tecnologia em Informtica Ltda

Cliente Palm

60

2.3.3.13 SyncAnywhereCheckDatabase Function SyncAnywhereCheckDatabase(ClientContext As Integer, DBSource As String) As Integer Comentrios Verifica a estrutura de um banco compactado gerado pelo SyncAnywhere. A funo verifica a integridade do nmero de registros no banco e CheckSum (se habilitado). Parmetros 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 cdigo de erro da verificao do PDB. 2.3.3.14 SyncAnywhereUnpackDatabase Function SyncAnywhereUnpackDatabase(ClientContext As Integer, DBSource As String) As Integer Comentrios Descompacta os bancos de dados para a memria do Palm. Ateno: Voc deve apagar os bancos de dados que sero descompactados antes que eles sejam descompactados por esta funo ou os registros sero adicionados aos registros dos bancos de dados se j existirem . Parmetros 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 funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante.

2002-2005 by Cialogica Tecnologia em Informtica Ltda

61

SyncAnywhere v1.22

2.3.3.15 SyncAnywhereUnpackOneDB Function SyncAnywhereUnpackOneDB(ClientContext As Integer, DBSource As String, DBName As String) As Integer Comentrios Descompacta um nico banco de dados para a memria do Palm. Ateno: Voc deve apagar o banco de dados que ser descompactado antes que eles seja descompactado por esta funo ou os registros sero adicionados aos registros do banco de dados. Parmetros 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 extrado do banco compactado. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.3.3.16 SyncAnywhereUnpackApplication Function SyncAnywhereUnpackApplication(ClientContext As Integer, DBSource As String) As Integer Comentrios Descompacta a aplicao compactada em um Banco de Dados Palm (PDB) para a memria do Palm. Ateno: Voc deve apagar a aplicao que ser descompactada antes que ela seja descompactada por esta funo ou ser retornado um cdigo de erro. Parmetros ClientContext : Contexto de acesso biblioteca, adquirido pela chamada SyncAnywhereCreateContext . DBSource : O nome do banco de dados que contm a aplicao compactada com o SyncAnywhere. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante.

2002-2005 by Cialogica Tecnologia em Informtica Ltda

Cliente Palm

62

2.3.3.17 SyncAnywhereNetLibOpen Function SyncAnywhereNetLibOpen(ClientContext As Integer) As Integer Comentrios Abre a biblioteca de comunicao do Palm. Esta funo deve ser chamada antes de qualquer outra funo de comunicao. Parmetros ClientContext : Contexto de acesso biblioteca, adquirido pela chamada SyncAnywhereCreateContext . Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.3.3.18 SyncAnywhereNetLibClose Function SyncAnywhereNetLibClose(ClientContext As Integer) As Integer Comentrios Fecha a biblioteca de comunicao do Palm. Esta funo deve ser chamada quando a comunicao no for mais necessria, geralmente a ltima funo a ser chamada no processo de comunicao. Parmetros ClientContext : Contexto de acesso biblioteca, adquirido pela chamada SyncAnywhereCreateContext . Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.3.3.19 SyncAnywhereModemDetect Function SyncAnywhereModemDetect(ClientContext As Integer) As Integer Comentrios Detecta se um Modem ou Celular (via cabo serial) est conectado ao Palm. Parmetros ClientContext : Contexto de acesso biblioteca, adquirido pela chamada
2002-2005 by Cialogica Tecnologia em Informtica Ltda

63

SyncAnywhere v1.22

SyncAnywhereCreateContext . Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.3.3.20 SyncAnywhereSetDialProperties Sub SyncAnywhereSetDialProperties(ClientContext As Integer, Phone As String, Pulse As Short) Comentrios Configura os parmetros de discagem para o servidor de comunicao (RAS/Internet). Parmetros ClientContext : Contexto de acesso biblioteca, adquirido pela chamada SyncAnywhereCreateContext . Phone: Nmero do telefone para discagem Pulse : 1 para discagem por Pulso ou ZERO para discagem por Tom. Ateno: No NSBasic, este parmetro deve ser passado atravs de uma varivel do tipo Short. Atribua a configurao Pulso/Tom esta varivel e passe-a no parmetro . 2.3.3.21 SyncAnywhereDial Function SyncAnywhereDial(ClientContext As Integer, Username As String, Password As String) As String Comentrios Disca para um servidor de comunicao usando o modem acoplado ao Palm (PalmModem ou Celular via cabo serial). Parmetros ClientContext : Contexto de acesso biblioteca, adquirido pela chamada SyncAnywhereCreateContext . Username : Nome do usurio para validao no servidor de comunicao (RAS/Internet). Password : Senha de acesso do usurio. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante.

2002-2005 by Cialogica Tecnologia em Informtica Ltda

Cliente Palm

64

2.3.3.22 SyncAnywhereOpenActiveService Function SyncAnywhereOpenActiveService(ClientContext As Integer) As Integer Comentrios Inicia o servio selecionado no Prefs/Network. Esta funo til quando voc j tem o servio configurado ou quando o servio requer configuraes especiais como comunicao IR (Celular IR), Bluetooth, WiFi, ou necessita configurar scripts. Parmetros ClientContext : Contexto de acesso biblioteca, adquirido pela chamada SyncAnywhereCreateContext . Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.3.3.23 SyncAnywhereOpenService Function SyncAnywhereOpenService(ClientContext As Integer, ServiceName As String) As Integer Comentrios Inicia um servio j configurado no Prefs/Network. Esta funo til quando voc j tem o servio configurado ou quando o servio requer configuraes especiais como comunicao IR (Celular IR), Bluetooth, WiFi, ou necessita configurar scripts. Parmetros ClientContext : Contexto de acesso biblioteca, adquirido pela chamada SyncAnywhereCreateContext . ServiceName : Nome do Servio criado no Prefs/Network. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante.

2.3.3.24 SyncAnywhereHangup Function SyncAnywhereHangup(ClientContext As Integer) As Integer Comentrios

2002-2005 by Cialogica Tecnologia em Informtica Ltda

65

SyncAnywhere v1.22

Desconecta do servidor de comunicao, conectado pela funo SyncAnywhereDial ou pela funo SyncAnywhereOpenService . Parmetros ClientContext : Contexto de acesso biblioteca, adquirido pela chamada SyncAnywhereCreateContext . Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.3.3.25 SyncAnywhereSetFTPProperties Sub SyncAnywhereSetFTPProperties(ClientContext As Integer, Port As Short, Timeout As Short) Comentrios Configura os parmetros de conexo ao servidor FTP. Parmetros ClientContext : Contexto de acesso biblioteca, adquirido pela chamada SyncAnywhereCreateContext . Port : Porta para conexo no Servidor FTP. Se a porta for padro, passe ZERO neste parmetro. Ateno: No NSBasic, este parmetro deve ser passado atravs de uma varivel do tipo Short. Atribua a configurao da Porta esta varivel e passe-a no parmetro . Timeout : Tempo (em segundos) para que as funes de comunicao utilizem como tempo limite de conexo. O default 10 segundos. H servidores que necessitam de um tempo maior devido sua lentido ou quantidade maior de usurios conectados. Ateno: No NSBasic, este parmetro deve ser passado atravs de uma varivel do tipo Short. Atribua a configurao do Timeout esta varivel e passe-a no parmetro . 2.3.3.26 SyncAnywhereFTPPassiveModeOn Sub SyncAnywhereFTPPassiveModeOn(ClientContext As Integer) Comentrios Configura o modo "PASV" (FTP PASSIVO) na conexo FTP (default no SyncAnywhere). Parmetros ClientContext : Contexto de acesso biblioteca, adquirido pela chamada SyncAnywhereCreateContext .

2002-2005 by Cialogica Tecnologia em Informtica Ltda

Cliente Palm

66

2.3.3.27 SyncAnywhereFTPPassiveModeOff Sub SyncAnywhereFTPPassiveModeOff(ClientContext As Integer) Comentrios Configura o modo no passivo (FTP ATIVO) na conexo FTP. Parmetros ClientContext : Contexto de acesso biblioteca, adquirido pela chamada SyncAnywhereCreateContext . 2.3.3.28 SyncAnywhereSetTCPDelay Sub SyncAnywhereSetTCPDelay(ClientContext As Integer, Delay As Integer) Comentrios Configura um tempo de espera entre os envios e recebimentos de blocos de dados de/para o Servidor FTP. Esta funo importante quando as conexes so notoriamente lentas, sensveis e suscetveis quedas como conexes via celular e principalmente por infravermelho. Como regra, quanto maior o tamanho do bloco utilizado para compactar o banco de dados atravs da funo SyncAnywherePackDatabase, maior deve ser o tempo de espera passado nesta funo em conexes lentas, principalmente infravermelho. Como parmetro, em testes realizados em conexes IR com mdia qualidade, blocos de 500 bytes compactados podem ser utilizados com o parmetro Delay nesta funo configurado para 3 (300ms). Em conexes com pior qualidade, o tempo deve ser aumentado e o tamanho do bloco diminudo. Parmetros ClientContext : Contexto de acesso biblioteca, adquirido pela chamada SyncAnywhereCreateContext . Delay : Nmero de "dcimos de segundo" para a espera. DEZ dcimos de segundo equivalem a UM segundo de atraso, portanto, para atrasar TRS dcimos de segundo (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 Comentrios Conecta-se a um servidor FTP. A conexo com um servidor de comunicao (RAS/Internet) j deve ter sido iniciada pela funo SyncAnywhereDial ou por outro meio.
2002-2005 by Cialogica Tecnologia em Informtica Ltda

67

SyncAnywhere v1.22

Parmetros ClientContext : Contexto de acesso biblioteca, adquirido pela chamada SyncAnywhereCreateContext . HostName : O nome ou endereo IP do servidor FTP. Username : O nome do usurio para logon no servidor FTP. Password : A senha de acesso do usurio. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.3.3.30 SyncAnywhereFTPClose Function SyncAnywhereFTPClose(ClientContext As Integer) As Integer Comentrios Fecha a conexo com o servidor FTP. A conexo deve ter sido aberta pela funo SyncAnywhereFTPOpen . Parmetros ClientContext : Contexto de acesso biblioteca, adquirido pela chamada SyncAnywhereCreateContext . Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.3.3.31 SyncAnywhereFTPCd Function SyncAnywhereFTPCd(ClientContext As Integer, Path As String) As Integer Comentrios Muda o diretrio no servidor FTP. Parmetros ClientContext : Contexto de acesso biblioteca, adquirido pela chamada SyncAnywhereCreateContext . Path : Caminho para o diretrio no servidor FTP Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante.
2002-2005 by Cialogica Tecnologia em Informtica Ltda

Cliente Palm

68

2.3.3.32 SyncAnywhereFTPMkd Function SyncAnywhereFTPMkd(ClientContext As Integer, Name As String) As Integer Comentrios Cria o diretrio no servidor FTP. Parmetros ClientContext : Contexto de acesso biblioteca, adquirido pela chamada SyncAnywhereCreateContext . Name : Nome do diretrio a ser criado no servidor FTP. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.3.3.33 SyncAnywhereFTPRmd Function SyncAnywhereFTPRmd(ClientContext As Integer, Name As String) As Integer Comentrios Remove o diretrio do servidor FTP. Parmetros ClientContext : Contexto de acesso biblioteca, adquirido pela chamada SyncAnywhereCreateContext . Name : Nome do diretrio a ser removido no servidor FTP. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.3.3.34 SyncAnywhereFTPDel Function SyncAnywhereFTPDel(ClientContext As Integer, Name As String) As Integer Comentrios Remove o arquivo do servidor FTP. Parmetros
2002-2005 by Cialogica Tecnologia em Informtica Ltda

69

SyncAnywhere v1.22

ClientContext : Contexto de acesso biblioteca, adquirido pela chamada SyncAnywhereCreateContext . Name : Nome do arquivo a ser removido no servidor FTP. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.3.3.35 SyncAnywhereFTPPut Function SyncAnywhereFTPPut(ClientContext As Integer, DBName As String) As Integer Comentrios Envia um banco de dados ou aplicao do Palm para o servidor FTP. Parmetros ClientContext : Contexto de acesso biblioteca, adquirido pela chamada SyncAnywhereCreateContext . DBName : Nome do banco de dados ou aplicao para ser enviada ao servidor. O nome no deve conter extenso pois ela ser colocada automaticamente (.PDB/.PRC) dependendo do que estiver sendo enviado. Ateno: o nome do banco de dados case-sensitive . Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.3.3.36 SyncAnywhereFTPGet Function SyncAnywhereFTPGet(ClientContext As Integer, Name As String) As Integer Comentrios Recebe um banco de dados ou aplicao do servidor FTP. Parmetros ClientContext : Contexto de acesso biblioteca, adquirido pela chamada SyncAnywhereCreateContext . Name : Nome do banco de dados ou aplicao para ser recebida do servidor. O nome deve conter a extenso (.PDB/.PRC) dependendo do que estiver sendo recuperado. Ateno: alguns servidores FTP exigem que os nomes de arquivo sejam exatamente como esto armazenados (case-sensitive) . Retorno
2002-2005 by Cialogica Tecnologia em Informtica Ltda

Cliente Palm

70

ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.3.3.37 SyncAnywhereFTPRename Function SyncAnywhereFTPRename(Context As Integer, OldName As String, NewName As String) As Integer Comentrios Renomeia um banco de dados ou aplicao no servidor FTP. Parmetros ClientContext : Contexto de acesso biblioteca OldName : Nome do banco de dados ou aplicao para ser renomeada no servidor. O nome deve conter a extenso (.PDB/.PRC) dependendo do que estiver sendo renomeado. Ateno: alguns servidores FTP exigem que os nomes de arquivo sejam exatamente como esto armazenados (case-sensitive) . NewName : Novo nome do arquivo no servidor. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.3.3.38 SyncAnywhereFTPGetLastResponse Sub SyncAnywhereFTPGetLastResponse(ClientContext As Integer, Response As String) Comentrios Obtm o texto da ltima resposta do servidor FTP. Parmetros 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 prprio servidor. Ateno: Este parmetro DEVE SER uma varivel String previamente preenchida com 255 espaos. Se voc no preparar a varivel com os 255 espaos, poder causar um erro na sua aplicao e Reset no Palm. 2.3.3.39 SyncAnywhereFTPSetServerType Function SyncAnywhereFTPSetServerType(ClientContext As Integer, ServerType As Short) As Integer

2002-2005 by Cialogica Tecnologia em Informtica Ltda

71

SyncAnywhere v1.22

Comentrios Configura o tipo de listagem de diretrio (comando DIR) retornada pelo servidor FTP. O parmetro ServerType pode ser configurado como ZERO para retorno padro Unix/Linux e UM para retorno padro Windows 2000. Parmetros ClientContext : Contexto de acesso biblioteca ServerType : ZERO para retorno padro Unix/Linux e UM para retorno padro Windows 2000. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.3.3.40 SyncAnywhereFTPDir Function SyncAnywhereFTPDir(Context As Integer) As Integer Comentrios Obtm a listagem dos arquivos do diretrio corrente no Servidor FTP. Esta operao no apresenta os arquivos no formulrio, obtm a lista para uso posterior pelas funes SyncAnywhereFTPGetFileCount, SyncAnywhereFTPGetFileName, SyncAnywhereFTPFileExists e SyncAnywhereFTPDirectoryExists. SyncAnywhereFTPDir no chamada automaticamente ao se conectar ao Servidor FTP e na mudana de diretrio no Servidor para otimizar a transmisso. Fica a critrio do desenvolvedor obter ou no a lista de arquivos, atravs da utilizao ou no desta funo. Parmetros ClientContext : Contexto de acesso biblioteca Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. Exemplo de utilizao ' Obtm a listagem dos arquivos Do diretrio ' corrente no Servidor Erro = Sya.SyncAnywhereFTPDir(Context) If Erro>0 Then ' Erro no comando SyncAnywhereFTPDIR Exit Sub End If

2002-2005 by Cialogica Tecnologia em Informtica Ltda

Cliente Palm

72

' Recupera o nmero de arquivos no diretrio ' corrente no Servidor FileCount = Sya.SyncAnywhereFTPGetFileCount(Context) ' Mostra o nmero de arquivos MsgBox "Nmero 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 no existe no Servidor!" End If ' Verifica se o diretrio existe no Servidor Exists = Sya.SyncAnywhereFTPDirectoryExists(Context, "dados") ' Indica se o diretrio existe If Exists>0 Then MsgBox "Diretrio existe no Servidor!" Else MsgBox "Diretrio no existe no Servidor!" End If 2.3.3.41 SyncAnywhereFTPGetFileCount Function SyncAnywhereFTPGetFileCount(Context As Integer) As Integer Comentrios Recupera o nmero de arquivos no diretrio corrente do Servidor FTP. Ateno: esta funo s funciona se o comando SyncAnywhereFTPDir for chamado antes para recuperar a lista de arquivos do Servidor FTP. Parmetros ClientContext : Contexto de acesso biblioteca

"

2002-2005 by Cialogica Tecnologia em Informtica Ltda

73

SyncAnywhere v1.22

Retorno Nmero de arquivos no diretrio corrente do Servidor FTP. Exemplo de utilizao Consulte a funo SyncAnywhereFTPDir para exemplo de utilizao desta funo. 2.3.3.42 SyncAnywhereFTPFileExists Function SyncAnywhereFTPFileExists(Context As Integer, FileName As String) As Integer Comentrios Verifica se o arquivo existe no diretrio corrente do Servidor FTP. Ateno: esta funo s funciona se o comando SyncAnywhereFTPDir for chamado antes para recuperar a lista de arquivos do Servidor FTP. Parmetros ClientContext : Contexto de acesso biblioteca FileName : Nome do arquivo. Retorno ZERO indica que o arquivo no existe no diretrio corrente do Servidor; UM indica que o arquivo existe. Exemplo de utilizao Consulte a funo SyncAnywhereFTPDir para exemplo de utilizao desta funo. 2.3.3.43 SyncAnywhereFTPDirectoryExists Function SyncAnywhereFTPDirectoryExists(Context As Integer, DirectoryName As String) As Integer Comentrios Verifica se o diretrio existe no diretrio corrente do Servidor FTP. Ateno: esta funo s funciona se o comando SyncAnywhereFTPDir for chamado antes para recuperar a lista de arquivos do Servidor FTP. Parmetros ClientContext : Contexto de acesso biblioteca DirName : Nome do diretrio. Retorno

2002-2005 by Cialogica Tecnologia em Informtica Ltda

Cliente Palm

74

ZERO indica que o diretrio no existe no diretrio corrente do Servidor; UM indica que o diretrio existe. Exemplo de utilizao Consulte a funo SyncAnywhereFTPDir para exemplo de utilizao desta funo. 2.3.3.44 SyncAnywhereFTPGetFileName Function SyncAnywhereFTPGetFileName(Context As Integer, FileIndex As Short, FileName As String) As Integer Comentrios Recupera o nome do arquivo no diretrio do Servidor FTP segundo o ndice especificado. Ateno: esta funo s funciona se o comando SyncAnywhereFTPDir for chamado antes para recuperar a lista de arquivos do Servidor FTP. Parmetros ClientContext : Contexto de acesso biblioteca FileIndex : Varivel do tipo Short para indicar o ndice do arquivo na lista. O primeiro ndice ZERO. FileName : O nome do arquivo ser retornado neste parmetro. Ateno: Este parmetro DEVE SER uma varivel String previamente preenchida com no mnimo 100 espaos. Se voc no preparar a varivel com os 100 espaos, poder causar um erro na sua aplicao e Reset no Palm. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. Exemplo de utilizao Consulte a funo SyncAnywhereFTPDir para exemplo de utilizao desta funo.

2.4
2.4.1

CodeWarrior
Instalao
No diretrio do SyncAnywhere\CW\Lib , h um arquivo header chamado SyncAnywhere.h , este o ponto de acesso SharedLib do SyncAnywhere. Para poder utiliza-lo em suas aplicaes, coloque o diretrio onde est este arquivo header no Access Paths do seu projeto CodeWarrior, assim ser possvel utilizar a clusula #include no arquivo header.

2002-2005 by Cialogica Tecnologia em Informtica Ltda

75

SyncAnywhere v1.22

2.4.2

Utilizao
A aplicao exemplo FTPTest sob o diretrio CW mostra como utilizar as funes da biblioteca para compactar dados e tambm para acessar um servidor FTP. No formulrio da aplicao, sero solicitados todos os dados para que seja possvel a conexo com o servidor FTP: O nmero de telefone para discagem ao servidor de comunicao, seja um RAS ou provedor Internet; Tipo de discagem, pulso ou tom; Nome de usurio e senha de acesso ao servidor RAS ou provedor Internet; O endereo IP ou nome do servidor FTP; O nome do usurio e senha para logon no servidor FTP. Inicialmente, necessrio criar variveis globais para armazenar a referncia SharedLib e tambm o contexto de acesso ela: UInt16 UInt32 refNum; // Acesso SharedLib do SyncAnywhere context; // Contexto de acesso ao SyncAnywhere

Nas funes AppStart e AppStop necessrio colocar cdigo para carregar e para descarregar a biblioteca. Se a biblioteca no for carregada, as funes no podem ser utilizadas ou causar erro na sua execuo.

static Err AppStart(void) { // Abre a SharedLib do SyncAnywhere if (!SyncAnywhereOpenRef(&refNum, &context)) { FrmCustomAlert(AlertErro, "Erro ao abrir SyncAnywhere SharedLib!", 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 cdigo no boto Iniciar FTP chama a funo TestSyncAnywhere que executa comandos da biblioteca: static void TestSyncAnywhere() {
2002-2005 by Cialogica Tecnologia em Informtica Ltda

Cliente Palm

76

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 conexo por Celulares ou Modem via Infravermelho, NO USE a // funo SyncAnywhereModemDetect, pois ela no ser capaz de // detectar a comunicao com o Celular. Esta funo deve ser usada // somente quando a conexo for feita atravs de Modem acoplado ao // Palm, ou celular via cabo // -----------------------------------------------------------------------SetFieldText(FldStatus, "Detectando Modem..."); Erro = SyncAnywhereModemDetect(refNum, context); if (Erro) { SetFieldText(FldStatus, "Modem no detectado!"); return; } // Configura o CreatorID para criar os arquivos PDB da aplicao Erro = SyncAnywhereSetCreatorID(refNum, context, "CBCT"); if (Erro) { StrCopy(Str, "Erro configurando CreatorID: "); StrIToA(Str2, Erro); StrCat(Str, Str2); SetFieldText(FldStatus, Str); return; } // Recupera as informaes 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, necessrio para que os bancos no sejam // adicionados aos j existentes dbID = DmFindDatabase(0, "PDBPack"); if (dbID) DmDeleteDatabase(0, dbID);

2002-2005 by Cialogica Tecnologia em Informtica Ltda

77

SyncAnywhere v1.22

// 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 comunicao SetFieldText(FldStatus, "Discando"); // // // // // // // // // // // // -----------------------------------------------------------------------Para conexo por Celulares ou Modem via Infravermelho, NO USE a funo SyncAnywhereModemDial, pois ela no far a discagem. Ao invs de usar esta // funo, crie a conexo com o celular na aplicao Prefs do Palm, opo Network e configure l o telefone, o modo de conexo, usurio e senha, e utilize a funo SyncAnywhereOpenService(NomeDaConexo) para efetuar a discagem. O nome no parmetro deve ser exatamente igual ao nome do servio criado, respeitando-se as letras maisculas e minsculas. Caso tenha alguma dvida, consulte o manual do SyncAnywhere. ------------------------------------------------------------------------

2002-2005 by Cialogica Tecnologia em Informtica Ltda

Cliente Palm

78

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 comunicao 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 Conexo: "); StrIToA(Str2, Erro); StrCat(Str, Str2); SetFieldText(FldStatus, Str); // Desconecta do Servidor de comunicao SyncAnywhereHangup(refNum, context); // Fecha Net.Lib SyncAnywhereNetLibClose(refNum, context); return; } // Comando GET de uma aplicao SetFieldText(FldStatus, "Recebendo Clientes.prc"); Erro = SyncAnywhereFTPGet(refNum, context, "Clientes.prc"); if (Erro) { StrCopy(Str, "Erro de recepo: "); 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);

2002-2005 by Cialogica Tecnologia em Informtica Ltda

79

SyncAnywhere v1.22

StrCat(Str, Str2); FrmCustomAlert(AlertErro, Str, NULL, NULL); } else { // Fecha Conexo FTP, se o envio teve sucesso Erro = SyncAnywhereFTPClose(refNum, context); } // Desconecta do Servidor de comunicao SyncAnywhereHangup(refNum, context); // Fecha Net.Lib SyncAnywhereNetLibClose(refNum, context); SetFieldText(FldStatus, "Comunicao realizada com sucesso!"); } J o boto Analisar PDBPack, chama a funo AnalisaPDBPack para mostrar os 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 no foi encontrado, comande o Incio do FTP ou carregue o banco de dados PDBPack.pdb do diretrio TestDB no palm ou Emulador", NULL, NULL); return; } // Verifica o nmero de bancos de dados Compactados em PDBPack erro = SyncAnywhereGetDBCount(refNum, context, "PDBPack", &numDBs); if (erro) { StrCopy(str, "Erro ao recuperar nmero de bancos: "); StrIToA(str2, erro); StrCat(str, str2); FrmCustomAlert(AlertErro, str, NULL, NULL); return; } // Apresenta nmero de Bancos StrIToA(str2, numDBs); StrCopy(str, "Nmero de bancos de dados em PDBPack: "); StrCat(str, str2);

2002-2005 by Cialogica Tecnologia em Informtica Ltda

Cliente Palm

80

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 de PDBPack: "); 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
2.4.3.1

Funes do SyncAnywhere
SyncAnywhereOpenRef Boolean SyncAnywhereOpenRef(UInt16 *refNum, UInt32 *context); Comentrio Abre a referncia SharedLib. Parmetros

2002-2005 by Cialogica Tecnologia em Informtica Ltda

81

SyncAnywhere v1.22

refNum : A referncia SharedLib ser retornada neste parmetro context : O contexto de acesso SharedLib ser retornado neste parmetro Voc deve armazenar os dois parmetros em variveis globais pois ser necessrio utiliza-los em todas as chamadas s funes do SyncAnywhere. Retorno Boolean indicando se a biblioteca foi aberta corretamente. 2.4.3.2 SyncAnywhereCloseRef Boolean SyncAnywhereCloseRef(UInt16 refNum, UInt32 context); Comentrio Fecha a referncia SharedLib. Parmetros refNum : Referncia biblioteca SyncAnywhere context : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . Retorno Boolean indicando se a biblioteca foi fechada corretamente. 2.4.3.3 SyncAnywhereGetVersion UInt16 SyncAnywhereGetVersion(UInt16 refNum) Comentrios Recupera a verso da biblioteca. A verso retornada como um nmero inteiro, onde a centena representa a verso e a dezena, a correo da verso, exemplo: a verso 113 representa a verso 1 da biblioteca, com a correo 13. Parmetros refNum : Referncia biblioteca SyncAnywhere, recuperado na funo SyncAnywhereOpenRef . Retorno Inteiro representando a verso da biblioteca.

2002-2005 by Cialogica Tecnologia em Informtica Ltda

Cliente Palm

82

2.4.3.4

SyncAnywhereCheckSumOn UInt32 SyncAnywhereCheckSumOn(UInt16 refNum, UInt32 clientContext); Comentrios Habilita a gravao de bytes de verificao de integridade nos registros do banco de dados compactado, para auxiliar na garantia da integridade dos dados transmitidos. Por default, a gravao dos bytes de verificao est desabilitada . O nmero de bytes de verificao de integridade gravados por registro 10. Parmetros refNum : Referncia biblioteca SyncAnywhere clientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante.

2.4.3.5

SyncAnywhereCheckSumOff UInt32 SyncAnywhereCheckSumOff(UInt16 refNum, UInt32 clientContext); Comentrios Desabilita a gravao de bytes de verificao de integridade nos registros do banco de dados compactado (default). Parmetros refNum : Referncia biblioteca SyncAnywhere clientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante.

2.4.3.6

SyncAnywhereUIDSupportOn UInt32 SyncAnywhereUIDSupportOn(UInt16 refNum, UInt32 clientContext)

2002-2005 by Cialogica Tecnologia em Informtica Ltda

83

SyncAnywhere v1.22

Comentrios Habilita a gravao do UniqueID de cada registro do banco de dados. O UniqueID uma informao no utilizada pela maioria das ferramentas, mas se por algum motivo sua aplicao usa esta informao, voc precisa habilitar o uso com esta funo. Por default, a gravao do UniqueID est desabilitada para economizar espao no banco de dados compactado gerado.

Ateno: - O uso desta funo torna o SyncAnywhere incompatvel com bancos de dados compactados sem o uso desta funo. Para que o SyncAnywhere seja compatvel com bancos de dados compactados sem o UniqueID, necessrio utilizar a funo SyncAnywhereUIDSupportOff. - necessrio tambm habilitar a gravao do UniqueID na sua aplicao que compacta e descompacta dados no servidor. - Quando quiser habilitar o suporte ao UniqueID, utilize esta funo logo aps abrir a biblioteca pois ela necessria para compactar e descompactar bancos de dados com UniqueID.
Parmetros refNum : Referncia biblioteca SyncAnywhere clientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.4.3.7 SyncAnywhereUIDSupportOff UInt32 SyncAnywhereUIDSupportOff(UInt16 refNum, UInt32 clientContext) Comentrios Desabilita a gravao do UniqueID de cada registro do banco de dados. O UniqueID uma informao no utilizada pela maioria das ferramentas, mas se por algum motivo sua aplicao usa esta informao, voc precisa habilitar o uso com a funo SyncAnywhereUIDSupportOn . Por default, a gravao do UniqueID est desabilitada para economizar espao no banco de dados compactado gerado.

Ateno: o uso do UniqueID torna o SyncAnywhere


2002-2005 by Cialogica Tecnologia em Informtica Ltda

Cliente Palm

84

incompatvel com bancos de dados compactados sem o uso da funo SyncAnywhereUIDSupportOn.


Parmetros refNum : Referncia biblioteca SyncAnywhere clientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.4.3.8 SyncAnywhereSetPackDataBlock UInt32 SyncAnywhereSetPackDataBlock(UInt16 refNum, UInt32 clientContext, UInt16 maxDataBlock); Comentrios Esta funo de extrema importncia se o arquivo tiver que ser descompactado em equipamentos com pouca memria como o Zire, M100, M105 ou qualquer outro que tenha 2MB de memria ou menos. Esses equipamentos tem muito pouca memria dinmica para alocao, assim, a quantidade de memria disponvel depende do tamanho da aplicao. O tamanho mximo do bloco compactado de dados deve ser configurado segundo sua necessidade em equipamentos com pouca memria e neste caso um valor de 500 bytes geralmente adequado aplicaes grandes. Parmetros refNum : Referncia biblioteca SyncAnywhere clientContext : Contexto de acesso biblioteca maxDataBlock : Tamanho mximo (em bytes) do bloco de dados que ser compactado. O default 30000 bytes, mas para equipamentos com pouca memria este valor deve ser muito mais baixo, em torno de 500 bytes quando a aplicao executada grande ou at 5000 bytes se a aplicao for pequena. Os parmetros refNum e clientContext devem ter sido recuperados na funo SyncAnywhereOpenRef . Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante.

2002-2005 by Cialogica Tecnologia em Informtica Ltda

85

SyncAnywhere v1.22

2.4.3.9

SyncAnywhereSetSendUpdateProc UInt32 SyncAnywhereSetSendUpdateProc(UInt16 refNum, UInt32 clientContext, UpdateProcPtr updateProc); Comentrios Configura uma procedure na sua aplicao que ser chamada pelo SyncAnywhere com o percentual do andamento do envio de dados ao servidor FTP. Parmetros refNum : Referncia biblioteca SyncAnywhere clientContext : Contexto de acesso biblioteca updateProc : Procedure com apenas um parmetro UInt16 para receber o percentual do andamento do envio de dados ao servidor FTP. Os parmetros RefNum e ClientContext devem ter sido recuperados na funo SyncAnywhereOpenRef . Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo 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 funo ShowStatus para receber o percentual de // envio de dados ao Servidor FTP SyncAnywhereSetSendUpdateProc(refNum, context, &ShowStatus); ... ... }

2002-2005 by Cialogica Tecnologia em Informtica Ltda

Cliente Palm

86

2.4.3.10 SyncAnywhereSetReceiveUpdateProc UInt32 SyncAnywhereSetReceiveUpdateProc(UInt16 refNum, UInt32 clientContext, UpdateProcPtr updateProc); Comentrios Configura uma procedure na sua aplicao que ser chamada pelo SyncAnywhere com o percentual do andamento do recebimento de dados ao servidor FTP. Parmetros refNum : Referncia biblioteca SyncAnywhere clientContext : Contexto de acesso biblioteca updateProc : Procedure com apenas um parmetro UInt16 para receber o percentual do andamento do recebimento de dados ao servidor FTP. Os parmetros RefNum e ClientContext devem ter sido recuperados na funo SyncAnywhereOpenRef . Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo 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 funo ShowStatus para receber o percentual de // recebimento de dados do Servidor FTP SyncAnywhereSetReceiveUpdateProc(refNum, context, &ShowStatus); ... ... }

2002-2005 by Cialogica Tecnologia em Informtica Ltda

87

SyncAnywhere v1.22

2.4.3.11 SyncAnywhereSetPackUpdateProc UInt32 SyncAnywhereSetPackUpdateProc(UInt16 refNum, UInt32 clientContext, UpdateProcPtr updateProc); Comentrios Configura uma procedure na sua aplicao que ser chamada pelo SyncAnywhere com o percentual da compactao do banco de dados. Parmetros refNum : Referncia biblioteca SyncAnywhere clientContext : Contexto de acesso biblioteca updateProc : Procedure com apenas um parmetro UInt16 para receber o percentual da compactao do banco de dados. Os parmetros RefNum e ClientContext devem ter sido recuperados na funo SyncAnywhereOpenRef . Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo 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 funo ShowStatus para receber o percentual da // da compactao do banco de dados SyncAnywhereSetPackUpdateProc(refNum, context, &ShowStatus); ... ... }

2002-2005 by Cialogica Tecnologia em Informtica Ltda

Cliente Palm

88

2.4.3.12 SyncAnywhereSetUnpackUpdateProc UInt32 SyncAnywhereSetPackUpdateProc(UInt16 refNum, UInt32 clientContext, UpdateProcPtr updateProc); Comentrios Configura uma procedure na sua aplicao que ser chamada pelo SyncAnywhere com o percentual da descompactao do banco de dados. Parmetros refNum : Referncia biblioteca SyncAnywhere clientContext : Contexto de acesso biblioteca updateProc : Procedure com apenas um parmetro UInt16 para receber o percentual da descompactao do banco de dados. Os parmetros RefNum e ClientContext devem ter sido recuperados na funo SyncAnywhereOpenRef . Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo 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 funo ShowStatus para receber o percentual da // da descompactao do banco de dados SyncAnywhereSetUnpackUpdateProc(refNum, context, &ShowStatus); ... ... }

2002-2005 by Cialogica Tecnologia em Informtica Ltda

89

SyncAnywhere v1.22

2.4.3.13 SyncAnywhereSetCreatorID UInt32 SyncAnywhereSetCreatorID(UInt16 refNum, UInt32 clientContext, char *creatorID); Comentrios Configura o CreatorID que ser usado para os arquivos compactados. Parmetros refNum : Referncia biblioteca SyncAnywhere clientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . creatorID : O CreatorID, com exatamente quatro caracteres. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.4.3.14 SyncAnywherePackDatabase UInt32 SyncAnywherePackDatabase(UInt16 refNum, UInt32 clientContext, char *DBDest, char *DBSource, UInt16 MaxBlockSize); Comentrios Compacta o banco de dados informado em DBSource, no banco de dados informado em DBDest. Parmetros refNum : Referncia biblioteca SyncAnywhere clientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . DBDest : Nome do banco de dados destino, onde ser compactado o banco de dados de origem. Ateno: O banco de dados destino deve ser apagado antes de chamar esta funo pela primeira vez. As chamadas sucessivas esta funo adicionam bancos de dados compactados DBDest , portanto na primeira vez que usar esta funo, certifique-se que ele no exista, para que a compactao inicie em um banco de dados novo. DBSource : Banco de dados origem, que ser compactado dentro de DBDest. MaxBlockSize : Tamanho mximo do registro que ser gerado no banco de dados DBDest . Este valor normalmente deve ser em torno de 5000, que representa 5000 bytes
2002-2005 by Cialogica Tecnologia em Informtica Ltda

Cliente Palm

90

em cada registro e pode ser configurado em funo da qualidade de transmisso da linha telefnica ou celular. H locais onde melhor que este valor seja menor, em torno de 1000, para minimizar erros na transmisso. O tamanho mnimo 50 bytes e o mximo 30000. Observao importante: para os modelos M100, Zire e outros que tem memria igual ou inferior a 2MB, este parmetro no poder ser maior que 2500 bytes, ou retornar o erro appErrInvalidBlockSize. Estes modelos tem memria "Heap" (memria dinmica liberada pelo PalmOS) extremamente limitada e as alocaes de memria internas necessrias para compactao podem falhar se o valor for maior que 2500 bytes. Se o Banco de Dados tiver que ser descompactado em equipamentos deste tipo, no se esquea de configurar o tamanho do bloco de compactao com as funes SyncAnywhereSetPackDataBlock no Palm e PackSetMaxDataBlock no Servidor. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.4.3.15 SyncAnywhereGetDBCount UInt32 SyncAnywhereGetDBCount(UInt16 refNum, UInt32 clientContext, char *DBSource, UInt16 *DBCount); Comentrios Recupera o nmero de bancos de dados compactados dentro do banco especificado no parmetro DBSource, na varivel informada no parmetro DBCount . O nmero de bancos de dados compactados s pode ser recuperado dos PDBs gerados pelo SyncAnywhere a partir da verso 1.17 . Parmetros refNum : Referncia biblioteca SyncAnywhere clientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . DBSource : O nome do banco de dados compactado com o SyncAnywhere. DBCount : Ponteiro para uma varivel do tipo UInt16 para receber o nmero de bancos de dados compactados. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante.

2002-2005 by Cialogica Tecnologia em Informtica Ltda

91

SyncAnywhere v1.22

2.4.3.16 SyncAnywhereGetDBName UInt32 SyncAnywhereGetDBName(UInt16 refNum, UInt32 clientContext, char *DBSource, UInt16 indx, char *DBName); Comentrios Recupera o nome de bancos de dados compactado dentro do banco especificado no parmetro DBSource , na varivel informada no parmetro DBName , de acordo com o ndice do banco informado no parmetro Indx . O nome dos bancos de dados compactados s podem ser recuperados dos PDBs gerados pelo SyncAnywhere a partir da verso 1.17 . Parmetros refNum : Referncia biblioteca SyncAnywhere clientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . 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 nmero de bancos de dados compactados, utilize a funo SyncAnywhereGetDBCount . DBName : O nome do banco de dados compactado retornado neste parmetro. Ateno: Este parmetro DEVE SER uma varivel PChar ou Array de Char alocada com no mnimo 32 caracteres. A biblioteca ir copiar o nome neste parmetro, no far alocao de memria para o retorno da mensagem. Se voc no alocar espao, poder causar um erro na sua aplicao e Reset no Palm . Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.4.3.17 SyncAnywhereCheckDatabase UInt32 SyncAnywhereCheckDatabase(UInt16 refNum, UInt32 clientContext, char *DBSource); Comentrios Verifica a estrutura de um banco compactado gerado pelo SyncAnywhere. A funo verifica a integridade do nmero de registros no banco e CheckSum (se habilitado). Parmetros refNum : Referncia biblioteca SyncAnywhere clientContext : Contexto de acesso biblioteca
2002-2005 by Cialogica Tecnologia em Informtica Ltda

Cliente Palm

92

Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . 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 cdigo de erro da verificao do PDB. 2.4.3.18 SyncAnywhereUnpackDatabase UInt32 SyncAnywhereUnpackDatabase(UInt16 refNum, UInt32 clientContext, char *DBSource); Comentrios Descompacta os bancos de dados para a memria do Palm. Ateno: Voc deve apagar os bancos de dados que sero descompactados antes que eles sejam descompactados por esta funo ou os registros sero adicionados aos registros dos bancos de dados se j existirem . Parmetros refNum : Referncia biblioteca SyncAnywhere clientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . DBSource : O nome do banco de dados compactado com o SyncAnywhere. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.4.3.19 SyncAnywhereUnpackOneDB UInt32 SyncAnywhereUnpackOneDB(UInt16 refNum, UInt32 clientContext, char *DBSource, char *DBName); Comentrios Descompacta um nico banco de dados para a memria do Palm. Ateno: Voc deve apagar o banco de dados que ser descompactado antes que eles seja descompactado por esta funo ou os registros sero adicionados aos registros
2002-2005 by Cialogica Tecnologia em Informtica Ltda

93

SyncAnywhere v1.22

do banco de dados. Parmetros refNum : Referncia biblioteca SyncAnywhere clientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . DBSource : O nome do banco de dados compactado com o SyncAnywhere. DBName : O nome do banco de dados que ser extrado do banco compactado. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.4.3.20 SyncAnywhereUnpackApplication UInt32 SyncAnywhereUnpackApplication(UInt16 refNum, UInt32 clientContext, char *DBSource); Comentrios Descompacta a aplicao compactada em um Banco de Dados Palm (PDB) para a memria do Palm. Ateno: Voc deve apagar a aplicao que ser descompactada antes que ela seja descompactada por esta funo ou ser retornado um cdigo de erro. possvel utilizar SyncAnywhereSetUnpackUpdateProc para configurar uma funo da sua aplicao para mostrar o andamento da descompactao da aplicao. Parmetros refNum : Referncia biblioteca SyncAnywhere clientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . DBSource : O nome do banco de dados que contm a aplicao compactada com o SyncAnywhere. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante.

2002-2005 by Cialogica Tecnologia em Informtica Ltda

Cliente Palm

94

2.4.3.21 SyncAnywhereSetNetLib UInt32 SyncAnywhereSetNetLib(UInt16 refNum, UInt32 clientContext, UInt16 netLibRef); Comentrios Se voc iniciar a comunicao sem utilizar a funo SyncAnywhereDial , voc deve usar esta funo para informar a referncia Net.Lib aberta antes de usar as funes de comunicao do SyncAnywhere. Parmetros refNum : Referncia biblioteca SyncAnywhere clientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . netLibRef : A referncia Net.Lib. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.4.3.22 SyncAnywhereNetLibOpen UInt32 SyncAnywhereNetLibOpen(UInt16 refNum, UInt32 clientContext); Comentrios Abre a biblioteca de comunicao do Palm. Esta funo deve ser chamada antes de qualquer outra funo de comunicao. Parmetros refNum : Referncia biblioteca SyncAnywhere clientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante.

2002-2005 by Cialogica Tecnologia em Informtica Ltda

95

SyncAnywhere v1.22

2.4.3.23 SyncAnywhereNetLibClose UInt32 SyncAnywhereNetLibClose(UInt16 refNum, UInt32 clientContext); Comentrios Fecha a biblioteca de comunicao do Palm. Esta funo deve ser chamada quando a comunicao no for mais necessria, geralmente a ltima funo a ser chamada no processo de comunicao. Parmetros refNum : Referncia biblioteca SyncAnywhere clientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.4.3.24 SyncAnywhereModemDetect UInt32 SyncAnywhereModemDetect(UInt16 refNum, UInt32 clientContext); Comentrios Detecta se um Modem ou Celular (via cabo serial) est conectado ao Palm. Parmetros refNum : Referncia biblioteca SyncAnywhere clientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.4.3.25 SyncAnywhereDial UInt32 SyncAnywhereDial(UInt16 refNum, UInt32 clientContext, char *phone, UInt16 pulse, char *username, char *password); Comentrios
2002-2005 by Cialogica Tecnologia em Informtica Ltda

Cliente Palm

96

Disca para um servidor de comunicao usando o modem acoplado ao Palm (PalmModem ou Celular via cabo serial). Parmetros refNum : Referncia biblioteca SyncAnywhere clientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . phone : Nmero do telefone. pulse: 1 para discagem de Pulso e ZERO para discagem por Tom. username : Nome do usurio para validao no servidor de comunicao (RAS/Internet). password : Senha de acesso do usurio. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo 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); Comentrios Disca para um servidor de comunicao usando uma Conexo predeterminada. Esta funo pode ser usada para discagem por modem ou celular infravermelho ou Bluetooth. Parmetros refNum : Referncia biblioteca SyncAnywhere clientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . connection : Nome da Conexo preconfigurada na aplicao Prefs, opo Connection (Conexes). phone : Nmero do telefone. username : Nome do usurio para validao no servidor de comunicao (RAS/Internet). password : Senha de acesso do usurio. dnsServer : Endereo IP do Servidor DNS, exemplo '222.111.22.11'. script : Texto do Script para conexo. Caso um Script no seja necessrio, use NULL ou uma String vazia. Para informar um Script neste parmetro, veja os

2002-2005 by Cialogica Tecnologia em Informtica Ltda

97

SyncAnywhere v1.22

comentrios mais abaixo. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. Script para conexo Segundo a documentao da API do PalmOS, o Script muito rgido, se um Script com sintaxe incorreta for informado, os resultados sero imprevisveis. O formato do Script uma sequncia de Strings terminadas em ZERO, com um ZERO extra no final de todas 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 Funo Send Wait For Delay Get IP Prompt Wait for Prompt Send CR Send UserID Send Password Comando s w d g a f s s s Parmetro String String Exemplo s go PPP s password:

Nmero de segundos s 1 g String String String String String a Digite Nome: f ID: s ^N s nomeusuario s senha

OBS: DEVE HAVER APENAS UM NICO ESPAO ENTRE O COMANDO E O PARMETRO. 2.4.3.27 SyncAnywhereOpenActiveService UInt32 SyncAnywhereOpenActiveService(UInt16 refNum, UInt32 clientContext); Comentrios Inicia o servio selecionado no Prefs/Network. Esta funo til quando voc j tem o servio configurado ou quando o servio requer configuraes especiais como comunicao IR (Celular IR), Bluetooth, WiFi, ou necessita configurar scripts. Parmetros

2002-2005 by Cialogica Tecnologia em Informtica Ltda

Cliente Palm

98

refNum : Referncia biblioteca SyncAnywhere clientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.4.3.28 SyncAnywhereOpenService UInt32 SyncAnywhereOpenService(UInt16 refNum, UInt32 clientContext, char *serviceName); Comentrios Inicia um servio j configurado no Prefs/Network. Esta funo til quando voc j tem o servio configurado ou quando o servio requer configuraes especiais como comunicao IR (Celular IR), Bluetooth, WiFi, ou necessita configurar scripts. Parmetros refNum : Referncia biblioteca SyncAnywhere clientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . serviceName : Nome do Servio criado no Prefs/Network. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.4.3.29 SyncAnywhereHangup UInt32 SyncAnywhereHangup(UInt16 refNum, UInt32 clientContext); Comentrios Desconecta do servidor de comunicao, conectado pela funo SyncAnywhereDial ou pela funo SyncAnywhereOpenService . Parmetros refNum : Referncia biblioteca SyncAnywhere clientContext : Contexto de acesso biblioteca

2002-2005 by Cialogica Tecnologia em Informtica Ltda

99

SyncAnywhere v1.22

Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.4.3.30 SyncAnywhereFTPPassiveModeOn UInt32 SyncAnywhereFTPPassiveModeOn(UInt16 refNum, UInt32 clientContext); Comentrios Configura o modo "PASV" (FTP PASSIVO) na conexo FTP (default no SyncAnywhere). Parmetros refNum : Referncia biblioteca SyncAnywhere clientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.4.3.31 SyncAnywhereFTPPassiveModeOff UInt32 SyncAnywhereFTPPassiveModeOff(UInt16 refNum, UInt32 clientContext); Comentrios Configura o modo no passivo (FTP ATIVO) na conexo FTP. Parmetros refNum : Referncia biblioteca SyncAnywhere clientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica
2002-2005 by Cialogica Tecnologia em Informtica Ltda

Cliente Palm

100

erro cujo cdigo est descrito em uma seo mais adiante. 2.4.3.32 SyncAnywhereSetTCPDelay UInt32 SyncAnywhereSetTCPDelay(UInt16 refNum, UInt32 clientContext, UInt16 delay); Comentrios Configura um tempo de espera entre os envios e recebimentos de blocos de dados de/para o Servidor FTP. Esta funo importante quando as conexes so notoriamente lentas, sensveis e suscetveis quedas como conexes via celular e principalmente por infravermelho. Como regra, quanto maior o tamanho do bloco utilizado para compactar o banco de dados atravs da funo SyncAnywherePackDatabase, maior deve ser o tempo de espera passado nesta funo em conexes lentas, principalmente infravermelho. Como parmetro, em testes realizados em conexes IR com mdia qualidade, blocos de 500 bytes compactados podem ser utilizados com o parmetro Delay nesta funo configurado para 3 (300ms). Em conexes com pior qualidade, o tempo deve ser aumentado e o tamanho do bloco diminudo. Parmetros refNum : Referncia biblioteca SyncAnywhere clientContext : Contexto de acesso biblioteca delay : Nmero de "dcimos de segundo" para a espera. DEZ dcimos de segundo equivalem a UM segundo de atraso, portanto, para atrasar TRS dcimos de segundo (300 ms) use SyncAnywhereSetTCPDelay(refNum, clientContext, 3). Os parmetros refNum e clientContext devem ter sido recuperados na funo SyncAnywhereOpenRef . Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.4.3.33 SyncAnywhereFTPOpen UInt32 SyncAnywhereFTPOpen(UInt16 RefNum, UInt32 clientContext, char *hostname, UInt16 Port, char *username, char *password, UInt16 timeout); Comentrios Conecta-se a um servidor FTP. A conexo com um servidor de comunicao (RAS/Internet) j deve ter sido iniciada pela funo SyncAnywhereDial ou por outro meio. Parmetros

2002-2005 by Cialogica Tecnologia em Informtica Ltda

101

SyncAnywhere v1.22

refNum : Referncia biblioteca SyncAnywhere clientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . hostName : O nome ou endereo IP do servidor FTP. port : A porta do servio FTP no servidor. Se a porta for a padro, utilize ZERO neste parmetro. username : O nome do usurio para logon no servidor FTP. password : A senha de acesso do usurio. timeout : Nmero de segundos para timeout no acesso ao servidor FTP. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.4.3.34 SyncAnywhereFTPClose UInt32 SyncAnywhereFTPClose(UInt16 refNum, UInt32 clientContext); Comentrios Fecha a conexo com o servidor FTP. A conexo deve ter sido aberta pela funo SyncAnywhereFTPOpen . Parmetros refNum : Referncia biblioteca SyncAnywhere clientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.4.3.35 SyncAnywhereFTPCd UInt32 SyncAnywhereFTPCd(UInt16 refNum, UInt32 clientContext, char *path); Comentrios Muda o diretrio no servidor FTP. Parmetros

2002-2005 by Cialogica Tecnologia em Informtica Ltda

Cliente Palm

102

refNum : Referncia biblioteca SyncAnywhere clientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . path : Caminho para o diretrio no servidor FTP Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.4.3.36 SyncAnywhereFTPMkd UInt32 SyncAnywhereFTPMkd(UInt16 refNum, UInt32 clientContext, char *name); Comentrios Cria o diretrio no servidor FTP. Parmetros refNum : Referncia biblioteca SyncAnywhere clientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . name: Nome do diretrio a ser criado no servidor FTP. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.4.3.37 SyncAnywhereFTPRmd UInt32 SyncAnywhereFTPRmd(UInt16 refNum, UInt32 clientContext, char *name); Comentrios Remove o diretrio do servidor FTP. Parmetros refNum : Referncia biblioteca SyncAnywhere clientContext : Contexto de acesso biblioteca

2002-2005 by Cialogica Tecnologia em Informtica Ltda

103

SyncAnywhere v1.22

Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . name: Nome do diretrio a ser removido no servidor FTP. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.4.3.38 SyncAnywhereFTPDel UInt32 SyncAnywhereFTPDel(UInt16 refNum, UInt32 clientContext, char *name); Comentrios Remove o arquivo do servidor FTP. Parmetros refNum : Referncia biblioteca SyncAnywhere clientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . name: Nome do arquivo a ser removido no servidor FTP. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.4.3.39 SyncAnywhereFTPPut UInt32 SyncAnywhereFTPPut(UInt16 refNum, UInt32 clientContext, char *DBName); Comentrios Envia um banco de dados ou aplicao do Palm para o servidor FTP. Parmetros refNum : Referncia biblioteca SyncAnywhere clientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef .

2002-2005 by Cialogica Tecnologia em Informtica Ltda

Cliente Palm

104

DBName : Nome do banco de dados ou aplicao para ser enviada ao servidor. O nome no deve conter extenso pois ela ser colocada automaticamente (.PDB/.PRC) dependendo do que estiver sendo enviado. Ateno: o nome do banco de dados case-sensitive . Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.4.3.40 SyncAnywhereFTPGet UInt32 SyncAnywhereFTPGet(UInt16 refNum, UInt32 clientContext, char *name); Comentrios Recebe um banco de dados ou aplicao do servidor FTP. Parmetros refNum : Referncia biblioteca SyncAnywhere clientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . name: Nome do banco de dados ou aplicao para ser recebida do servidor. O nome deve conter a extenso (.PDB/.PRC) dependendo do que estiver sendo recuperado. Ateno: alguns servidores FTP exigem que os nomes de arquivo sejam exatamente como esto armazenados (case-sensitive) . Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.4.3.41 SyncAnywhereFTPRename UInt32 SyncAnywhereFTPRename(UInt16 refNum, UInt32 clientContext, char *oldName, char *newName); Comentrios Renomeia um banco de dados ou aplicao no servidor FTP. Parmetros refum : Referncia biblioteca SyncAnywhere clientContext : Contexto de acesso biblioteca

2002-2005 by Cialogica Tecnologia em Informtica Ltda

105

SyncAnywhere v1.22

Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . oldName : Nome do banco de dados ou aplicao para ser renomeada no servidor. O nome deve conter a extenso (.PDB/.PRC) dependendo do que estiver sendo renomeado. Ateno: alguns servidores FTP exigem que os nomes de arquivo sejam exatamente como esto armazenados (case-sensitive) . newName : Novo nome do arquivo no servidor. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.4.3.42 SyncAnywhereFTPGetLastResponse UInt32 SyncAnywhereFTPGetLastResponse(UInt16 refNum, UInt32 clientContext, char *response); Comentrios Obtm o texto da ltima resposta do servidor FTP. Parmetros refNum : Referncia biblioteca SyncAnywhere clientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . Response : ltima mensagem de resposta do servidor FTP. Este texto recuperado diretamente o servidor FTP, portanto a mensagem do prprio servidor. Ateno: Este parmetro DEVE SER um ponteiro ou Array de char (ex: char response[255]) alocada com 255 caracteres. A biblioteca ir copiar a mensagem neste parmetro, no far alocao de memria para o retorno da mensagem. Se voc no alocar espao, poder causar um erro na sua aplicao e Reset no Palm. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.4.3.43 SyncAnywhereFTPSetServerType UInt32 SyncAnywhereFTPSetServerType(UInt16 refNum, UInt32 clientContext, UInt16 serverType); Comentrios

2002-2005 by Cialogica Tecnologia em Informtica Ltda

Cliente Palm

106

Configura o tipo de listagem de diretrio (comando DIR) retornada pelo servidor FTP. O parmetro ServerType pode ser configurado como ZERO para retorno padro Unix/Linux e UM para retorno padro Windows 2000. Parmetros refNum : Referncia biblioteca SyncAnywhere clientContext : Contexto de acesso biblioteca serverType : ZERO para retorno padro Unix/Linux e UM para retorno padro Windows 2000. Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo 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 does not present the listing, only get the list for later use by SyncAnywhereFTPGetFileCount, SyncAnywhereFTPGetFileName, SyncAnywhereFTPFileExists and SyncAnywhereFTPDirectoryExists calls. SyncAnywhereFTPDir is not automatically called when you connect to the FTP Server 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 an error described in an error table listed later. Example // Obtm a listagem dos arquivos do diretrio // corrente no Servidor Erro = SyncAnywhereFTPDir(refNum, context); if (Erro)

2002-2005 by Cialogica Tecnologia em Informtica Ltda

107

SyncAnywhere v1.22

{ // Erro no comando SyncAnywhereFTPDIR return; } // Recupera o nmero de arquivos no diretrio // corrente no Servidor Erro = SyncAnywhereFTPGetFileCount(refNum, context, &fileCount); if (Erro) { // Erro no comando SyncAnywhereFTPGetFileCount return; } // Mostra o nmero de arquivos StrCopy(Str, "Nmero 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 no existe no Servidor!", NULL, NULL); // Verifica se o diretrio existe no Servidor Erro = SyncAnywhereFTPDirectoryExists(refNum, context, "dados", &exists); if (Erro) { // Erro no comando SyncAnywhereFTPDirectoryExists return; } // Indica se o diretrio existe

2002-2005 by Cialogica Tecnologia em Informtica Ltda

Cliente Palm

108

if (exists) FrmCustomAlert(AlertInfo, "Diretrio existe no Servidor!", NULL, NULL); else FrmCustomAlert(AlertInfo, "Diretrio no existe no Servidor!", NULL, NULL); 2.4.3.45 SyncAnywhereFTPGetFileCount UInt32 SyncAnywhereFTPGetFileCount(UInt16 refNum, UInt32 clientContext, UInt16 *fileCount); Comentrios Recupera o nmero de arquivos no diretrio corrente do Servidor FTP. Ateno: esta funo s funciona se o comando SyncAnywhereFTPDir for chamado antes para recuperar a lista de arquivos do Servidor FTP. Parmetros refNum : Referncia biblioteca SyncAnywhere clientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . fileCount : Ponteiro para uma varivel do tipo UInt16 para receber o nmero de arquivos no diretrio corrente do Servidor FTP. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. Exemplo de utilizao Consulte a funo SyncAnywhereFTPDir para exemplo de utilizao desta funo. 2.4.3.46 SyncAnywhereFTPFileExists UInt32 SyncAnywhereFTPFileExists(UInt16 refNum, UInt32 clientContext, char *fileName, UInt16 *fileExists); Comentrios Verifica se o arquivo existe no diretrio corrente do Servidor FTP. Ateno: esta funo s funciona se o comando SyncAnywhereFTPDir for chamado antes para recuperar a lista de arquivos do Servidor FTP. Parmetros refNum : Referncia biblioteca SyncAnywhere
2002-2005 by Cialogica Tecnologia em Informtica Ltda

109

SyncAnywhere v1.22

clientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . fileName : Nome do arquivo. fileExists : Ponteiro para uma varivel do tipo UInt16 para receber o resultado da verificao. ZERO indica que o arquivo no existe no diretrio corrente do Servidor; UM indica que o arquivo existe. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. Exemplo de utilizao Consulte a funo SyncAnywhereFTPDir para exemplo de utilizao desta funo. 2.4.3.47 SyncAnywhereFTPDirectoryExists UInt32 SyncAnywhereFTPDirectoryExists(UInt16 refNum, UInt32 clientContext, char *dirName, UInt16 *dirExists); Comentrios Verifica se o diretrio existe no diretrio corrente do Servidor FTP. Ateno: esta funo s funciona se o comando SyncAnywhereFTPDir for chamado antes para recuperar a lista de arquivos do Servidor FTP. Parmetros refNum : Referncia biblioteca SyncAnywhere clientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . dirName : Nome do diretrio. dirExists : Ponteiro para uma varivel do tipo UInt16 para receber o resultado da verificao. ZERO indica que o diretrio no existe no diretrio corrente do Servidor; UM indica que o diretrio existe. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. Exemplo de utilizao Consulte a funo SyncAnywhereFTPDir para exemplo de utilizao desta funo.

2002-2005 by Cialogica Tecnologia em Informtica Ltda

Cliente Palm

110

2.4.3.48 SyncAnywhereFTPGetFileName UInt32 SyncAnywhereFTPGetFileName(UInt16 refNum, UInt32 clientContext, UInt16 fileIndex, char *fileName); Comentrios Recupera o nome do arquivo no diretrio do Servidor FTP segundo o ndice especificado. Ateno: esta funo s funciona se o comando SyncAnywhereFTPDir for chamado antes para recuperar a lista de arquivos do Servidor FTP. Parmetros refNum : Referncia biblioteca SyncAnywhere clientContext : Contexto de acesso biblioteca Os dois parmetros devem ter sido recuperados na funo SyncAnywhereOpenRef . fileIndex : ndice do arquivo na lista. O primeiro ndice ZERO. DBName : O nome do arquivo ser retornado neste parmetro. Ateno: Este parmetro DEVE SER uma varivel PChar ou Array de Char alocada com no mnimo 100 caracteres. A biblioteca ir copiar o nome neste parmetro, no far alocao de memria para o retorno da mensagem. Se voc no alocar espao, poder causar um erro na sua aplicao e Reset no Palm. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. Exemplo de utilizao Consulte a funo SyncAnywhereFTPDir para exemplo de utilizao desta funo.

2.5
2.5.1

HB++
Instalao
No diretrio do SyncAnywhere\HB++ , h um arquivo chamado SyncAnywhere.hbm que deve ser adicionado ao seu projeto. Este arquivo contm as informaes de acesso SharedLib do SyncAnywhere, necessrio para que o HB++ possa compilar sua aplicao.

2.5.2

Utilizao
A aplicao exemplo HBDemo sob o diretrio HB++ explica como utilizar as funes da biblioteca para compactar dados e tambm para acessar um servidor FTP. No formulrio da aplicao, sero solicitados todos os dados para que seja possvel a

2002-2005 by Cialogica Tecnologia em Informtica Ltda

111

SyncAnywhere v1.22

conexo com o servidor FTP: O nmero de telefone para discagem ao servidor de comunicao, seja um RAS ou provedor Internet; Tipo de discagem, pulso ou tom; Nome de usurio e senha de acesso ao servidor RAS ou provedor Internet; O endereo IP ou nome do servidor FTP; O nome do usurio e senha para logon no servidor FTP. No arquivo de acesso s funes do SyncAnywhere (SyncAnywhere.hbm), h duas variveis declaradas para acesso s funes do SyncAnywhere que voc utilizar em praticamente todas as funes, conforme demonstrado nas chamadas a seguir. Para chamar uma funo da biblioteca, basta utilizar o formato: SyncAnywhere.XXXXXX(Parmeros), onde "SyncAnywhere." indica o arquivo header onde as funes esto declaradas, XXXXXX o nome dafuno desejada e Parmetros so os parmetros que a funo exige. Ateno: antes de compactar e descompactar arquivos PDB na sua aplicao Delphi utilize o comando SyaGlobal.SetRecordUIDSupport(True), ou em VB Sya.SetRecordUIDSupport True, para habilitar o suporte ao UniqueID dos registros no banco compactado. A no utilizao deste comando acarretar em arquivos incompatveis com o HB++. Antes de utilizar as funes do SyncAnywhere, necessrio carregar a biblioteca com o seguinte comando: ' Carrega biblioteca SyncAnywhere If not SyncAnywhere.OpenRef() Then MsgBox "Erro ao carregar SyncAnywhere!" Exit Sub End If Ateno: no utilize as funes da biblioteca se a chamada acima falhar ou causar um erro na sua aplicao. Para fechar a biblioteca, basta usar: ' Verifica se a biblioteca foi carregada If SyncAnywhere.SyaRefNum=0 then Exit Sub End If ' Fecha biblioteca SyncAnywhere SyncAnywhere.CloseRef O cdigo no boto Iniciar FTP executa comandos da biblioteca: Dim Dim Dim Dim Erro as Long Telefone as String Pulso as Integer Usuario as String

2002-2005 by Cialogica Tecnologia em Informtica Ltda

Cliente Palm

112

Dim Dim Dim Dim Dim

Senha as String ServidorFTP as String UsuarioFTP as String SenhaFTP as String DBPack as new DatabaseInfo

' Verifica se a biblioteca foi carregada If SyncAnywhere.SyaRefNum=0 then MsgBox "Biblioteca SyncAnywhere no foi carregada!" Exit Sub End If ' Verifica se existe um modem --> Inicialmente comentada pelos motivos ' abaixo explicados ' -----------------------------------------------------------------------' Para conexo por Celulares ou Modem via Infravermelho, NO USE a funo ' SyncAnywhere.ModemDetect, pois ela no ser capaz de detectar a ' comunicao com o Celular. Esta funo deve ser usada somente quando a ' conexo for feita atravs de Modem acoplado ao Palm, ou celular via cabo ' -----------------------------------------------------------------------'FldStatus.Text = "Detectando Modem..." 'Erro = SyncAnywhere.ModemDetect(SyncAnywhere.SyaRefNum,SyncAnywhere.SyaContext) 'If Erro>0 Then ' FldStatus.Text = "Modem no detectado!" ' Exit Sub 'End If ' Configura o CreatorID para criao 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 informaes dos campos Telefone = FldTelefone.Text Usuario = FldUsuario.Text Senha = FldSenha.Text ServidorFTP = FldServidor.Text UsuarioFTP = FldFTPUsuario.Text SenhaFTP = FldFTPSenha.Text ' Valida as informaes If Len(Telefone)=0 Then MsgBox "Telefone invlido!" Exit Sub End If

2002-2005 by Cialogica Tecnologia em Informtica Ltda

113

SyncAnywhere v1.22

If Len(Usuario)=0 Then MsgBox "Usuario invlido!" Exit Sub End If If Len(Senha)=0 Then MsgBox "Senha invlido!" Exit Sub End If If Len(ServidorFTP)=0 Then MsgBox "Servidor FTP invlido!" Exit Sub End If If Len(UsuarioFTP)=0 Then MsgBox "UsuarioFTP invlido!" Exit Sub End If If Len(SenhaFTP)=0 Then MsgBox "SenhaFTP invlido!" Exit Sub End If ' Pulso/Tom If ChkPulso.Value Then Pulso = 1 Else Pulso = 0 End If ' Apaga o banco PDBPack, necessrio para que os bancos no 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)

2002-2005 by Cialogica Tecnologia em Informtica Ltda

Cliente Palm

114

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 comunicao FldStatus.Text = "Discando" ' -----------------------------------------------------------------------' Para conexo por Celulares ou Modem via Infravermelho, NO USE a funo ' SyncAnywhere.Dial, pois ela no far a discagem. Ao invs de usar esta ' funo, crie a conexo com o celular na aplicao Prefs do Palm, opo ' Network e configure l o telefone, o modo de conexo, usurio e senha, ' e utilize a funo SyncAnywhere.OpenService(NomeDaConexo) para efetuar ' a discagem. O nome no parmetro deve ser exatamente igual ao nome do ' servio criado, respeitando-se as letras maisculas e minsculas. ' Caso tenha alguma dvida, 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 comunicao 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 Conexo" MsgBox "Erro de Conexo: " & CStr(Erro) ' Desconecta do Servidor de comunicao SyncAnywhere.Hangup SyncAnywhere.SyaRefNum, SyncAnywhere.SyaContext

2002-2005 by Cialogica Tecnologia em Informtica Ltda

115

SyncAnywhere v1.22

' Fecha Net.Lib SyncAnywhere.NetLibClose SyncAnywhere.SyaRefNum, SyncAnywhere.SyaContext Exit Sub End If ' Comando GET de uma aplicao FldStatus.Text = "Recebendo Clientes.prc" Erro = SyncAnywhere.FTPGet(SyncAnywhere.SyaRefNum, SyncAnywhere.SyaContext, "Clientes.prc") If Erro>0 Then If Erro=33800 Then MsgBox "Arquivo no existe no servidor" Else MsgBox "Erro de recepo: " & 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 Conexo FTP, se o envio teve sucesso SyncAnywhere.FTPClose SyncAnywhere.SyaRefNum, SyncAnywhere.SyaContext ' Desconecta do Servidor de comunicao SyncAnywhere.Hangup SyncAnywhere.SyaRefNum, SyncAnywhere.SyaContext ' Fecha Net.Lib SyncAnywhere.NetLibClose SyncAnywhere.SyaRefNum, SyncAnywhere.SyaContext FldStatus.Text = "Comunicao realizada com sucesso!"

O cdigo no boto Analisar PDBPack executa comandos da biblioteca: Dim Dim Dim Dim Dim Erro as Long NumDBs as Integer x as Integer NomeBanco as String DBPack as new DatabaseInfo

' Verifica se a biblioteca foi carregada If SyncAnywhere.SyaRefNum=0 then MsgBox "Biblioteca SyncAnywhere no foi carregada!"

2002-2005 by Cialogica Tecnologia em Informtica Ltda

Cliente Palm

116

Exit Sub End If ' Procura pelo banco PDBPack no Palm If not DBPack.FindByName("PDBPack") Then MsgBox "Banco PDBPack no foi encontrado, comande o Incio do FTP ou carregue o banco de dados PDBPack.pdb do diretrio TestDB no palm ou Emulador" Exit Sub End If ' Verifica o nmero de bancos de dados Compactados em PDBPack Erro = SyncAnywhere.GetDBCount(SyncAnywhere.SyaRefNum, SyncAnywhere.SyaContext, "PDBPack", NumDBs) If Erro>0 Then MsgBox "Erro ao recuperar nmero de bancos: " & CStr(Erro) Exit Sub End If ' Apresenta nmero de Bancos MsgBox "Nmero de bancos de dados em PDBPack: " & CStr(NumDBs) ' Apresenta o nome dos Bancos em PDBPack For x=0 To NumDBs-1 ' Reserva espao na varivel para receber o nome do banco de dados 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 PDBPack Erro = SyncAnywhere.UnpackOneDB(SyncAnywhere.SyaRefNum, SyncAnywhere.SyaContext, "PDBPack", "ProdutosDB") If Erro>0 Then MsgBox "Erro ao descompactar banco ProdutosDB de PDBPack: " & CStr(Erro) Exit Sub End If ' Teste efetuado com sucesso! MsgBox "Banco de dados ProdutosDB descompactado!"

2002-2005 by Cialogica Tecnologia em Informtica Ltda

117

SyncAnywhere v1.22

2.5.3
2.5.3.1

Funes do SyncAnywhere
SyncAnywhere.GetVersion Public Declare Function GetVersion(ByVal iRef as Integer) as Integer Comentrios Recupera a verso da biblioteca. A verso retornada como um nmero inteiro, onde a centena representa a verso e a dezena, a correo da verso, exemplo: a verso 113 representa a verso 1 da biblioteca, com a correo 13. Parmetros iRef: Varivel SyncAnywhere.SyaRefNum. Retorno Inteiro representando a verso da biblioteca.

2.5.3.2

SyncAnywhere.CheckSumOn Public Declare Function CheckSumOn(ByVal iRef as Integer, ByVal iClientContext as Long) as Long Comentrios Habilita a gravao de bytes de verificao de integridade nos registros do banco de dados compactado, para auxiliar na garantia da integridade dos dados transmitidos. Por default, a gravao dos bytes de verificao est desabilitada . O nmero de bytes de verificao de integridade gravados por registro 10. Parmetros iRef: Varivel SyncAnywhere.SyaRefNum. iClientContext : Varivel SyncAnywhere.SyaContext.

2.5.3.3

SyncAnywhere.CheckSumOff Public Declare Function CheckSumOff(ByVal iRef as Integer, ByVal iClientContext as Long) as Long Comentrios Desabilita a gravao de bytes de verificao de integridade nos registros do banco de dados compactado (default). Parmetros

2002-2005 by Cialogica Tecnologia em Informtica Ltda

Cliente Palm

118

iRef: Varivel SyncAnywhere.SyaRefNum. iClientContext : Varivel SyncAnywhere.SyaContext. 2.5.3.4 SyncAnywhere.SetPackDataBlock Public Declare Function SetPackDataBlock(ByVal iRef as Integer, ByVal iClientContext as Long, ByVal MaxAllocSize as Integer) as Long Comentrios Esta funo de extrema importncia se o arquivo tiver que ser descompactado em equipamentos com pouca memria como o Zire, M100, M105 ou qualquer outro que tenha 2MB de memria ou menos. Esses equipamentos tem muito pouca memria dinmica para alocao, assim, a quantidade de memria disponvel depende do tamanho da aplicao. O tamanho mximo do bloco compactado de dados deve ser configurado segundo sua necessidade em equipamentos com pouca memria e neste caso um valor de 500 bytes geralmente adequado aplicaes grandes. Parmetros iRef: Varivel SyncAnywhere.SyaRefNum. iClientContext : Varivel SyncAnywhere.SyaContext. MaxAllocSize : Tamanho mximo (em bytes) do bloco de dados que ser compactado. O default 30000 bytes, mas para equipamentos com pouca memria este valor deve ser muito mais baixo, em torno de 500 bytes quando a aplicao executada grande ou at 5000 bytes se a aplicao 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 Comentrios Configura o CreatorID que ser usado para os arquivos compactados. Parmetros iRef: Varivel SyncAnywhere.SyaRefNum. iClientContext : Varivel SyncAnywhere.SyaContext. CrID: O CreatorID, com exatamente quatro caracteres. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante.

2002-2005 by Cialogica Tecnologia em Informtica Ltda

119

SyncAnywhere v1.22

2.5.3.6

SyncAnywhere.PackDatabase Public Declare Function PackDatabase(ByVal iRef as Integer, ByVal iClientContext as Long, ByVal DBDest as String, ByVal DBSource as String, ByVal MaxBlockSize as Integer) as Long Comentrios Compacta o banco de dados informado em DBSource, no banco de dados informado em DBDest. Parmetros iRef: Varivel SyncAnywhere.SyaRefNum. iClientContext : Varivel SyncAnywhere.SyaContext. DBDest : Nome do banco de dados destino, onde ser compactado o banco de dados de origem. Ateno: O banco de dados destino deve ser apagado antes de chamar esta funo pela primeira vez. As chamadas sucessivas esta funo adicionam bancos de dados compactados DBDest , portanto na primeira vez que usar esta funo, certifique-se que ele no exista, para que a compactao inicie em um banco de dados novo. DBSource : Banco de dados origem, que ser compactado dentro de DBDest. MaxBlockSize : Tamanho mximo do registro que ser gerado no banco de dados DBDest . Este valor normalmente deve ser em torno de 5000, que representa 5000 bytes em cada registro e pode ser configurado em funo da qualidade de transmisso da linha telefnica ou celular. H locais onde melhor que este valor seja menor, em torno de 1000, para minimizar erros na transmisso. O tamanho mnimo 50 bytes e o mximo 30000. Observao importante: para os modelos M100, Zire e outros que tem memria igual ou inferior a 2MB, este parmetro no poder ser maior que 2500 bytes, ou retornar o erro appErrInvalidBlockSize. Estes modelos tem memria "Heap" (memria dinmica liberada pelo PalmOS) extremamente limitada e as alocaes de memria internas necessrias para compactao podem falhar se o valor for maior que 2500 bytes. Se o Banco de Dados tiver que ser descompactado em equipamentos deste tipo, no se esquea de configurar o tamanho do bloco de compactao com as funes SyncAnywhereSetPackDataBlock no Palm e PackSetMaxDataBlock no Servidor. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante.

2.5.3.7

SyncAnywhere.GetDBCount Public Declare Function GetDBCount(ByVal iRef as Integer, ByVal iClientContext as Long, ByVal DBSource as String, ByRef DBCount as Integer) as Long Comentrios

2002-2005 by Cialogica Tecnologia em Informtica Ltda

Cliente Palm

120

Recupera o nmero de bancos de dados compactados dentro do banco especificado no parmetro DBSource, na varivel informada no parmetro DBCount . O nmero de bancos de dados compactados s pode ser recuperado dos PDBs gerados pelo SyncAnywhere a partir da verso 1.17 . Parmetros iRef: Varivel SyncAnywhere.SyaRefNum. iClientContext : Varivel SyncAnywhere.SyaContext. DBSource : O nome do banco de dados compactado pelo SyncAnywhere. DBCount : Varivel do tipo Integer para receber o nmero de bancos de dados. Retorno ZERO indica que houve um erro na recuperao do nmero de bancos de dados compactados ou que o banco de dados no foi gerado com o SyncAnywhere verso 1.17 ou superior. Maior que ZERO indica o nmero de bancos compactados dentro do banco informado. 2.5.3.8 SyncAnywhere.GetDBName Public Declare Function GetDBName(ByVal iRef as Integer, ByVal iClientContext as Long, ByVal DBSource as String, ByVal Indx as Integer, ByRef DBName as String) as Long Comentrios Recupera o nome de bancos de dados compactado dentro do banco especificado no parmetro DBSource , na varivel informada no parmetro DBName , de acordo com o ndice do banco informado no parmetro Indx . O nome dos bancos de dados compactados s podem ser recuperados dos PDBs gerados pelo SyncAnywhere a partir da verso 1.17 . Parmetros iRef: Varivel SyncAnywhere.SyaRefNum. iClientContext : Varivel 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 nmero de bancos de dados compactados, utilize a funo SyncAnywhere.GetDBCount . DBName : O nome do banco de dados compactado retornado neste parmetro. Ateno: Este parmetro DEVE SER uma varivel String previamente preenchida com no mnimo 32 espaos. Se voc no preparar a varivel com os 32 espaos, poder causar um erro na sua aplicao e Reset no Palm. Use a funo Space do HB++ para reservar os espaos . Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante.

2002-2005 by Cialogica Tecnologia em Informtica Ltda

121

SyncAnywhere v1.22

2.5.3.9

SyncAnywhere.CheckDatabase Public Declare Function CheckDatabase(ByVal iRef as Integer, ByVal iClientContext as Long, ByVal SourceDB as String) as Long Comentrios Verifica a estrutura de um banco compactado gerado pelo SyncAnywhere. A funo verifica a integridade do nmero de registros no banco e CheckSum (se habilitado). Parmetros iRef: Varivel SyncAnywhere.SyaRefNum. iClientContext : Varivel 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 cdigo de erro da verificao do PDB.

2.5.3.10 SyncAnywhere.UnpackDatabase Public Declare Function UnpackDatabase(ByVal iRef as Integer, ByVal iClientContext as Long, ByVal DBSource as String) As Long Comentrios Descompacta os bancos de dados para a memria do Palm. Ateno: Voc deve apagar os bancos de dados que sero descompactados antes que eles sejam descompactados por esta funo ou os registros sero adicionados aos registros dos bancos de dados se j existirem . Parmetros iRef: Varivel SyncAnywhere.SyaRefNum. iClientContext : Varivel SyncAnywhere.SyaContext. DBSource : O nome do banco de dados compactado com o SyncAnywhere. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante.

2002-2005 by Cialogica Tecnologia em Informtica Ltda

Cliente Palm

122

2.5.3.11 SyncAnywhere.UnpackOneDB Public Declare Function UnpackOneDB(ByVal iRef as Integer, ByVal iClientContext as Long, ByVal DBSource as String, ByVal DBName as String) as Long Comentrios Descompacta um nico banco de dados para a memria do Palm. Ateno: Voc deve apagar o banco de dados que ser descompactado antes que eles seja descompactado por esta funo ou os registros sero adicionados aos registros do banco de dados. Parmetros iRef: Varivel SyncAnywhere.SyaRefNum. iClientContext : Varivel SyncAnywhere.SyaContext. DBSource : O nome do banco de dados compactado com o SyncAnywhere. DBName : O nome do banco de dados que ser extrado do banco compactado. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.5.3.12 SyncAnywhere.UnpackApplication Public Declare Function UnpackApplication(ByVal iRef as Integer, ByVal iClientContext as Long, ByVal DBSource as String) as Long Comentrios Descompacta a aplicao compactada em um Banco de Dados Palm (PDB) para a memria do Palm. Ateno: Voc deve apagar a aplicao que ser descompactada antes que ela seja descompactada por esta funo ou ser retornado um cdigo de erro. Parmetros iRef: Varivel SyncAnywhere.SyaRefNum. iClientContext : Varivel SyncAnywhere.SyaContext. DBSource : O nome do banco de dados que contm a aplicao compactada com o SyncAnywhere. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante.

2002-2005 by Cialogica Tecnologia em Informtica Ltda

123

SyncAnywhere v1.22

2.5.3.13 SyncAnywhere.NetLibOpen Public Declare Function NetLibOpen(ByVal iRef as Integer, ByVal iClientContext as Long) as Long Comentrios Abre a biblioteca de comunicao do Palm. Esta funo deve ser chamada antes de qualquer outra funo de comunicao. Parmetros iRef: Varivel SyncAnywhere.SyaRefNum. iClientContext : Varivel SyncAnywhere.SyaContext. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.5.3.14 SyncAnywhere.NetLibClose Public Declare Function NetLibClose(ByVal iRef as Integer, ByVal iClientContext as Long) as Long Comentrios Fecha a biblioteca de comunicao do Palm. Esta funo deve ser chamada quando a comunicao no for mais necessria, geralmente a ltima funo a ser chamada no processo de comunicao. Parmetros iRef: Varivel SyncAnywhere.SyaRefNum. iClientContext : Varivel SyncAnywhere.SyaContext. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.5.3.15 SyncAnywhere.ModemDetect Public Declare Function ModemDetect(ByVal iRef as Integer, ByVal iClientContext as Long) as Long Comentrios Detecta se um Modem ou Celular (via cabo serial) est conectado ao Palm.

2002-2005 by Cialogica Tecnologia em Informtica Ltda

Cliente Palm

124

Parmetros iRef: Varivel SyncAnywhere.SyaRefNum. iClientContext : Varivel SyncAnywhere.SyaContext. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo 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 Comentrios Disca para um servidor de comunicao usando o modem acoplado ao Palm (PalmModem ou Celular via cabo serial). Parmetros iRef: Varivel SyncAnywhere.SyaRefNum. iClientContext : Varivel SyncAnywhere.SyaContext. Phone: Nmero do telefone para discagem. Pulse : 1 para discagem por Pulso ou ZERO para discagem por Tom. Username : Nome do usurio para validao no servidor de comunicao (RAS/Internet). Password : Senha de acesso do usurio. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.5.3.17 SyncAnywhere.DialWireless Public Declare Function DialWireless(ByVal iRef as Integer, ByVal iClientContext as Long, ByVal Connection as String, ByVal Phone as String, ByVal UserName as String, ByVal Password as String, ByVal PrimaryDNS as String, ByVal Script as String) as Long Comentrios Disca para um servidor de comunicao usando uma Conexo predeterminada. Esta funo pode ser usada para discagem por modem ou celular infravermelho ou Bluetooth. Parmetros

2002-2005 by Cialogica Tecnologia em Informtica Ltda

125

SyncAnywhere v1.22

iRef: Varivel SyncAnywhere.SyaRefNum. iClientContext : Varivel SyncAnywhere.SyaContext. Connection : Nome da Conexo preconfigurada na aplicao Prefs , opo Connection (Conexes). Phone: Nmero do telefone. Username : Nome do usurio para validao no servidor de comunicao (RAS/Internet). Password : Senha de acesso do usurio. PrimaryDNS : Endereo IP do Servidor DNS, exemplo '222.111.22.11'. Script : Texto do Script para conexo. Caso um Script no seja necessrio, use uma String vazia. Para informar um Script neste parmetro, veja os comentrios mais abaixo. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. Script para conexo Segundo a documentao da API do PalmOS, o Script muito rgido, se um Script com sintaxe incorreta for informado, os resultados sero imprevisveis. O formato do Script uma sequncia de Strings terminadas em ZERO, com um ZERO extra no final de todas 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 Funo Send Wait For Delay Get IP Prompt Wait for Prompt Send CR Send UserID Send Password Comando s w d g a f s s s String String String String String Parmetro String String Exemplo s go PPP s password: g a Digite Nome: f ID: s ^N s nomeusuario s senha

Nmero de segundos s 1

OBS: DEVE HAVER APENAS UM NICO ESPAO ENTRE O COMANDO E O PARMETRO.

2002-2005 by Cialogica Tecnologia em Informtica Ltda

Cliente Palm

126

2.5.3.18 SyncAnywhere.OpenActiveService Public Declare Function OpenActiveService(ByVal iRef as Integer, ByVal iClientContext as Long) as Long Comentrios Inicia o servio selecionado no Prefs/Network. Esta funo til quando voc j tem o servio configurado ou quando o servio requer configuraes especiais como comunicao IR (Celular IR), Bluetooth, WiFi, ou necessita configurar scripts. Parmetros iRef: Varivel SyncAnywhere.SyaRefNum. iClientContext : Varivel SyncAnywhere.SyaContext. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.5.3.19 SyncAnywhere.OpenService Public Declare Function OpenService(ByVal iRef as Integer, ByVal iClientContext as Long, ByVal ServiceName as String) as Long Comentrios Inicia um servio j configurado no Prefs/Network. Esta funo til quando voc j tem o servio configurado ou quando o servio requer configuraes especiais como comunicao IR (Celular IR), Bluetooth, WiFi, ou necessita configurar scripts. Parmetros iRef: Varivel SyncAnywhere.SyaRefNum. iClientContext : Varivel SyncAnywhere.SyaContext. ServiceName : Nome do Servio criado no Prefs/Network. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.5.3.20 SyncAnywhere.Hangup Public Declare Function Hangup(ByVal iRef as Integer, ByVal iClientContext as Long) as Long Comentrios

2002-2005 by Cialogica Tecnologia em Informtica Ltda

127

SyncAnywhere v1.22

Desconecta do servidor de comunicao, conectado pela funo SyncAnywhereDial ou pela funo SyncAnywhereOpenService . Parmetros iRef: Varivel SyncAnywhere.SyaRefNum. iClientContext : Varivel SyncAnywhere.SyaContext. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.5.3.21 SyncAnywhere.FTPPassiveModeOn Public Declare Function FTPPassiveModeOn(ByVal iRef as Integer, ByVal iClientContext as Long) as Long Comentrios Configura o modo "PASV" (FTP PASSIVO) na conexo FTP (default no SyncAnywhere). Parmetros iRef: Varivel SyncAnywhere.SyaRefNum. iClientContext : Varivel SyncAnywhere.SyaContext. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.5.3.22 SyncAnywhere.FTPPassiveModeOff Public Declare Function FTPPassiveModeOff(ByVal iRef as Integer, ByVal iClientContext as Long) as Long Comentrios Configura o modo no passivo (FTP ATIVO) na conexo FTP. Parmetros iRef: Varivel SyncAnywhere.SyaRefNum. iClientContext : Varivel SyncAnywhere.SyaContext. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante.
2002-2005 by Cialogica Tecnologia em Informtica Ltda

Cliente Palm

128

2.5.3.23 SyncAnywhere.SetTCPDelay Public Declare Function SetTCPDelay(ByVal iRef as Integer, ByVal iClientContext as Long, ByVal Delay as Integer) as Long Comentrios Configura um tempo de espera entre os envios e recebimentos de blocos de dados de/para o Servidor FTP. Esta funo importante quando as conexes so notoriamente lentas, sensveis e suscetveis quedas como conexes via celular e principalmente por infravermelho. Como regra, quanto maior o tamanho do bloco utilizado para compactar o banco de dados atravs da funo SyncAnywherePackDatabase, maior deve ser o tempo de espera passado nesta funo em conexes lentas, principalmente infravermelho. Como parmetro, em testes realizados em conexes IR com mdia qualidade, blocos de 500 bytes compactados podem ser utilizados com o parmetro Delay nesta funo configurado para 3 (300ms). Em conexes com pior qualidade, o tempo deve ser aumentado e o tamanho do bloco diminudo. Parmetros iRef: Varivel SyncAnywhere.SyaRefNum. iClientContext : Varivel SyncAnywhere.SyaContext. Delay : Nmero de "dcimos de segundo" para a espera. DEZ dcimos de segundo equivalem a UM segundo de atraso, portanto, para atrasar TRS dcimos de segundo (300 ms) use SyncAnywhere.SetTCPDelay(Context, 3). 2.5.3.24 SyncAnywhere.FTPOpen Public Declare Function FTPOpen(ByVal iRef as Integer, ByVal iClientContext as Long, ByVal HostName as String, ByVal Port as Integer, ByVal UserName as String, ByVal Password as String, ByVal Timeout as Integer) as Long Comentrios Conecta-se a um servidor FTP. A conexo com um servidor de comunicao (RAS/Internet) j deve ter sido iniciada pela funo SyncAnywhere.Dial ou por outro meio. Parmetros iRef: Varivel SyncAnywhere.SyaRefNum. iClientContext : Varivel SyncAnywhere.SyaContext. Port : Porta para conexo no Servidor FTP. Se a porta for padro, passe ZERO neste parmetro. HostName : O nome ou endereo IP do servidor FTP. Username : O nome do usurio para logon no servidor FTP. Password : A senha de acesso do usurio. Timeout : Tempo (em segundos) para que as funes de comunicao utilizem como tempo limite de conexo. O default 10 segundos. H servidores que necessitam
2002-2005 by Cialogica Tecnologia em Informtica Ltda

129

SyncAnywhere v1.22

de um tempo maior devido sua lentido ou quantidade maior de usurios conectados. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.5.3.25 SyncAnywhere.FTPClose Public Declare Function FTPClose(ByVal iRef as Integer, ByVal iClientContext as Long) as Long Comentrios Fecha a conexo com o servidor FTP. A conexo deve ter sido aberta pela funo SyncAnywhere.FTPOpen . Parmetros iRef: Varivel SyncAnywhere.SyaRefNum. iClientContext : Varivel SyncAnywhere.SyaContext. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo 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 Comentrios Muda o diretrio no servidor FTP. Parmetros iRef: Varivel SyncAnywhere.SyaRefNum. iClientContext : Varivel SyncAnywhere.SyaContext. Path : Caminho para o diretrio no servidor FTP Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante.

2002-2005 by Cialogica Tecnologia em Informtica Ltda

Cliente Palm

130

2.5.3.27 SyncAnywhere.FTPMkd Public Declare Function FTPMkd(ByVal iRef as Integer, ByVal iClientContext as Long, ByVal Name as String) as Long Comentrios Cria o diretrio no servidor FTP. Parmetros iRef: Varivel SyncAnywhere.SyaRefNum. iClientContext : Varivel SyncAnywhere.SyaContext. Name : Nome do diretrio a ser criado no servidor FTP. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.5.3.28 SyncAnywhere.FTPRmd Public Declare Function FTPRmd(ByVal iRef as Integer, ByVal iClientContext as Long, ByVal Name as String) as Long Comentrios Remove o diretrio do servidor FTP. Parmetros iRef: Varivel SyncAnywhere.SyaRefNum. iClientContext : Varivel SyncAnywhere.SyaContext. Name : Nome do diretrio a ser removido no servidor FTP. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.5.3.29 SyncAnywhere.FTPDel Public Declare Function FTPDel(ByVal iRef as Integer, ByVal iClientContext as Long, ByVal Name as String) as Long Comentrios Remove o arquivo do servidor FTP. Parmetros
2002-2005 by Cialogica Tecnologia em Informtica Ltda

131

SyncAnywhere v1.22

iRef: Varivel SyncAnywhere.SyaRefNum. iClientContext : Varivel SyncAnywhere.SyaContext. Name : Nome do arquivo a ser removido no servidor FTP. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.5.3.30 SyncAnywhere.FTPPut Public Declare Function FTPPut(ByVal iRef as Integer, ByVal iClientContext as Long, ByVal DBName as String) as Long Comentrios Envia um banco de dados ou aplicao do Palm para o servidor FTP. Parmetros iRef: Varivel SyncAnywhere.SyaRefNum. iClientContext : Varivel SyncAnywhere.SyaContext. DBName : Nome do banco de dados ou aplicao para ser enviada ao servidor. O nome no deve conter extenso pois ela ser colocada automaticamente (.PDB/.PRC) dependendo do que estiver sendo enviado. Ateno: o nome do banco de dados case-sensitive . Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.5.3.31 SyncAnywhere.FTPGet Public Declare Function FTPGet(ByVal iRef as Integer, ByVal iClientContext as Long, ByVal Name as String) as Long Comentrios Recebe um banco de dados ou aplicao do servidor FTP. Parmetros iRef: Varivel SyncAnywhere.SyaRefNum. iClientContext : Varivel SyncAnywhere.SyaContext. Name : Nome do banco de dados ou aplicao para ser recebida do servidor. O nome deve conter a extenso (.PDB/.PRC) dependendo do que estiver sendo recuperado. Ateno: alguns servidores FTP exigem que os nomes de arquivo sejam exatamente como esto armazenados (case-sensitive) . Retorno
2002-2005 by Cialogica Tecnologia em Informtica Ltda

Cliente Palm

132

ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.5.3.32 SyncAnywhere.FTPRename Public Declare Function FTPRename(ByVal iRef as Integer, ByVal iClientContext as Long, ByVal OldName as String, ByVal NewName as String) as Long Comentrios Renomeia um banco de dados ou aplicao no servidor FTP. Parmetros iRef: Varivel SyncAnywhere.SyaRefNum. iClientContext : Varivel SyncAnywhere.SyaContext. OldName : Nome do banco de dados ou aplicao para ser renomeada no servidor. O nome deve conter a extenso (.PDB/.PRC) dependendo do que estiver sendo renomeado. Ateno: alguns servidores FTP exigem que os nomes de arquivo sejam exatamente como esto armazenados (case-sensitive) . NewName : Novo nome do arquivo no servidor. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo 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 Comentrios Obtm o texto da ltima resposta do servidor FTP. Parmetros iRef: Varivel SyncAnywhere.SyaRefNum. iClientContext : Varivel SyncAnywhere.SyaContext. Response : ltima mensagem de resposta do servidor FTP. Este texto recuperado diretamente o servidor FTP, portanto a mensagem do prprio servidor. Ateno: Este parmetro DEVE SER uma varivel String previamente preenchida com 255 espaos. Se voc no preparar a varivel com os 255 espaos, poder causar um erro na sua aplicao e Reset no Palm. Use a funo Space do HB++ para reservar os espaos . Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante.
2002-2005 by Cialogica Tecnologia em Informtica Ltda

133

SyncAnywhere v1.22

2.5.3.34 SyncAnywhere.FTPSetServerType Public Declare Function FTPSetServerType(ByVal iRef as Integer, ByVal iClientContext as Long, ByVal ServerType as Integer) as Long Comentrios Configura o tipo de listagem de diretrio (comando DIR) retornada pelo servidor FTP. O parmetro ServerType pode ser configurado como ZERO para retorno padro Unix/Linux e UM para retorno padro Windows 2000. Parmetros iRef: Varivel SyncAnywhere.SyaRefNum. iClientContext : Varivel SyncAnywhere.SyaContext. ServerType : ZERO para retorno padro Unix/Linux e UM para retorno padro Windows 2000. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 2.5.3.35 SyncAnywhere.FTPDir Public Declare Function FTPDir(ByVal iRef as Integer, ByVal iClientContext as Long) as Long Comentrios Obtm a listagem dos arquivos do diretrio corrente no Servidor FTP. Esta operao no apresenta os arquivos no formulrio, obtm a lista para uso posterior pelas funes SyncAnywhere.FTPGetFileCount, SyncAnywhere.FTPGetFileName, SyncAnywhere.FTPFileExists e SyncAnywhere.FTPDirectoryExists. SyncAnywhereFTPDir no chamada automaticamente ao se conectar ao Servidor FTP e na mudana de diretrio no Servidor para otimizar a transmisso. Fica a critrio do desenvolvedor obter ou no a lista de arquivos, atravs da utilizao ou no desta funo. Parmetros iRef: Varivel SyncAnywhere.SyaRefNum. iClientContext : Varivel SyncAnywhere.SyaContext. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. Exemplo de utilizao
2002-2005 by Cialogica Tecnologia em Informtica Ltda

Cliente Palm

134

' Obtm a listagem dos arquivos Do diretrio ' 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 nmero de arquivos no diretrio ' corrente no Servidor SyncAnywhere.FTPGetFileCount(SyncAnywhere.SyaRefNum, SyncAnywhere.SyaContext, FileCount) ' Mostra o nmero de arquivos MsgBox "Nmero 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 no existe no Servidor!" End If ' Verifica se o diretrio existe no Servidor SyncAnywhere.FTPDirExists(SyncAnywhere.SyaRefNum, SyncAnywhere.SyaContext , "dados", Exists) ' Indica se o diretrio existe If Exists>0 Then MsgBox "Diretrio existe no Servidor!" Else MsgBox "Diretrio no existe no Servidor!" End If

2002-2005 by Cialogica Tecnologia em Informtica Ltda

135

SyncAnywhere v1.22

2.5.3.36 SyncAnywhere.FTPGetFileCount Public Declare Function FTPGetFileCount(ByVal iRef as Integer, ByVal iClientContext as Long, ByRef FileCount as Integer) as Long Comentrios Recupera o nmero de arquivos no diretrio corrente do Servidor FTP. Ateno: esta funo s funciona se o comando SyncAnywhere.FTPDir for chamado antes para recuperar a lista de arquivos do Servidor FTP. Parmetros iRef: Varivel SyncAnywhere.SyaRefNum. iClientContext : Varivel SyncAnywhere.SyaContext. FileCount : Varivel do tipo Integer para receber o nmero de arquivos. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. Exemplo de utilizao Consulte a funo SyncAnywhere.FTPDir para exemplo de utilizao desta funo. 2.5.3.37 SyncAnywhere.FTPFileExists Public Declare Function FTPFileExists(ByVal iRef as Integer, ByVal iClientContext as Long, ByVal FileName as String, ByRef FileExists as Integer) as Long Comentrios Verifica se o arquivo existe no diretrio corrente do Servidor FTP. Ateno: esta funo s funciona se o comando SyncAnywhere.FTPDir for chamado antes para recuperar a lista de arquivos do Servidor FTP. Parmetros iRef: Varivel SyncAnywhere.SyaRefNum. iClientContext : Varivel SyncAnywhere.SyaContext. FileName : Nome do arquivo. FileExists : Varivel do tipo Integer para receber a resposta. ZERO indica que o arquivo no existe no diretrio corrente do Servidor; UM indica que o arquivo existe. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante.

2002-2005 by Cialogica Tecnologia em Informtica Ltda

Cliente Palm

136

Exemplo de utilizao Consulte a funo SyncAnywhere.FTPDir para exemplo de utilizao desta funo. 2.5.3.38 SyncAnywhere.FTPDirExists Public Declare Function FTPDirExists(ByVal iRef as Integer, ByVal iClientContext as Long, ByVal DirName as String, ByRef DirExists as Integer) as Long Comentrios Verifica se o diretrio existe no diretrio corrente do Servidor FTP. Ateno: esta funo s funciona se o comando SyncAnywhere.FTPDir for chamado antes para recuperar a lista de arquivos do Servidor FTP. Parmetros iRef: Varivel SyncAnywhere.SyaRefNum. iClientContext : Varivel SyncAnywhere.SyaContext. DirName : Nome do diretrio. DirExists : Varivel do tipo Integer para receber a resposta. ZERO indica que o diretrio no existe no diretrio corrente do Servidor; UM indica que o diretrio existe. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. Exemplo de utilizao Consulte a funo SyncAnywhere.FTPDir para exemplo de utilizao desta funo. 2.5.3.39 SyncAnywhere.FTPGetFileName Public Declare Function FTPGetFileName(ByVal iRef as Integer, ByVal iClientContext as Long, ByVal FileIndex as Integer, ByRef FileName as String) as Long Comentrios Recupera o nome do arquivo no diretrio do Servidor FTP segundo o ndice especificado. Ateno: esta funo s funciona se o comando SyncAnywhere.FTPDir for chamado antes para recuperar a lista de arquivos do Servidor FTP. Parmetros iRef: Varivel SyncAnywhere.SyaRefNum. iClientContext : Varivel SyncAnywhere.SyaContext. FileIndex : Varivel do tipo Short para indicar o ndice do arquivo na lista. O primeiro ndice ZERO.
2002-2005 by Cialogica Tecnologia em Informtica Ltda

137

SyncAnywhere v1.22

FileName : O nome do arquivo ser retornado neste parmetro. Ateno: Este parmetro DEVE SER uma varivel String previamente preenchida com no mnimo 100 espaos. Se voc no preparar a varivel com pelo menos 100 espaos, poder causar um erro na sua aplicao e Reset no Palm. Use a funo Space do HB++ para reservar os espaos . Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. Exemplo de utilizao Consulte a funo SyncAnywhere.FTPDir para exemplo de utilizao desta funo.

2002-2005 by Cialogica Tecnologia em Informtica Ltda

Cliente Palm

138

2.6

Cdigos de Erro do SyncAnywhere no Palm


Compactao Identificao do Erro appErrSourceDBNotFound appErrCreateDestDB appErrDestDBOpen appErrDestDBFull appErrSourceDBOpen appErrSourceDBInfo appErrGettingDestRecord appErrCreatingRecord appErrResizingRecord appErrLockingDestRecord appErrGettingSourceRecord appErrLockingSourceRecord appErrMemoryAllocation appErrGettingRecordInfo appErrPackingData_MEMERROR appErrPackingData_BUFERROR appErrPackingData_STREAMERROR e Cdigo Descompactao Descrio do Erro

32768 Banco de dados origem no foi encontrado 32769 Erro de criao do banco de dados destino 32770 Erro de abertura do banco de dados destino 32771 Banco de dados destino no pode mais receber registros 32772 Erro de abertura no banco de dados origem 32773 No foi possvel obter a informao do banco origem 32774 Erro de recuperao de registro do banco destino 32775 Erro de criao do registro no banco destino 32776 Erro de redimensionamento do registro no banco destino 32777 Erro de acesso ao registro no banco destino 32778 Erro obtendo registro no banco origem 32779 Erro acessando registro no banco origem 32780 Erro de alocao de memria para o registro no banco destino 32781 Erro recuperando informaes do registro no banco origem 32782 Erro compactando dados (Z_MEM_ERROR) 32783 Erro compactando dados (Z_BUF_ERROR) 32784 Erro compactando dados (Z_STREAM_ERROR)

2002-2005 by Cialogica Tecnologia em Informtica Ltda

139

SyncAnywhere v1.22

appErrPackingData appErrRecordTooBig

32785 Erro compactando dados (outro) 32786 O registro muito grande para ser armazenado appErrInvalidBlockSize 32787 Tamanho do bloco no vlido. Mnimo 50, mximo 30000. Para Palms com 2MB ou menos de memria, o valor mximo permitido 2500 appErrUnpackNoRecords 32788 No h registros no banco de dados compactado appErrNotSyncAnywhereDB 32789 Banco de dados no foi compactado pelo SyncAnywhere appErrUnpackingData_MEMERROR 32790 Erro descompactando dados (Z_MEM_ERROR). Se voc est descompactando os dados em um equipamento com 2MB ou menos de memria, necessrio diminuir o tamanho do bloco na compactao no Servidor ou no Palm. Veja as funes SyncAnywhereSetPackDataBlock 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 appErrAppInfoTooBig appErrSortInfoTooBig appErrBlockSizeIsInvalid appErrDataBlockSizeTooBig 32794 Erro ao obter dados para descompactao 32795 AppInfo tem mais de maior que o tamanho limite do bloco (em bytes) 32796 SortInfo tem mais de maior que o tamanho limite do bloco (em bytes) 32797 Tamanho do bloco no suportado nesta plataforma 32798 Tamanho do bloco de dados compactados no suportado neste plataforma. Use a funo PackSetMaxDataBlock no Servidor com um valor mximo de 2500. 32799 Erro ao recuperar a AppInfoArea do banco de dados compactado 32800 Banco de dados informado no contm informao dos bancos compactados. Verifique se o banco compactado foi gerado com o SyncAnywhere a partir da verso 1.17 32801 O ndice informado para recuperao do nome do banco de dados compactado no vlido. O ndice comea em ZERO para o primeiro banco e vai at o nmero de bancos menos um.

appErrDestAppInfo appErrNoDBInfo

appErrInvalidIndex

2002-2005 by Cialogica Tecnologia em Informtica Ltda

Cliente Palm

140

appErrDBNotFound appErrInvalidCreatorID appErrCheckSum

appErrSourceAppInfo

appErrApplicationExists

appErrCreateApp

appErrDestAppOpen appErrGettingResource appErrResizingResource appErrCreatingResource appErrLockingResource appErrNumberOfRecords

32802 Banco de dados no foi encontrado no banco compactado. 32803 CreatorID no vlido; deve ter 4 caracteres. 32804 Erro de verificao do arquivo compactado. A transferncia do arquivo do Servidor FTP deve ter sido interrompida ou o arquivo est corrompido. Retransmita o arquivo compactado. 32805 Erro ao recuperar a DatabaseInfo do arquivo compactado, o arquivo deve estar corrompido. 32806 A Aplicao j existe na memria do Palm. Voc deve apaga-la antes de descompacta-la. 32807 No foi possvel criar a aplicao na memria do Palm. Verifique se a memria est cheia ou se o Palm est bloqueando a aplicao. Um Reset pode funcionar. 32808 Erro de abertura da aplicao. 32809 Erro ao obter Resource. 32810 Erro ao redimensionar Resource. 32811 Erro ao criar Resource. 32812 Erro ao bloquear Resource para uso. 32813 Nem todos os registros foram transferidos, banco de dados est corrompido

2002-2005 by Cialogica Tecnologia em Informtica Ltda

141

SyncAnywhere v1.22

FTP Identificao do Erro ftpErrConnection ftpErrReply ftpErrAuthentication ftpErrNotOpen ftpErrMemoryAllocation ftpErrConnectionClose ftpErrSocketReadError ftpErrTimeout ftpErrLoginRequired ftpErrInvalidPath ftpErrPathDoesNotExist ftpErrInvalidName ftpErrDirectoryExists ftpErrFailedCreatingDir ftpErrDirDoesNotExist ftpErrFailedRemovingDir ftpErrDBDoesNotExit ftpErrBinaryMode ftpErrSocketCreate ftpErrSocketBind ftpErrSocketListen ftpErrSocketGetAddr ftpErrPortCmd ftpErrGettingDBAttr ftpErrStorCmd ftpErrSocketAccept ftpErrOpenDB ftpErrGettingResource ftpErrGettingAppInfo ftpErrGettingSortInfo ftpErrGettingRecord Cdigo Descrio do Erro

33768 No foi possvel conectar ao servidor, verifique IP/Porta 33769 No foi possvel obter resposta do servidor, verifique a conexo 33770 Erro de autenticao 33771 Comunicao FTP no foi previamente aberta 33772 Erro de alocao de memria 33773 Conexo FTP est fechada 33774 Erro de leitura do Socket 33775 Conexo FTP estourou tempo limite de timeout 33776 Informaes de login (User/Pass) necessrio 33777 Diretrio no vlido 33778 Diretrio no existe no servidor FTP 33779 Nome invlido 33780 Diretrio j existe no servidor FTP 33781 Falha de criao do diretrio no servidor FTP 33782 Diretrio no existe no servidor FTP 33783 Falha ao remover diretrio do servidor FTP 33784 Banco de dados no existe 33785 Erro ao entrar no modo binrio 33786 Erro de criao no Socket 33787 Erro ao vincular o Socket 33788 Erro ao esperar por conexes 33789 Erro ao obter o endereo do Socket 33790 Erro no comando PORT no servidor FTP 33791 Erro ao recuperar os atributos do banco de dados 33792 Erro ao enviar o comando STOR ao servidor FTP 33793 Erro ao aceitar o Socket 33794 Erro de abertura no banco de dados 33795 Erro ao recuperar Resource da aplicao 33796 Erro ao recuperar AppInfoArea 33797 Erro ao recuperar SortInfoArea 33798 Erro recuperando o registro do banco de dados
2002-2005 by Cialogica Tecnologia em Informtica Ltda

Cliente Palm

142

ftpErrSendingData

ftpErrFileDoesNotExit ftpErrReceivingData

33799 Erro enviando dados ao servidor FTP. Verifique se conexo caiu ou se voc utilizou o comando SyncAnywhereFTPClose acidentalmente em alguma parte do cdigo 33800 Arquivo no existe no servidor FTP 33801 Erro ao receber dados o servidor FTP. Verifique se conexo caiu ou se voc utilizou o comando SyncAnywhereFTPClose acidentalmente em alguma parte do cdigo 33802 Erro ao criar banco de dados no Palm 33803 Erro configurando atributos do banco de dados 33804 Erro ao criar Resource 33805 Erro ao recuperar o ndice do Resource 33806 O arquivo est corrompido no servidor FTP 33807 Erro ao criar registro 33808 Erro ao redimensionar resource 33809 Erro ao redimensionar registro 33810 Erro de envio do comando PASV ao servidor FTP 33811 Erro de conexo ao servidor FTP. Verifique se seu Servidor FTP est sob um Firewall ou sob uma rede cuja porta do Servidor redirecionada por outro equipamento. Se este for o caso, antes de conectar ao Servidor FTP com SyncAnywhereFTPOpen, utilize o comando SyncAnywhereFTPPassiveModeOff para que o Servidor FTP faa a conexo no Palm. 33812 Erro no comando PUT. Verifique se conexo caiu. Geralmente este erro devido a problemas de linha telefnica ou timeout no Servidor FTP. Se o problema for frequente, use o comando SyncAnywhereSetTCPDelay antes de se conectar ao servidor FTP. O valor do atraso pode ser de 1 a 5, acima disso s se o servidor ou a qualidade da comunicao for muito ruim, pois a comunicao ficar mais lenta, apesar de possvel. Utilize este comando em combinao com a reduo do tamanho dos blocos do banco compactado, por exemplo blocos de 300 a 1000 bytes.

ftpErrCreatingDB ftpErrSettingDBAttr ftpErrCreatingResource ftpErrGettingResIndex ftpErrBadFile ftpErrCreatingRecord ftpErrResizingResource ftpErrResizingRecord ftpErrPasvCmd ftpErrSocketConnect

ftpErrPut

2002-2005 by Cialogica Tecnologia em Informtica Ltda

143

SyncAnywhere v1.22

frpErrGet

33813

frpErrSendingUsername ftpErrSendingPassword ftpErrFileDoesNotExist ftpErrFailedRemovingFile ftpErrFailedRenamingFile ftpErrDir ftpErrDirWasNotCalled

33814 33815 33816 33817 33818 33819 33820

Erro no comando GET. Verifique se conexo caiu. Veja explicao no erro 33812 acima Erro de envio do nome do usurio ao servidor FTP Erro de envio da senha do usurio ao servidor FTP Arquivo no existe no Servidor Falha ao remover o arquivo do Servidor Falha ao renomear o arquivo no Servidor Erro na execuo do comando DIR no Servidor Voc deve executar o comando SyncAnywhereFTPDir antes de tentar recuperar informaes sobre arquivos Palm Descrio do Erro Net.Lib no foi encontrada no Palm NetLib no foi aberta com SyncAnywhereNetLibOpen Net.Lib no est ativa A comunicao j est aberta Erro obtendo a instncia da interface Erro abrindo o servio Nenhuma interface foi encontrada Cancelado pelo usurio Nmero discado no atendeu Erro de autenticao Faha de conexo no servio Erro recuperando o ndice do servio Erro abrindo a porta serial do Palm Modem no foi encontrado Erro ao receber dados do Modem Servio especificado no existe

Comunicao Identificao do Erro netErrNetLibNotFound netErrNetLibNotOpen netErrNetLibNotActive netErrNetLibActive netErrGettingInstance netErrOpeningNetLib netErrNoInterfaceFound netErrCancelled netErrNoAnswer netErrAuthentication netErrFailure netErrRetrievingIndex netErrOpenPalmPort netErrModemNotFound netErrReceivingModemData netErrServiceDoesNotExit

do Cdigo 34768 34769 34770 34771 34772 34773 34774 34775 34776 34777 34778 34779 34780 34781 34782 34783

2002-2005 by Cialogica Tecnologia em Informtica Ltda

Cliente Palm

144

Servios Identificao do Erro svcErrNetworkPanelNotFound svcErrReceivingList svcErrRetrActiveService

de Cdigo

Rede Descrio do Erro

35768 Aplicao Prefs/Network no foi encontrada 35769 Erro ao receber a lista de servios do Network Panel 35770 Erro ao recuperar o servio ativo do Network Panel

Mensagens Identificao appMsgNoCheckSum

do Cdigo 39000

Sistema Descrio O banco de dados foi verificado mas o CheckSum no foi utilizado na compactao. No representa um erro e sim um aviso do sistema

2002-2005 by Cialogica Tecnologia em Informtica Ltda

Parte

III

Software no Servidor

146

3
3.1

Software no Servidor
Introduo
Mais uma caracterstica importante no SyncAnywhere a possibilidade de compactar e descompactar os bancos de dados do Palm no desktop, para que voc possa coloca-los no servidor FTP e tambm que descompacte os bancos de dados provenientes do Palm. Isto pode ser feito utilizando-se o Delphi 5, 6 ou 7 ou o Visual Basic.

3.2
3.2.1

Delphi
Instalao
Sob o diretrio do SyncAnywhere\Delphi\Lib , h subdiretrios chamados D5 , D6 e D7 para o Delphi 5, 6 e 7 respectivamente. Voc deve acrescentar o diretrio segundo sua verso do Delphi no campo Library Path , sob o menu Tools , Environment Options , Library . No h necessidade de adicionar componentes. Nas units onde voc for utilizar as rotinas de compactao, voc deve colocar a unit SyaPack na uses clause; onde for utilizar a rotina de descompactao, deve colocar a unit SyaUnpack na uses clause.

3.2.2

Utilizao
Para compactar dados, voc deve ter os arquivos PDB j criados para poder utilizar como parmetro das funes de compactao. Se voc no sabe como criar PDBs do Palm com o Delphi, conhea o produto PDBDataManager, tambm desenvolvido pela Cialogica Tecnologia, no site www.cialogica.com.br . A aplicao exemplo sob o diretrio Delphi do SyncAnywhere mostra como utilizar o SyncAnywhere para compactar e descompactar bancos de dados Palm. Cdigo para compactao, no boto Compacta da aplicao exemplo: procedure TFrmPrincipal.BtCompactaClick(Sender: TObject); var Err: Integer; begin // Inicia a compactao Err := PackStart(TxtDir.Text, 'PDBPack.pdb', 'PDBPack', 'PDBP'); if Err>0 then begin ShowMessage('Erro de incio no processo de compactao!'); exit; end; // Compacta os Arquivos PDB // A funo PackDB encontra-se dentro da unit SyaPack

2002-2005 by Cialogica Tecnologia em Informtica Ltda

147

SyncAnywhere v1.22

// Parmetros // TxtDir.Text - Diretrio onde os arquivos PDB a serem // compactados esto localizados // ProdutosDB.pdb e ClientesDB.pdb - So os arquivos PDB // a serem compactados // 5000 - o tamanho mximo em bytes de cada registro // compactado dentro do banco PDBPack // Voc pode mudar este nmero em funo da qualidade de // transmisso em sua // regio. O nmero mximo 30000. Valores maiores proporcionam // menos registros no banco de dados, mas podem ocasionar // problemas de transmisso 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 compactao PackFinish; ShowMessage('Fim de Compactao dos Arquivos PDB! Verifique o arquivo compactado no diretrio informado.'); end; Cdigo para descompactao, no boto Descompacta da aplicao exemplo: procedure TFrmPrincipal.BtDescompactaClick(Sender: TObject); var DirSource: String; Err: Integer; begin // Extrai o diretrio 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 'uses clause' // Parmetros: // DirSource - o diretrio onde est armazenado o arquivo PDB Compactado // ExtractFileName(TxtPDB.Text) - o nome do arquivo PDB Compactado // ..\TestDB - o local onde os arquivos sero Descompactados Err := UnpackDB(DirSource, ExtractFileName(TxtPDB.Text), '..\TestDB');

2002-2005 by Cialogica Tecnologia em Informtica Ltda

Software no Servidor

148

if Err>0 then begin ShowMessage('Erro de Descompactao: '+IntToStr(Err)); exit; end; ShowMessage('Arquivos foram Descompactados com Sucesso! Verifique no diretrio informado.'); end;

ATENO: Quando for gerar arquivos compactados para Palm M100 ou Zire ou qualquer outro modelo com memria igual ou inferior a 2MB, voc deve utilizar a funo PackSetMaxDataBlock ANTES de usar a funo PackDB, passando como parmetro o tamanho mximo de 2500 Bytes (para aplicaes grandes, use de 500 a 1000 bytes), alm disso, o parmetro BlockSize da funo PackDB deve tambm ter o tamanho mximo de 2500 Bytes ou a operao de descompactao nestes modelos de Palm poder falhar por falta de memria dinmica (HEAP). Estes modelos tem memria limitada e a alocao frequentemente falha com blocos muito grandes de dados. Nos modelos mais novos, com 8MB de memria ou mais, a memria dinmica bem maior, portanto menos suscetvel a falhas.
No boto Analisar PDBPack , h um cdigo para encontrar os bancos de dados que esto compactados dentro do arquivo PDB e tambm para descompactar apenas um deles: var Name, DirSource: String; Err, DBCount, x: Integer; begin // Extrai o diretrio onde est o Arquivo PDB Compactado DirSource := ExtractFilePath(TxtPDB.Text); DirSource := Copy(DirSource, 1, Length(DirSource)-1); // Recupera o nmero 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('Nmero de Bancos no arquivo Compactado: '+IntToStr(DBCount));
2002-2005 by Cialogica Tecnologia em Informtica Ltda

149

SyncAnywhere v1.22

// 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 recuperao 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 Descompactao: '+IntToStr(Err)); exit; end; // Teste foi completado com sucesso! ShowMessage('O arquivo foi descompactado com Sucesso!'); end;

3.2.3
3.2.3.1

Funes no SyncAnywhere para o Delphi


PackSetMaxDataBlock procedure PackSetMaxDataBlock(Size: Integer); Unit SyaPack Comentrios Configura o tamanho mximo do bloco de dados que ser usado para compactao. Por default, o SyncAnywhere compacta blocos de 30000 bytes para otimizar a taxa de compresso. Esta funo deve ser usada quando o Palm que for descompactar o arquivo seja M100, Zire ou outro com memria igual ou inferior a 2MB. QUANDO ESTIVER GERANDO ARQUIVOS COMPACTADOS PARA ESTES MODELOS, O PARMETRO SIZE *NO DEVE* SER MAIOR QUE 2500 BYTES POR CAUSA DO TAMANHO DO TAMANHO DO "HEAP" (MEMRIA DINMICA DO PALMOS) QUE DISPONIBILIZADA PARA MODELOS COM MEMRIA IGUAL OU INFERIOR A 2MB. SE VOC USAR UM VALOR MAIOR, A OPERAO DE DESCOMPACTAO NO PALM PODE FALHAR, RETORNANDO ERROS 32790 A 32793. PARA APLICAES GRANDES, O TAMANHO DEVE FICAR ENTRE 500 E 1000 BYTES. Parmetros
2002-2005 by Cialogica Tecnologia em Informtica Ltda

Software no Servidor

150

Size: Configura o tamanho do bloco de dados que ser compactado de cada vez. ATENTE PARA A OBSERVAO ACIMA NO CASO DE PALMS COM MEMRIA IGUAL OU INFERIOR A 2MB. 3.2.3.2 PackSetCheckSum procedure PackSetCheckSum(Enabled: Boolean); Unit SyaPack Comentrios Habilita ou desabilita a gravao de bytes de verificao (CheckSum) no banco de dados compactado. Parmetros Enabled : True, habilita CheckSum; False, desabilita. 3.2.3.3 PackStart function PackStart(Directory, PDBFilename, DatabaseName, CreatorID: String): Integer; Unit SyaPack Comentrios Informa ao SyncAnywhere que uma operao de compactao ir comear. Voc deve usar este comando antes de utilizar a funo PackDB para compactar bancos de dados Palm. Parmetros Directory : Diretrio onde ser gerado o arquivo PDB com os bancos compactados PDBFilename : Nome do arquivo PDB que ser gerado DatabaseName : Nome do banco de dados Palm CreatorID : CreatorID que ser associado ao arquivo PDB gerado Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante.

2002-2005 by Cialogica Tecnologia em Informtica Ltda

151

SyncAnywhere v1.22

3.2.3.4

PackDB function PackDB(DirSource: String; SourcePDB: String; BlockSize: Integer): Integer; Unit SyaPack Comentrios Compacta um arquivo PDB. Antes de usar PackDB, necessrio iniciar o processo de compactao atravs da chamada funo PackStart. Parmetros DirSource : Diretrio onde est localizado o arquivo PDB a ser compactado SourcePDB : Nome do arquivo PDB a ser compactado BlockSize : Tamanho mximo do registro que ser gerado no arquivo PDB compactado. Este valor normalmente deve ser em torno de 5000, que representa 5000 bytes em cada registro e pode ser configurado em funo da qualidade de transmisso da linha telefnica ou celular. H locais onde melhor que este valor seja menor, em torno de 1000, para minimizar erros na transmisso. O tamanho mnimo 50 bytes e o mximo 30000. OBSERVAO IMPORTANTE: QUANDO ESTIVER GERANDO ARQUIVOS COMPACTADOS PARA PALMS COM MEMRIA IGUAL OU INFERIOR A 2MB, COMO M100, ZIRE, ETC, ESTE VALOR *NO DEVE* SER MAIOR QUE 2500 BYTES POR CAUSA DO TAMANHO DO TAMANHO DO "HEAP" (MEMRIA DINMICA DO PALMOS) QUE DISPONIBILIZADA PARA MODELOS COM MEMRIA IGUAL OU INFERIOR A 2MB. SE VOC USAR UM VALOR MAIOR, A OPERAO DE DESCOMPACTAO NO PALM PODE FALHAR, RETORNANDO ERROS 32790 A 32793. PARA APLICAES GRANDES, O TAMANHO DEVE FICAR ENTRE 500 E 1000 BYTES. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante.

3.2.3.5

PackFinish function PackFinish: Integer; Unit SyaPack Comentrios Finaliza a operao de compactao. Quando j tiver utilizado a funo PackDB
2002-2005 by Cialogica Tecnologia em Informtica Ltda

Software no Servidor

152

para todos os arquivos PDB que deseja compactar, necessrio executar PackFinish para finalizar a compactao. Parmetros Nenhum Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 3.2.3.6 GetDBCount function GetDBCount(DirSource: String; SourcePDB: String; var DBCount: Integer): Integer; Unit SyaUnpack Comentrios Recupera o nmero de bancos de dados armazenados no arquivo compactado. O nmero de bancos de dados no arquivo compactado s pode ser recuperado dos PDBs gerados pelo SyncAnywhere a partir da verso 1.17 . Parmetros DirSource : Diretrio onde est localizado o arquivo PDB compactado SourcePDB : Nome do arquivo PDB compactado DBCount : Passe neste parmetro uma varivel do tipo Integer para ser carregada com o nmero de bancos de dados que esto compactados dentro do arquivo PDB. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 3.2.3.7 GetDBName function GetDBName(DirSource: String; SourcePDB: String; Indx: Integer; var Name: String): Integer; Unit SyaUnpack Comentrios

2002-2005 by Cialogica Tecnologia em Informtica Ltda

153

SyncAnywhere v1.22

Recupera o nome do banco de dados no arquivo compactado, identificado pelo parmetro Indx. O nmero de bancos de dados no arquivo compactado s pode ser recuperado dos PDBs gerados pelo SyncAnywhere a partir da verso 1.17 . Parmetros DirSource : Diretrio onde est localizado o arquivo PDB compactado SourcePDB : Nome do arquivo PDB compactado Indx: ndice do banco de dados dentro do arquivo compactado. O primeiro banco de dados tem ndice ZERO. Name : Passe neste parmetro uma varivel do tipo String para ser carregada com o nome do banco de dados. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 3.2.3.8 CheckDB function CheckDB(DirSource: String; SourcePDB: String): Integer; Unit SyaUnpack Comentrios Verifica a estrutura de um PDB compactado gerado pelo SyncAnywhere. A funo verifica a integridade do nmero de registros no banco e CheckSum (se habilitado). Parmetros DirSource : Diretrio onde est localizado o arquivo PDB compactado SourcePDB : 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 cdigo de erro da verificao do PDB. 3.2.3.9 UnpackDB function UnpackDB(DirSource: String; SourcePDB: String; DirDest: String): Integer; Unit
2002-2005 by Cialogica Tecnologia em Informtica Ltda

Software no Servidor

154

SyaUnpack Comentrios Descompacta um arquivo PDB gerado pelo SyncAnywhere no Palm ou no Desktop, gravando todos os arquivos PDB que esto contidos nele no diretrio indicado por DirDest. Parmetros DirSource : Diretrio onde est localizado o arquivo PDB compactado SourcePDB : Nome do arquivo PDB compactado DirDest : Diretrio onde sero gravados os arquivos PDB que esto compactados dentro do arquivo PDB. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 3.2.3.10 UnpackOneDB function UnpackOneDB(DirSource: String; SourcePDB: String; DirDest: String; DBName: String): Integer; Unit SyaUnpack Comentrios Descompacta apenas um banco de dados do arquivo compactado. Parmetros DirSource : Diretrio onde est localizado o arquivo PDB compactado SourcePDB : Nome do arquivo PDB compactado DirDest : Diretrio onde sero gravados os arquivos PDB que esto compactados dentro do arquivo PDB. DBName : Nome do banco de dados que ser descompactado. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 3.2.3.11 PackPRC function PackPRC(DirSource: String; SourcePRC: String; DirDest, DestPDBFile, DestDBName, DestCreatorID: String; BlockSize: Integer; CheckSum: Boolean): Integer;
2002-2005 by Cialogica Tecnologia em Informtica Ltda

155

SyncAnywhere v1.22

Unit SyaPackPRC Comentrios Compacta uma aplicao Palm (PRC) em um banco de dados (PDB) para transferencia ao Palm via FTP. Apenas uma aplicao pode ser compactada em um banco de dados e a aplicao no pode ser colocada junto com outros bancos de dados. Parmetros DirSource : Diretrio onde est localizado a aplicao (PRC) SourcePRC : Nome do arquivo PRC DirDest : Diretrio onde ser gravado o arquivo PDB que com a aplicao compactada DestPDBFile : Nome do Arquivo PDB que ser gerado com a aplicao compactada. O nome deve terminar com a extenso ".PDB" DestDBName : Nome do Banco de Dados que ser gerado com a aplicao compactada. Este nome ser usado no Palm para descompactar a aplicao. Ateno: este no o nome da aplicao. O nome da aplicao foi gerado pela compilao do seu projeto em sua ferramenta de desenvolvimento DestCreatorID : CreatorID do Banco de Dados contendo a aplicao compactada BlockSize : Tamanho mximo do registro que ser gerado no arquivo PDB compactado. Este valor normalmente deve ser em torno de 5000, que representa 5000 bytes em cada registro e pode ser configurado em funo da qualidade de transmisso da linha telefnica ou celular. H locais onde melhor que este valor seja menor, em torno de 1000, para minimizar erros na transmisso. O tamanho mnimo 50 bytes e o mximo 30000. CheckSum : True, habilita CheckSum; False, desabilita Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 3.2.3.12 SetRecordUIDSupport procedure PackSetCheckSum(Enabled: Boolean); Unit SyaGlobal Comentrios Habilita a gravao do UniqueID de cada registro do banco de dados. O UniqueID uma informao no utilizada pela maioria das ferramentas, mas se por algum motivo sua aplicao Palm usa esta informao, voc precisa habilitar o uso com esta funo. Por default, a gravao do UniqueID est desabilitada para economizar espao no banco de dados compactado gerado.

2002-2005 by Cialogica Tecnologia em Informtica Ltda

Software no Servidor

156

Ateno: - O uso desta funo torna o SyncAnywhere incompatvel com bancos de dados compactados sem o uso desta funo. Para que o SyncAnywhere seja compatvel com bancos de dados compactados sem o UniqueID, necessrio desabilitar o suporte ao UniqueID. - necessrio habilitar a gravao do UniqueID na compactao e descompactao de dados.
Parmetros Enabled : True, habilita gravao do UniqueID; False, desabilita.

3.3
3.3.1

Visual Basic
Instalao
O suporte do SyncAnywhere ao Visual Basic feito por um componente COM que instalado e registrado automaticamente na sua mquina pelo programa de instalao do SyncAnywhere. Na sua aplicao VB que for utilizar o SyncAnywhere, necessrio adicionar a Type Library do SyncAnywhere no menu Project, References da sua aplicao VB. Neste menu, clique no boto Browse e mova-se at o diretrio do SyncAnywhere\VB\SyncAnywhereCOM e selecione o arquivo SyncAnywhere.tlb . Certifique-se que o SyncAnywhere foi adicionado lista de referncias da sua aplicao. Esta operao necessria para que sua aplicao possa utilizar o objeto COM do SyncAnywhere. Para distribuir sua aplicao que faz uso do SyncAnywhere ao seu cliente, voc precisa enviar a DLL SyncAnywhere.dll que se encontra no diretrio SyncAnywhere\VB\SyncAnywhereCOM junto com sua aplicao, copia-la no diretrio C:\Windows\System ou C:\Winnt\System32 e registra-la no computador do seu cliente. O registro pode ser feito automaticamente pelo programa de instalao que voc estiver utilizando, como por exemplo o InstallShield ou InnoSetup, ou manualmente, abrindo uma janela DOS, movendo-se at o diretrio C:\Windows\System ou C:\Winnt\System32 e utilizar o comando REGSVR32 SYNCANYWHERE.DLL . Este procedimento obrigatrio ou sua aplicao no poder utilizar o objeto COM do SyncAnywhere

3.3.2

Utilizao
Para compactar dados, voc deve ter os arquivos PDB j criados para poder utilizar como parmetro das funes de compactao. Se voc no sabe como criar PDBs do Palm com o Visual Basic, conhea o produto PDBDataManager verso COM, tambm desenvolvido pela Cialogica Tecnologia, no site www.cialogica.com.br .

2002-2005 by Cialogica Tecnologia em Informtica Ltda

157

SyncAnywhere v1.22

A aplicao exemplo sob o diretrio VB do SyncAnywhere mostra como utilizar o SyncAnywhere para compactar e descompactar bancos de dados Palm. Inicialmente, devemos criar uma varivel que referencie o objeto COM do SyncAnywhere: ' Declarao do Objeto SyncAnywhere Dim Sya As SyncAnywhere.SyncAnywhere PARA APLICAES GRANDES, O TAMANHO DEVE FICAR ENTRE 500 E 1000 BYTES. Cdigo para compactao, no boto Compacta da aplicao exemplo: Private Sub BtCompacta_Click() Dim Err As Integer ' Cria o objeto SyncAnywhere Set Sya = New SyncAnywhere.SyncAnywhere ' Inicia a compactao Err = Sya.PackStart(TxtDir.Text, "PDBPack.pdb", "PDBPack", "PDBP") If Err > 0 Then MsgBox ("Erro de incio no processo de compactao!") Exit Sub End If ' Compacta os Arquivos PDB ' A funo PackDB encontra-se dentro da unit SyaPack ' Parmetros ' TxtDir.Text - Diretrio onde os arquivos PDB a serem ' compactados esto localizados ' ProdutosDB.pdb e ClientesDB.pdb - So os arquivos PDB ' a serem compactados ' 5000 - o tamanho mximo em bytes de cada registro ' compactado dentro do banco PDBPack ' Voc pode mudar este nmero em funo da qualidade ' de transmisso em sua regio. O nmero mximo 30000. ' Valores maiores proporcionam menos registros no banco ' de dados, mas podem ocasionar problemas de transmisso ' 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

2002-2005 by Cialogica Tecnologia em Informtica Ltda

Software no Servidor

158

' Finaliza a compactao Sya.PackFinish MsgBox ("Fim de Compactao dos Arquivos PDB! Verifique o arquivo compactado no diretrio informado.") End Sub Cdigo para descompactao, no boto Descompacta da aplicao exemplo: Private Sub BtDescompacta_Click() Dim Dim Dim Dim Dim DirSource As String SourcePDB As String Err As Integer Pos As Integer x As Integer

' Cria o objeto SyncAnywhere Set Sya = New SyncAnywhere.SyncAnywhere ' Extrai o diretrio 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 'uses clause' ' Parmetros: ' DirSource - o diretrio onde est armazenado o arquivo PDB Compactado ' ExtractFileName(TxtPDB.Text) - o nome do arquivo PDB Compactado ' ..\TestDB... - o local onde os arquivos sero Descompactados Err = Sya.UnpackDB(DirSource, SourcePDB, "..\TestDB") If Err > 0 Then MsgBox ("Erro de Descompactao: " + Str(Err)) Exit Sub End If MsgBox ("Arquivos foram Descompactados com Sucesso! Verifique no diretrio informado.") End Sub

ATENO: Quando for gerar arquivos compactados para Palm M100 ou Zire ou qualquer outro modelo com
2002-2005 by Cialogica Tecnologia em Informtica Ltda

159

SyncAnywhere v1.22

memria igual ou inferior a 2MB, voc deve utilizar a funo PackSetMaxDataBlock ANTES de usar a funo PackDB, passando como parmetro o tamanho mximo de 2500 Bytes (em aplicaes grandes, use de 500 a 1000 bytes), alm disso, o parmetro BlockSize da funo PackDB deve tambm ter o tamanho mximo de 2500 Bytes ou a operao de descompactao nestes modelos de Palm poder falhar por falta de memria dinmica (HEAP). Estes modelos tem memria limitada e a alocao frequentemente falha com blocos muito grandes de dados. Nos modelos mais novos, com 8MB de memria ou mais, a memria dinmica bem maior, portanto menos suscetvel a falhas.
No boto Analisar PDBPack , h um cdigo para encontrar os bancos de dados que esto compactados dentro do arquivo PDB e tambm para descompactar apenas um deles: Private Sub BtPDBPack_Click() Dim Dim Dim Dim Dim Dim DirSource As String Name As String Err As Integer DBCount As Long Pos As Integer x As Integer

' Cria o objeto SyncAnywhere Set Sya = New SyncAnywhere.SyncAnywhere ' Extrai o diretrio 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 diretrio onde est o Arquivo PDB Compactado DirSource = Left(TxtPDB.Text, Pos - 1) SourcePDB = Mid(TxtPDB.Text, Pos + 1, Len(TxtPDB.Text) - Pos) ' Recupera o nmero de bancos compactados no arquivo PDB Err = Sya.GetDBCount(DirSource, SourcePDB, DBCount) If Err > 0 Then MsgBox ("Erro de processamento: " + Str(Err)) Exit Sub

2002-2005 by Cialogica Tecnologia em Informtica Ltda

Software no Servidor

160

End If MsgBox "Nmero 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 Descompactao: " + Str(Err)) Exit Sub End If MsgBox ("Arquivo foi descompactado com Sucesso!") End Sub

3.3.3
3.3.3.1

Funes do objeto COM do SyncAnywhere


PackSetMaxDataBlock Sub PackSetMaxDataBlock(Size As Integer) Comentrios Configura o tamanho mximo do bloco de dados que ser usado para compactao. Por default, o SyncAnywhere compacta blocos de 30000 bytes para otimizar a taxa de compresso. Esta funo deve ser usada quando o Palm que for descompactar o arquivo seja M100, Zire ou outro com memria igual ou inferior a 2MB. QUANDO ESTIVER GERANDO ARQUIVOS COMPACTADOS PARA ESTES MODELOS, O PARMETRO SIZE *NO DEVE* SER MAIOR QUE 2500 BYTES POR CAUSA DO TAMANHO DO TAMANHO DO "HEAP" (MEMRIA DINMICA DO PALMOS) QUE DISPONIBILIZADA PARA MODELOS COM MEMRIA IGUAL OU INFERIOR A 2MB. SE VOC USAR UM VALOR MAIOR, A OPERAO DE DESCOMPACTAO NO PALM PODE FALHAR, RETORNANDO ERROS 32790 A 32793. PARA APLICAES GRANDES, O TAMANHO DEVE FICAR ENTRE 500 E 1000 BYTES. Parmetros Size: Configura o tamanho do bloco de dados que ser compactado de cada vez. ATENTE PARA A OBSERVAO ACIMA NO CASO DE PALMS COM MEMRIA IGUAL OU INFERIOR A 2MB.

2002-2005 by Cialogica Tecnologia em Informtica Ltda

161

SyncAnywhere v1.22

3.3.3.2

PackSetCheckSum Sub PackSetCheckSum(Enabled As Boolean) Comentrios Habilita ou desabilita a gravao de bytes de verificao (CheckSum) no banco de dados compactado. Parmetros Enabled : True, habilita CheckSum; False, desabilita.

3.3.3.3

PackStart Function PackStart(Directory As String, PDBFilename As String, DatabaseName As String, CreatorID As String) As Integer Comentrios Informa ao SyncAnywhere que uma operao de compactao ir comear. Voc deve usar este comando antes de utilizar a funo PackDB para compactar bancos de dados Palm. Parmetros Directory : Diretrio onde ser gerado o arquivo PDB com os bancos compactados PDBFilename : Nome do arquivo PDB que ser gerado DatabaseName : Nome do banco de dados Palm CreatorID : CreatorID que ser associado ao arquivo PDB gerado Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante.

3.3.3.4

PackDB Function PackDB(DirSource As String, SourcePDB As String, BlockSize As Integer) As Integer Comentrios Compacta um arquivo PDB. Antes de usar PackDB, necessrio iniciar o processo de compactao atravs da chamada funo PackStart. Parmetros DirSource : Diretrio onde est localizado o arquivo PDB a ser compactado
2002-2005 by Cialogica Tecnologia em Informtica Ltda

Software no Servidor

162

SourcePDB : Nome do arquivo PDB a ser compactado BlockSize : Tamanho mximo do registro que ser gerado no arquivo PDB compactado. Este valor normalmente deve ser em torno de 5000, que representa 5000 bytes em cada registro e pode ser configurado em funo da qualidade de transmisso da linha telefnica ou celular. H locais onde melhor que este valor seja menor, em torno de 1000, para minimizar erros na transmisso. O tamanho mnimo 50 bytes e o mximo 30000. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 3.3.3.5 PackFinish Function PackFinish() As Integer Comentrios Finaliza a operao de compactao. Quando j tiver utilizado a funo PackDB para todos os arquivos PDB que deseja compactar, necessrio executar PackFinish para finalizar a compactao. Parmetros Nenhum Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 3.3.3.6 GetDBCount Function GetDBCount(DirSource As String, SourcePDB As String, ByRef DBCount As Long) As Integer Comentrios Recupera o nmero de bancos de dados armazenados no arquivo compactado. O nmero de bancos de dados no arquivo compactado s pode ser recuperado dos PDBs gerados pelo SyncAnywhere a partir da verso 1.17 . Parmetros DirSource : Diretrio onde est localizado o arquivo PDB compactado SourcePDB : Nome do arquivo PDB compactado DBCount : Passe neste parmetro uma varivel do tipo Long para ser carregada com o nmero de bancos de dados que esto compactados dentro do arquivo PDB. Retorno
2002-2005 by Cialogica Tecnologia em Informtica Ltda

163

SyncAnywhere v1.22

ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 3.3.3.7 GetDBName Function GetDBName(DirSource As String, SourcePDB As String, Indx As Integer, ByRef Name As String) As Integer Comentrios Recupera o nome do banco de dados no arquivo compactado, identificado pelo parmetro Indx. O nmero de bancos de dados no arquivo compactado s pode ser recuperado dos PDBs gerados pelo SyncAnywhere a partir da verso 1.17 . Parmetros DirSource : Diretrio onde est localizado o arquivo PDB compactado SourcePDB : Nome do arquivo PDB compactado Indx: ndice do banco de dados dentro do arquivo compactado. O primeiro banco de dados tem ndice ZERO. Name : Passe neste parmetro uma varivel do tipo String para ser carregada com o nome do banco de dados. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 3.3.3.8 CheckDB Function CheckDB(DirSource As String, SourcePDB As String) As Integer Comentrios Verifica a estrutura de um PDB compactado gerado pelo SyncAnywhere. A funo verifica a integridade do nmero de registros no banco e CheckSum (se habilitado). Parmetros DirSource : Diretrio onde est localizado o arquivo PDB compactado SourcePDB : 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 cdigo de erro da verificao do PDB.

2002-2005 by Cialogica Tecnologia em Informtica Ltda

Software no Servidor

164

3.3.3.9

UnpackDB Function UnpackDB(DirSource As String, SourcePDB As String, DirDest As String) As Integer Comentrios Descompacta um arquivo PDB gerado pelo SyncAnywhere no Palm ou no Desktop, gravando todos os arquivos PDB que esto contidos nele no diretrio indicado por DirDest. Parmetros DirSource : Diretrio onde est localizado o arquivo PDB compactado SourcePDB : Nome do arquivo PDB compactado DirDest : Diretrio onde sero gravados os arquivos PDB que esto compactados dentro do arquivo PDB. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante.

3.3.3.10 UnpackOneDB Function UnpackOneDB(DirSource As String, SourcePDB As String, DirDest As String, DBName As String) As Integer Comentrios Descompacta apenas um banco de dados do arquivo compactado. Parmetros DirSource : Diretrio onde est localizado o arquivo PDB compactado SourcePDB : Nome do arquivo PDB compactado DirDest : Diretrio onde sero gravados os arquivos PDB que esto compactados dentro do arquivo PDB. DBName : Nome do banco de dados que ser descompactado. Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo 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,
2002-2005 by Cialogica Tecnologia em Informtica Ltda

165

SyncAnywhere v1.22

BlockSize As Integer, CheckSum As Boolean) As Integer Comentrios Compacta uma aplicao Palm (PRC) em um banco de dados (PDB) para transferencia ao Palm via FTP. Apenas uma aplicao pode ser compactada em um banco de dados e a aplicao no pode ser colocada junto com outros bancos de dados. Parmetros DirSource : Diretrio onde est localizado a aplicao (PRC) SourcePRC : Nome do arquivo PRC DirDest : Diretrio onde ser gravado o arquivo PDB que com a aplicao compactada DestPDBFile : Nome do Arquivo PDB que ser gerado com a aplicao compactada. O nome deve terminar com a extenso ".PDB" DestDBName : Nome do Banco de Dados que ser gerado com a aplicao compactada. Este nome ser usado no Palm para descompactar a aplicao. Ateno: este no o nome da aplicao. O nome da aplicao foi gerado pela compilao do seu projeto em sua ferramenta de desenvolvimento DestCreatorID : CreatorID do Banco de Dados contendo a aplicao compactada BlockSize : Tamanho mximo do registro que ser gerado no arquivo PDB compactado. Este valor normalmente deve ser em torno de 5000, que representa 5000 bytes em cada registro e pode ser configurado em funo da qualidade de transmisso da linha telefnica ou celular. H locais onde melhor que este valor seja menor, em torno de 1000, para minimizar erros na transmisso. O tamanho mnimo 50 bytes e o mximo 30000. CheckSum : True, habilita CheckSum; False, desabilita Retorno ZERO indica que a funo foi executada corretamente; maior que ZERO indica erro cujo cdigo est descrito em uma seo mais adiante. 3.3.3.12 SetRecordUIDSupport Sub PackSetCheckSum(Enabled As Boolean) Comentrios Habilita a gravao do UniqueID de cada registro do banco de dados. O UniqueID uma informao no utilizada pela maioria das ferramentas, mas se por algum motivo sua aplicao Palm usa esta informao, voc precisa habilitar o uso com esta funo. Por default, a gravao do UniqueID est desabilitada para economizar espao no banco de dados compactado gerado.

Ateno: - O uso desta funo torna o SyncAnywhere incompatvel com bancos de dados compactados sem o uso desta funo. Para que o SyncAnywhere seja compatvel com bancos de
2002-2005 by Cialogica Tecnologia em Informtica Ltda

Software no Servidor

166

dados compactados sem o UniqueID, necessrio desabilitar o suporte ao UniqueID. - necessrio habilitar a gravao do UniqueID na compactao e descompactao de dados.
Parmetros Enabled : True, habilita gravao do UniqueID; False, desabilita.

2002-2005 by Cialogica Tecnologia em Informtica Ltda

167

SyncAnywhere v1.22

3.4

Cdigos de Erro no Servidor

2002-2005 by Cialogica Tecnologia em Informtica Ltda

Software no Servidor

168

Compactao Identificao do Erro AppErrCreateDirectory AppErrSourceDirDoesNotExist AppErrPDBFileDoesNotExist AppErrNotAPDBFile AppErrPDBDoesNotHaveData AppErrNotASyncAnywhereDB AppErrMemoryAllocation AppErrGettingMoreData AppErrInvalidBlockSize AppErrDestPDBIsNotOpen AppErrDestPDBIsNotForWrite AppErrDestDBFull AppErrRecordTooBig AppErrPackingData AppErrAppInfoInvalid AppErrSortInfoInvalid AppErrAppInfoTooBig AppErrAppInfoIsCorrupt AppErrSortInfoTooBig AppErrPackAlreadyStarted AppErrPackNotStarted AppErrNoDBInfo

e Cdigo 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022

Descompactao Descrio do Erro No possvel criar o diretrio Diretrio origem no existe Arquivo PDB no existe Arquivo PDB est corrompido ou no um arquivo PDB vlido O arquivo PDB no contm dados O arquivo PDB no foi gerado pelo SyncAnywhere Erro de alocao de memria interna Erro ao obter dados para os buffers Tamanho do bloco no vlido, mn: 50, mx: 30000 Arquivo PDB no foi aberto Arquivo PDB no foi aberto para gravao Arquivo PDB no pode mais conter registros Registro maior que o tamanho mximo permitido Erro de compactao de dados AppInfoArea no vlida SortInfoArea no vlida AppInfoArea muito grande AppInfoArea est corrompida SortInfoArea muito grande A compactao j foi iniciada com PackStart A compactao no foi iniciada com PackStart O banco de dados compactado no contm informao dos bancos de dados armazenados nele O banco de dados compactado no contm o banco de dados com o nome especificado na funo UnpackOneDB O banco de dados compactado est corrompido Arquivo PDB no existe no diretrio informado Arquivo PRC est corrompido ou no est no formato de aplicao PalmOS Erro ao recuperar Resource do arquivo PRC Nem todos os registros foram transferidos, banco de dados est corrompido

AppErrDBNotFound

1023

AppErrCheckSum AppErrPRCFileDoesNotExist AppErrNotAPRCFile AppErrGettingResource AppErrNumberOfRecords


2002-2005 by Cialogica Tecnologia em Informtica Ltda

1024 1025 1026 1027 1028

You might also like