FWPPC and HP IPAQ 114

FWPPC and HP IPAQ 114

Postby PeterBaga » Sun Feb 28, 2010 12:05 pm

Ola a todos.

Ha 3 dias que estou testando um problema que tenho com Uma pequena aplicacao de gestao de clientes em FWPPC e estou a precisar de uma opiniao ou ajuda.

PDA - HP IPAQ 114 (Processador MarVel(R) PXA310 , WM 6 Classic ).
Aconetece que os indexes nao funcionam. Tenho um ficheiro com 100 clientes ordenados por codigo de 1 a 100 e o dbseek() da sempre .f. em qualquer um. Isto acontece com qualquer tipo de dados ( Numerico ou caraceter ).
Mas se eu colocar a tarjeta num PDA ASUS A636N ( Processador Intel(R) PXA270 com WM 5 ) e reindexar o ficheiro e voltar a colocar no HP ja funciona bem. No ASUS tudo funciona bem. No emulador ( 5 e 6.5 ) tudo funciona bem. Mas no HP se os CDX forem criados com este PDA os DBseek e os Seek nao funcionam.

Este problema esta-me a consumir imenso tempo e parece-me que esta relacionado com o tipo de processador. Mas como tenho pouca experiencia com este tipo de software. Estou com duvidas de sera ou nao do PDA.

Alguem tem este tipo de problema? Conhecem este PDA? Ha alguma dica que possa ajudar?


Muito obrigado por qualquer help..
Regards
Pedro Alexandre C. Bagarrão
User avatar
PeterBaga
 
Posts: 52
Joined: Sun Jan 24, 2010 3:39 pm

Re: FWPPC and HP IPAQ 114

Postby PeterBaga » Mon Mar 01, 2010 10:50 am

Aqui esta o codigo do teste.
Este prog n funciona no HP IPAQ 114 com WM6 Classic, mas funciona bem no emulador 5 y 6 e no PDA ASUS A636 com WM5.
Tenho algum problema no codigo?
o customer.dbf e o do fwppc\samples.
Qualquer dica, seria importante.
Code: Select all  Expand view

#include "FWCE.ch"
#include "Directry.ch"

#define SHFS_HIDESIPBUTTON  8

REQUEST DBFCDX
//----------------------------------------------------------------------------//
Procedure Main()
local oWnd, oBrwCli, oBtn1, oBtn2

set century on
set deleted on
set date format to "dd-mm-yyyy"
SET EPOCH TO 2000
Set Default to ( CurDir() )

Abre_File( .f. )

DEFINE WINDOW oWnd TITLE "SeekTest 2.0"

@ 0, 0 LISTBOX oBrwCli ;
       FIELDS LTrim(Str(CUSTOMER->SALARY)), CUSTOMER->LAST ;
       COLSIZES 50,60 ;
       HEADERS "Nº.", "Nome" ;
       SIZE 240, 220 ;
       OF oWnd ;
       ALIAS 'CUSTOMER'

@ 220,0 BTNBMP oBtn1 PROMPT "Pesquisa Numero"   SIZE 240, 25 ;
        action { Pesq_Cli_Num( oWnd ), oBrwCli:refresh() }
@ 245,0 BTNBMP oBtn2 PROMPT "Pesquisa Nome"     SIZE 240, 25 ;
        action { Pesq_Cli_Nom( oWnd ), oBrwCli:refresh() }
@ 270,0 BTNBMP oBtn3 PROMPT "Fechar"     SIZE 120, 25 ;
        action { DbCloseAll(), oWnd:End() }
@ 270,120 BTNBMP oBtn4 PROMPT "Reindex"     SIZE 120, 25 ;
        action { Abre_File( .t. ), oBrwCli:refresh() }

ACTIVATE WINDOW oWnd ON INIT ( SHFullScreen( GetActiveWindow(), SHFS_HIDESIPBUTTON ) )

Return nil
//=======================================================================================
Function Abre_File( xReorg )
//=======================================================================================

If xReorg
    DbCloseAll()
    aFile:=Directory("*.CDX")
    AEval(aFile,{|aFile| FErase( aFile[F_NAME] ) } )
Endif

USE  "Customer" VIA "DBFCDX" NEW
if ! File( "LAST.CDX" )
    INDEX ON Last TO "LAST"
endif
if ! File( "SAL.CDX" )
    INDEX ON Salary TO "SAL"
endif
SET INDEX TO  "SAL" , "LAST"

OrdSetFocus(1)
DbGoTop()

Return Nil
//==================================================================================
Function Pesq_Cli_Num( xParent )
//==================================================================================
Local nPesq := 0, xRecActual

nPesq := BuildGet(.t., xParent )

Customer->( OrdSetFocus( 1 ) )

IF !Empty( nPesq )

    if ! CUSTOMER->( DbSeek( nPesq,.t.,2 ))
        Msginfo("Cliente Inexistente!","Atenção")
    Endif

Endif

Return nil
//==================================================================================
Function Pesq_Cli_Nom( xParent )
//==================================================================================
local oPesCli, nPesq

nPesq := BuildGet(.f., xParent )
Customer->( OrdSetFocus( 2 ) )

If ! Empty( nPesq )
    CUSTOMER->( DbSeek( nPesq,.t.,2 ))
Endif

Return nil
//=================================================================
Function BuildGet( xNum, xParent )
//==================================================================================
Local xGet, oGet, oBtn

DEFINE DIALOG oDlg TITLE "Pesquisa" SIZE 240,50

If xNum
    xGet := 0
    @  0.2,0 GET oGet VAR xGet Picture "@e 999999" SIZE 60,10
Else
    xGet := Space(15)
    @  0.2,0 GET oGet VAR xGet Picture "!!!!!!!!!!!!!!!" SIZE 60,10
Endif

oGet:bGotFocus  = { || Showkeyboard() }
oGet:bLostFocus = { || Hidekeyboard() }

@ 15,00 BTNBMP oBtn PROMPT "Pesquisa"  SIZE 120, 10 action { oDlg:End() }
ACTIVATE DIALOG oDlg CENTERED

Return xGet

 

Obrigado
Pedro Alexandre C. Bagarrão
User avatar
PeterBaga
 
Posts: 52
Joined: Sun Jan 24, 2010 3:39 pm

Re: FWPPC and HP IPAQ 114

Postby Antonio Linares » Mon Mar 01, 2010 11:25 am

Pedro,

Es extraño que funcione en bien en el emulador y en otros Pocket PC y no en ese en concreto.

Prueba a verificar que los indices se crean correctamente y que los ficheros CDX estan en su lugar:
Code: Select all  Expand view

if ! File( "LAST.CDX" )
    INDEX ON Last TO "LAST"
endif
MsgInfo( File( "LAST.CDX" ) )

if ! File( "SAL.CDX" )
    INDEX ON Salary TO "SAL"
endif
MsgInfo( File( "SAL.CDX" ) )
 
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42097
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: FWPPC and HP IPAQ 114

Postby PeterBaga » Mon Mar 01, 2010 11:34 am

Antonio. Bom dia.

Os ficheiros estao todos em su lugar.
Quando abro o testeseek o ficheiro nao aparece indexado, mas sim pela sua ordem natural. Ou seja nao esta a ver o index
que lhe esta associado.

Se eu colocar a tarjeta noutro PDA e criar de novo o ficheiros CDX e voltar a colocar a tarjeta no HP, funciona bem.
isto so acontece com os CDX criados neste PDA.

O problema esta com os ficheiros CDX.
Conhece alguma forma de consular o conteudo do ficheiro CDX?

Obrigado.
Pedro Alexandre C. Bagarrão
User avatar
PeterBaga
 
Posts: 52
Joined: Sun Jan 24, 2010 3:39 pm

Re: FWPPC and HP IPAQ 114

Postby Antonio Linares » Mon Mar 01, 2010 2:42 pm

Pedro,

Comprueba el tamaño del fichero CDX, usando la función Directory() de Harbour.

Posiblemente un CDX incorrecto tenga un tamaño distinto al de los que funcionan bien.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42097
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: FWPPC and HP IPAQ 114

Postby PeterBaga » Mon Mar 01, 2010 4:34 pm

Antonio.

Comprovei o tamanho dos ficheiros CDX e de facto eles tem tamanho diferente.

No pocket onde funciona bem o LAST.CDX tem 6.5 KB e o SAL.CDX tem 6 KB.
No pocket onde funciona mal, ambos tem 5 KB.

Se eu copiar os *.CDX com 6.5KB e 6KB para o pocket onde funciona mal, passa a funcionar bem ( com os CDX criados noutro pocket.).
Algo de errado acontece quando se faz a criação do CDX. neste HP Ipaq114.

Ja teve alguma experiencia deste genero?

Cumprimentos...
Pedro Alexandre C. Bagarrão
User avatar
PeterBaga
 
Posts: 52
Joined: Sun Jan 24, 2010 3:39 pm

Re: FWPPC and HP IPAQ 114

Postby Antonio Linares » Mon Mar 01, 2010 5:42 pm

Pedro,

Es la primera vez que tenemos noticias de algo asi.

Puedes probarlo con la versión anterior de FWPPC y Harbour ? gracias
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42097
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: FWPPC and HP IPAQ 114

Postby PeterBaga » Mon Mar 01, 2010 7:45 pm

Ola Antonio.

Testar com FWPPC 9.01 e Harbour anterior foi logo os primeiros testes que efectuei. O problema mantem-se.
Ha 4 dias consecutivos que estou a tentar perceber onde esta o problema sem resultados.
Hoje entre os muitos testes que efectuei houve um que me deu um pequeno sinal positivo:
fiz um dbcreate na aplicação em FWPPC e criei um novo ficheio com base no customers.dbf do \FWPPC\samples. ja em WM6 executo o teste e cria um ficheio novo ( dbappend from customers) com dois CDX um numerico e outro Alfa. Assim o novo ficheiro criado em FWPPC o indice numerico trabalha bem ( dbseek funciona bem), mas o alfanumerico não ( dbseek da sempre .f.).
Os emuladores que estou a utilizar é o WM5 e o WM6.5. nestes emuladores tudo trabalha sempre bem. Ja fiz teste num ASUS A636n e noutro HP ambos com WM5 e tudo funciona bem.

Gostaria de testar mesmo no emulador WM6 e noutro Pocket com WM6 ou 6.5.

Tenho a sensação que este modelo HP IPAQ114 tem qualquer aplicação no Windows Mobile que provoca isto.
Algum modulo de encriptação ou algo do genero que interfere com os Indexes.
Tenho alguma espernça que apareça alguem aqui no forum que ja tenha tido alguma experiencia com este modelo.
O meu problema é que comprei 4 PDAs destes para entregar a um cliente, mas vou ter que tentar devolver e trocar por outros.

Vou dando noticias...
De qualquer forma Muito obrigado pelo apoio....
Cumprimentos
Pedro Alexandre C. Bagarrão
User avatar
PeterBaga
 
Posts: 52
Joined: Sun Jan 24, 2010 3:39 pm

Re: FWPPC and HP IPAQ 114

Postby Antonio Linares » Mon Mar 01, 2010 8:02 pm

Pedro,

Prueba a llamar a DbCommit() despues de crear los índices:
Code: Select all  Expand view

if ! File( "LAST.CDX" )
    INDEX ON Last TO "LAST"
endif

if ! File( "SAL.CDX" )
    INDEX ON Salary TO "SAL"
endif

DbCommit()
 
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42097
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: FWPPC and HP IPAQ 114

Postby PeterBaga » Tue Mar 02, 2010 12:00 am

Ola Antonio.

Depois de mais algumas horas de testes e investigação descobri o seguinte :

Quando o ficheiro CDX é criado pela primeira vez ele fica com 5,0 KB. e o dbseek funciona mal.
Mas se eu fizer um reindex ou OrdListRebuild o CDX passa a ter 9,0 Kb e aqui o dbseek ja funciona.
Qunado faço : index on Cust->Last to "Last" o last.cdx fica com 5,0 KB e dbseek nao funciona
Depois faço : set index to "Last", Costumer->( DbSetOrder(1) ), Customer->( OrdListRebuild() ) e aqui o Last.cdx passa a 9,0KB e o Dbseek começa a funcionar bem.
isto acontece na Store Card e tambem na RAM do Pocket.
existe aqui um problema na criação dos CDX.
tambem constatei que por vezes ocorre este erros que ficam no hb_out:
------------------------------------------------------------------------
Application Internal Error - \Storage Card\TESTSEEK.exe
Terminated at: 2010.03.01 10:20:57
Unrecoverable error 1011: Write in index page failed.
Called from ORDCREATE(0)
Called from DBCREATEINDEX(0) in ../../../rddord.prg
Called from ABRE_FILE(85) in TESTSEEK.PRG
Called from MAIN(19) in TESTSEEK.PRG
------------------------------------------------------------------------
Application Internal Error - \Storage Card\TESTSEEK.exe
Terminated at: 2010.03.01 10:22:17
Unrecoverable error 1011: Write in index page failed.
Called from ORDCREATE(0)
Called from DBCREATEINDEX(0) in ../../../rddord.prg
Called from ABRE_FILE(85) in TESTSEEK.PRG
Called from MAIN(19) in TESTSEEK.PRG
------------------------------------------------------------------------

Boa Noite
Que poderei fazer para evitar isto?
Pedro Alexandre C. Bagarrão
User avatar
PeterBaga
 
Posts: 52
Joined: Sun Jan 24, 2010 3:39 pm

Re: FWPPC and HP IPAQ 114

Postby Antonio Linares » Tue Mar 02, 2010 2:16 am

Pedro,

Esos errores tambien los da funcionando en la ram del Pocket ?
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42097
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: FWPPC and HP IPAQ 114

Postby PeterBaga » Tue Mar 02, 2010 10:42 am

Antonio. Bom dia...

Sim estes erros acontecem tambem quando trabalha na RAM do Pocket.

Mesmo fazendo um reindex ou OrdlistRebuils as coisa melhoram mas nao fica a 100 %. na maior parte da vezes os CDX aumentam de tamanho, mas nem sempre isso aconetce.

Se eu colocar a tarjeta no pocket ASUS e borrar os CDX e voltar a criar, os CDX ficam com mais bytes e tudo passa a funcionar bem. Depois se eu colocar de novo a tarjeta no IPAQ114 enquanto tiver os CDX criados no ASUS, tambem trabalha bem, mas quando for necessario crear de novo os CDX volta a funcionar mal.

Cumprimentos.
Pedro Alexandre C. Bagarrão
User avatar
PeterBaga
 
Posts: 52
Joined: Sun Jan 24, 2010 3:39 pm

Re: FWPPC and HP IPAQ 114

Postby Antonio Linares » Tue Mar 02, 2010 11:42 am

Pedro,

Es la primera vez que vemos un problema asi.

La única solución, por ahora, seria usar otro modelo de Pocket PC que no sea ese.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42097
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: FWPPC and HP IPAQ 114

Postby Simon » Fri Sep 10, 2010 9:06 pm

Tengo un problema parecido con una hp ipaq 116.

En el emulador funciona perfectaente el seek, pero en el pda no.

El programa usa archivos dbf locales y borar los indices y luego los crea cada vez que se inica la aplicacion, pensando que era un problema de creacion de indices los cree en el emulador y luego los copie al pda y funcionan bien.

Ya hemos comprado 16 de estas maquinas, asi que debo solventar el problema de los indices.
Simon
 
Posts: 105
Joined: Thu Oct 20, 2005 12:29 pm
Location: Maracaibo, Venezuela.

Re: FWPPC and HP IPAQ 114

Postby Antonio Linares » Fri Sep 10, 2010 10:07 pm

Simon,

No uses los ficheros en la tarjeta de memoria (no se si es el caso).

Copia los ficheros a una carpeta del dispositivo. Hemos detectado que el funcionamiento de los ficheros en la tarjeta de memoria no siempre va bien, sin embargo funciona bien en la memoria del aparato.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42097
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Next

Return to FiveWin para Pocket PC

Who is online

Users browsing this forum: No registered users and 0 guests