Página 1 de 1
REPLACE X WITH Y - ANORMALIDADE?
Enviado: 02 Nov 2016 12:10
por tchadrack
ao fazer o debug em meu sistema, notei que a linha
REPLACE periodo WITH periodox (a variável periodox contém 1 único caractere e é inserida no banco através deste comando)
ESTÁ ACONTECENDO que logo após passar por este comando REPLACE, o conteúdo da variável periodox fica vazio, ou seja "" seu conteúdo desaparece.
ISSO É NORMAL NO CLIPPER? (Não tenho costume de programar no clipper mas preciso fazer a manutençao do sistema)
REPLACE X WITH Y - ANORMALIDADE?
Enviado: 02 Nov 2016 13:34
por Jairo Maia
Olá tchadrack,
tchadrack escreveu:ISSO É NORMAL NO CLIPPER?
Não! Em hipótese nenhuma.
Se não existe no banco de dados uma variável chamada
periodox, seu conteúdo é mantido após o Replace. Porém, se existe a variável com mesmo nome no banco de dados isso acontece porque ela assume o conteúdo do campo.
Poste um exemplo de como você está fazendo para que possamos opinar.
REPLACE X WITH Y - ANORMALIDADE?
Enviado: 02 Nov 2016 17:46
por JoséQuintas
Deixa eu ver se entendi: o replace está certo, e o conteúdo da variável estava certo.
Depois fica errado.
Por acaso não existe essa variável fora do módulo?
Código: Selecionar todos
PRIVATE periodox := " "
? periodox // aqui retorna branco
Subrotina1()
SubRotina2( periodox )
? periodox // aqui retorna branco
RETURN
FUNCTION SubRotina1()
PRIVATE periodox := "A"
? periodox // aqui retorna "A"
RETURN NIL
FUNCTION SubRotina2( Periodox )
periodox := "X"
? periodox // aqui retorna "X"
RETURN NIL
REPLACE X WITH Y - ANORMALIDADE?
Enviado: 02 Nov 2016 20:26
por tchadrack
O banco (f1) tem a coluna periodo mas não periodox
Código: Selecionar todos
Select f1
aa:= f1->descr
aai:= aa + "0"
If (reglock(0))
**** aqui, periodox é igual a "M"
Replace periodo With periodox
**** aqui, periodox é igual a "", mas deveria ser "M", senão dá problema um pouco mais a frente no código..
Replace arquivo With aa
Replace arqind With aai
Unlock
Else
mensagem(1)
Exit
EndIf
REPLACE X WITH Y - ANORMALIDADE?
Enviado: 02 Nov 2016 23:31
por tchadrack
Pelo que entendi então isso não é normal, vocês tem alguma idéia do que poderia estar acontecendo?
REPLACE X WITH Y - ANORMALIDADE?
Enviado: 03 Nov 2016 00:12
por tchadrack
Eu estava aqui fuçando no sistema, e compilei com o hbmk2. Ao fazer o debug nesse trecho do programa a variável não é mais alterada, e o bug desapareceu.
A instrução replace x with y não altera mais a variável.
Ou seja, acho que o problema era do compilador que eu estava utilizando, vou fazer um checkup na minha instalação do Harbour.
Agradeço a ajuda, :xau