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: 2820
- Registrado em: 16 Ago 2010 13:46
- Localização: Campinas-SP
- Curtiu: 2 vezes
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: 20415
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
- Curtiram: 1 vez
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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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
