Ajuda: possivel BUG
Moderador: Moderadores
- diego1504
- Usuário Nível 1

- Mensagens: 16
- Registrado em: 11 Jul 2007 23:34
- Localização: São Paulo - SP
Ajuda: possivel BUG
Estou tendo um problema muito estranho com meu código. Gostaria de saber se já ocorreu com algum de vocês.
existe estre trecho do codigo:
if !COMISREC(M->NU_FIANCA)
do BAIXA_COMIS
endif
do BAIXA_FIANCA
do MONTA_ARQ_CONF
endif
COMISREC da diferente, logo ele entra na parte que tá do BAIXA_COMIS...Ai que o bicho pega ao inves de ele ir para esta parte PROCEDURE BAIXA_COMIS, ou seja cabeçalho da procedure e mandar bala. O codigo milagrosamente pula para a uma linha nada a ver logo acima da procedure BAIXA_FIANCA e começa a executar a procedure BAIXA_FIANCA
Bom eu tentei asteriscar o do BAIXA_FIANCA, mas mesmo assim o codigo vai parar lá.
Eu estou batante preocupado com isso? alguem pode me ajudar
desde de já agradeço
existe estre trecho do codigo:
if !COMISREC(M->NU_FIANCA)
do BAIXA_COMIS
endif
do BAIXA_FIANCA
do MONTA_ARQ_CONF
endif
COMISREC da diferente, logo ele entra na parte que tá do BAIXA_COMIS...Ai que o bicho pega ao inves de ele ir para esta parte PROCEDURE BAIXA_COMIS, ou seja cabeçalho da procedure e mandar bala. O codigo milagrosamente pula para a uma linha nada a ver logo acima da procedure BAIXA_FIANCA e começa a executar a procedure BAIXA_FIANCA
Bom eu tentei asteriscar o do BAIXA_FIANCA, mas mesmo assim o codigo vai parar lá.
Eu estou batante preocupado com isso? alguem pode me ajudar
desde de já agradeço
Diego Maciel
-----------
Clipper 5.3 + Blinker 6
COBOL + JCL + CICS + DB2 + VSAM
-----------
Clipper 5.3 + Blinker 6
COBOL + JCL + CICS + DB2 + VSAM
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Bem Vindo ao Forum !!!
Qual versão do Clipper vc esta usando ?
Nos de mais detalhe e post sua função completa para analisar melhor...
Abraços
Leonardo Machado
Tche, não entendi bem o que vc quiz mostrar ai nesse seu exemplo.....mas tudo bem..veja que vc diz que mesmo colocando asterisco ele executa a função.....deve ter algo errado por ai, o seu sistema não deve esta compilando.if !COMISREC(M->NU_FIANCA)
do BAIXA_COMIS
endif
do BAIXA_FIANCA
do MONTA_ARQ_CONF
endif
Qual versão do Clipper vc esta usando ?
Nos de mais detalhe e post sua função completa para analisar melhor...
Abraços
Leonardo Machado
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
- diego1504
- Usuário Nível 1

- Mensagens: 16
- Registrado em: 11 Jul 2007 23:34
- Localização: São Paulo - SP
Eu estou usando o Clipper 5.3
compilador Blinker 1.00
Vou tentar explicar melhor.
if !COMISREC(M->NU_FIANCA)
do BAIXA_COMIS
endif
do BAIXA_FIANCA
do MONTA_ARQ_CONF
endif
Me baseando no debug do clipper o programa esta executando da seguinte maneira.
A linha de execução do debug fica em cima do do BAIXA_COMIS. Ao inves de ele executar a PROCEDURE BAIXA_COMIS, o programa salta para a linha logo acima ao PROCEDURE BAIXA_FIANCA.
Uma tentativa minha de isolar o erro eu asterisquei a linha do BAIXA_FIANCA. Porém mesmo assim ele continua indo para o mesmo lugar.
O mais estranho é que estando ou não estando asteriscado a "linha da execução do debug" não fica em cima da chamado da procedure do BAIXA_FIANCA..Logo eu não entendo como o programa executa a PROCEDURE BAIXA_FIANCA sendo que eu não chamei ela.
Ou seja:
Ao inves do programa executar esta procedure:
* --------------------
PROCEDURE BAIXA_COMIS
* --------------------
sele CADCOM
CADCOM->(Dbseek(M->NU_FIANCA))
M->FIANCA_COM := CADCOM->NU_FIANCA
.
.
.
ele vem e executa este pedaço
*------------------
PROCEDURE BAIXA_FIANCA
M->DT_CONTAB = DATAW
M->DATANT = CTOD(' / / ')
M->COD_EVENTO = val(space(02))
M->CD_FILIAL = val(space(7))
M->VL_CONTAB = val(space(14) + '.' + space(2))
.
.
.
O codigo esta muito grande..se eu postar acho que vai dar umas 4 paginas sem brincadeira
:'(
Muito Obrigado pela ajuda
)
compilador Blinker 1.00
Vou tentar explicar melhor.
if !COMISREC(M->NU_FIANCA)
do BAIXA_COMIS
endif
do BAIXA_FIANCA
do MONTA_ARQ_CONF
endif
Me baseando no debug do clipper o programa esta executando da seguinte maneira.
A linha de execução do debug fica em cima do do BAIXA_COMIS. Ao inves de ele executar a PROCEDURE BAIXA_COMIS, o programa salta para a linha logo acima ao PROCEDURE BAIXA_FIANCA.
Uma tentativa minha de isolar o erro eu asterisquei a linha do BAIXA_FIANCA. Porém mesmo assim ele continua indo para o mesmo lugar.
O mais estranho é que estando ou não estando asteriscado a "linha da execução do debug" não fica em cima da chamado da procedure do BAIXA_FIANCA..Logo eu não entendo como o programa executa a PROCEDURE BAIXA_FIANCA sendo que eu não chamei ela.
Ou seja:
Ao inves do programa executar esta procedure:
* --------------------
PROCEDURE BAIXA_COMIS
* --------------------
sele CADCOM
CADCOM->(Dbseek(M->NU_FIANCA))
M->FIANCA_COM := CADCOM->NU_FIANCA
.
.
.
ele vem e executa este pedaço
*------------------
PROCEDURE BAIXA_FIANCA
M->DT_CONTAB = DATAW
M->DATANT = CTOD(' / / ')
M->COD_EVENTO = val(space(02))
M->CD_FILIAL = val(space(7))
M->VL_CONTAB = val(space(14) + '.' + space(2))
.
.
.
O codigo esta muito grande..se eu postar acho que vai dar umas 4 paginas sem brincadeira
:'(
Muito Obrigado pela ajuda
Diego Maciel
-----------
Clipper 5.3 + Blinker 6
COBOL + JCL + CICS + DB2 + VSAM
-----------
Clipper 5.3 + Blinker 6
COBOL + JCL + CICS + DB2 + VSAM
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Daniel, não sei qual seu grau de experiencia com o clipper, mas não me leve a mal pelas dicas....tente excluir todos os seus OBJ e recompilar o seu sistema....se vc colocar o asterisco em BAIXA_FIANCA ...ele deve ignorar o mesmo. Se ainda assim compilar sem dar erro algum e apresentar o mesmo problema acredito que seja algum problema de logica...
Veja Tb. que vc esta usando assim:
Como não sei sua Logica e nem vi seu codigo imagino que deveria ser algo mais ou menos assim:
Um Conselho que não vai resolver seu problema mas vc vai ter outros ganhos.....uso o Blinker 7.0 , nele vc tem varias opções a mais que não tem no 1.00. ex: compressão do EXE...diminui drasticamente o tamanho do seu EXE.
Abraços
Leonardo Machado
Veja Tb. que vc esta usando assim:
Código: Selecionar todos
if !COMISREC(M->NU_FIANCA )
do BAIXA_COMIS
endif
do BAIXA_FIANCA
do MONTA_ARQ_CONF
endif Código: Selecionar todos
if !COMISREC(M->NU_FIANCA)
do BAIXA_COMIS
else
do BAIXA_FIANCA
do MONTA_ARQ_CONF
endif Abraços
Leonardo Machado
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
- diego1504
- Usuário Nível 1

- Mensagens: 16
- Registrado em: 11 Jul 2007 23:34
- Localização: São Paulo - SP
Cara resolveu!!!!! Acredite!!!
Um ato simples deste acabou com o bug.
Acabei de indetificar o erro na lógica que estava perseguindo. Mas tudo graças a sua ajuda.
Acredito que o Obj anterior estava corrompido sei la...quando compilei o novo imediatemente o debug passou a agir certo.
) Valeu Leonardo Problema Resolvido
Um ato simples deste acabou com o bug.
Acabei de indetificar o erro na lógica que estava perseguindo. Mas tudo graças a sua ajuda.
Acredito que o Obj anterior estava corrompido sei la...quando compilei o novo imediatemente o debug passou a agir certo.
Diego Maciel
-----------
Clipper 5.3 + Blinker 6
COBOL + JCL + CICS + DB2 + VSAM
-----------
Clipper 5.3 + Blinker 6
COBOL + JCL + CICS + DB2 + VSAM
Que bom que resolveu. Mas quando coisas estranhas assim acontecem, me pergunto se não haveria algum problema com o HD. Será?
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
