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?
Moderador: Moderadores
- Jairo Maia
- Moderador
- Mensagens: 2785
- Registrado em: 16 Ago 2010 13:46
- Localização: Campinas-SP
REPLACE X WITH Y - ANORMALIDADE?
Olá tchadrack,
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.
Não! Em hipótese nenhuma.tchadrack escreveu:ISSO É NORMAL NO CLIPPER?
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.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
REPLACE X WITH Y - ANORMALIDADE?
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?
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
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
REPLACE X WITH Y - ANORMALIDADE?
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?
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?
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
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
