Página 3 de 5

Problemas em sistema gerado pelo gaspro e convertido

Enviado: 22 Out 2015 14:52
por prmuller
Jairo,

Segue, em anexo, a tela do caminho.
Pelo que analisei até agora, acabo voltando sempre à mov_ptr.
Fiz uma chamada, no início da função, ao alias() e ele aparece normalmalmente, então, esta área deveria estar indexada pelo índice primário, não?

Sds,
Paulo Muller

Problemas em sistema gerado pelo gaspro e convertido

Enviado: 22 Out 2015 16:45
por prmuller
Jairo,

Continuando a pesquisa, fazendo-se chamadas através do WAIT às funções INDEXORD() e ALIAS(), todos os arquivos (clientes, fornecedores, funcionários, etc) retornam o índice com o qual a consulta foi criada e seu respectivo dbf.
Apenas o arquivo com problemas (mo_caixa) retorna o dbf mas não o índice. Assim, a área, por algum motivo, não é indexada na chamada à consulta.
Vou tentar forçar, no caso deste aliás(), a indexação antes da linha para ver o que acontece.

Sds,

Paulo Muller

Problemas em sistema gerado pelo gaspro e convertido

Enviado: 22 Out 2015 17:44
por Jairo Maia
Olá Paulo,
prmuller escreveu:Vou tentar forçar, no caso deste aliás(), a indexação antes da linha para ver o que acontece.
Paulo, não faça isso. Você citou mais acima que em seu cliente não ocorre o problema. Ótimo, e sabe porque? Em seu cliente você já excluiu as consultas relacionadas a esse arquivo, ou ele não as têm.

Por esse trace fica claro que está havendo um problema em seu computador porque existe consultas para o arquivo MO_CAIXA.DBF. O problema é que nem todas as consultas geradas pelo Clipper são compativeis com o Harbour. Apague todas as consultas gravadas desse arquivo. Elas iniciam com DB e tem a extensão .MO_, e veja o que acontece.

Problemas em sistema gerado pelo gaspro e convertido

Enviado: 22 Out 2015 19:24
por prmuller
Jairo,

Já fiz o teste, mas não tem problema, sempre antes de qualquer coisa, faço uma copia de tudo. Sabe como é, vai que da alguma zebra, mas, também não resultou em nada.
Consultas gravadas neste dbf tem um monte (16) e o mais gozado é que elas funcionam normalmente, o problema é na consulta principal (definir nova consulta).
Já testei apagando os db*.mo_ e fica na mesma.
Hoje, à tardinha, puxei os fontes do cliente e funcionam normalmente. Amanhã estarei fora boa parte do dia, mas, tão logo retorne, vou compara-los minuciosamente com os que eu tenho aqui e no pendrive (seria para serem idênticos), mas, vamos ver se existe alguma diferença, por menor que seja.
Diria meu falecido pai, virou questão de honra (rss), não para resolver (volto ao estado anterior), mas para descobrir e entender o fato. Embora tenha parado de programar há anos, nós não perdemos nunca a curiosidade, afinal, boa parte de nós aprendeu no velho método de tentativas, acertos e erros.
Por enquanto, fico-lhe extremamente grato.
Tenha uma boa noite!

Paulo Muller

Problemas em sistema gerado pelo gaspro e convertido

Enviado: 22 Out 2015 19:38
por asimoes
Nestes casos eu costumo usar o bom e velho debug para descobrir o que está acontecendo e é bem certo que a solução é por ai.

Problemas em sistema gerado pelo gaspro e convertido

Enviado: 22 Out 2015 20:15
por Jairo Maia
Verdade Alexandre. Pessoalmente nunca consegui usar Debug. Faço as paradas manualmente com saídas em tela do que preciso até encontrar o problema. Porém, vale lembrar que para usar debug em sistemas gerados pelo GASPro precisa desativar o mouse setando drvmouse:=.f., se não, o debug empaca na função do mouse.

Paulo, por outro lado, o que é intrigante é que quem está chamando a função Mov_Ptr() é a função LDBEdit() neste trecho e na linha que destaquei:

Código: Selecionar todos

     criterio=db_&pas.arqf                            // filtro
     cpord=db_&pas.expo                               // ordem
     chv_rela=db_&pas.chvr                            // ligacao entre janelas
     ind_ord=db_&pas.ind_ord                          // indice atual
     br_w:cargo         := {criterio,cpord,chv_rela,ind_ord,cmr_}
     br_w:gobottomblock := {||FIM_ARQ()}
     br_w:gotopblock    := {||INI_ARQ()}
     *********************************************
     br_w:skipblock     := {|n|MOV_PTR(n)}  // esta é a linha
     *********************************************
E porque é intrigante? É porque se não existe consulta gravada você não vê a opção "Definir nova consulta" e não passa por este trecho dessa função. É aberta automaticamente a consulta primária.

Bom, você já declarou que não programa há um bom tempo, mas não estão enferrujadas duas habilidades fundamentais a um programador: paciência e persistência. Vamos ver o que acontece amanhã.

Problemas em sistema gerado pelo gaspro e convertido

Enviado: 22 Out 2015 20:46
por prmuller
Verdade Jairo, como diz o poeta, amanhã é sempre outro dia....

Problemas em sistema gerado pelo gaspro e convertido

Enviado: 22 Out 2015 21:12
por prmuller
Jairo, em tempo.
No caso deste sistema o drv do mouse já esta setado para (.f.). Talvez fosse interessante, como sugeriu o Alexandre,
usar o debbug. Eu particularmente nunca usei. Dá uma luz ai como fazê-lo que eu testo sem problemas.

Paulo Muller

Problemas em sistema gerado pelo gaspro e convertido

Enviado: 22 Out 2015 21:35
por asimoes
No seu hbp você deve incluir:

-b

Na rotina que vai testar coloque a função altd() antes da chamada da função onde abre as tabelas se tudo estiver correto, deverá abrir uma janela apresentando o código (prg) e ai é só seguir com a tecla F8 até chegar no ponto onde você quer ver os valores das variáveis, área de trabalho etc.

Problemas em sistema gerado pelo gaspro e convertido

Enviado: 22 Out 2015 21:46
por prmuller
Obrigado Alexandre.

Amanhã posto o que aparecer.
Boa noite!

Paulo Muller

Problemas em sistema gerado pelo gaspro e convertido

Enviado: 23 Out 2015 09:08
por prmuller
Bom dia amigos,

Quanto ao debug, fiquei de postar o resultado o que estou fazendo agora, ou seja, não apareceu nada, rssss.
Entendi que devo usar o hbmk2 com a opção -b e usar a função AltD().
Onde chamo esta função? No prg do caixa? No prg principal?
Quando programava em Delphi, aí pela ide dele, com a opção acionada, ele varria tudo e parava onde acusasse erro.
Estou anexando o meu hbp e se tiver algo errado, por favor, avisem, ok?
Obrigado,

Paulo Muller

Problemas em sistema gerado pelo gaspro e convertido

Enviado: 23 Out 2015 13:11
por asimoes
Paulo,

Você deve informar a função no código aonde acontece o bug

Problemas em sistema gerado pelo gaspro e convertido

Enviado: 23 Out 2015 16:20
por prmuller
Amigos,

Consegui abrir o debug (valeu Alexandre).
Pressionando o F8 (steep) ele vai varrendo, e na função PARSE(xArg1,xArg2), na linha 1338 do Gas4harbour.prg ele vai varrendo a função e retorna à mesma linha e daí não sai mais. Onde achamos que esta dando problema (mov_ptr) não há referência a esta função. Alguém sabe o que pode significar?

Paulo Muller

Problemas em sistema gerado pelo gaspro e convertido

Enviado: 23 Out 2015 17:00
por asimoes
Paulo,

Localize em qual prg a função ou procedure mov_ptr pertence, inclua a chamada do altd() nela.

Outra coisa, todos os fontes estão na mesma pasta? você linka alguma lib no projeto que seja da gaspro?

Problemas em sistema gerado pelo gaspro e convertido

Enviado: 23 Out 2015 17:34
por prmuller
Alexandre,

A lib do Gaspro usada é o proprio gasp40hb.prg (a lib convertida pelo Toledo).
Bom, a função Mov_ptr fica no XXX_FUNC.PRG. Fiz a chamada e ao abrir a consulta, abre também o debug na função.
Seguindo com o F8, vai dando os passos (ocorre um retorno) e pula para a FUNC ERROMSG da lib convertida e, em seguida vai para a função SETS da mesma lib (gasp40hb.prg) e fica pulando entre as linhas 1209 e 1210.
Salvo melhor juízo e, estando o debug correto, o problema está neste caminho né?
Assim, já tenho um final de semana inteiro pra me divertir (rssss). Vou tentar analisar com calma e minuciosamente. Como sabemos, explicação há que ter. Sinta-se à vontade para qualquer orientação que, aliás, será muito bem-vinda!

Sds,
Paulo Müller