minha funcao do DBU não funciona ¬¬...HELP..
Moderador: Moderadores
minha funcao do DBU não funciona ¬¬...HELP..
Função ja resolvida e deu npau no pc q ele não estah copiando ehehe...(mas nem levem em consideração)...
agora é só la em baixo
vlw pessoal
agora é só la em baixo
vlw pessoal
Editado pela última vez por kirua em 12 Fev 2007 14:46, em um total de 1 vez.
Conselho de amigo: indente seu código. Do jeito que está, se fosse um pouquinho maior, sinceramente, nem me daria ao trabalho de ler.
É uma boa prática você indexar nomes sempre em maiúsculas (ou minúsculas) e pesquisar da mesma forma. Um erro pode estar aí, já que, para o software, a pesquisa não é feita (em baixo nível) por texto, mas por números. A letra A vale 65 e a leta a vale 97.
Um erro que observei. Seu último GET (para sair) não tem um READ. Então ele não será executado.
Uma coisa estranha: a variável nome_v tem um uso impróprio. Essa variável tem o mesmo nome do campo do seu registro. Você deveria estar usando uma variável de memória, não o nome de um campo. E ao utilizar este campo, o ponteiro do registro estará num local incerto e não sabido. Então, você tanto poderá tê-lo em EOF(), BOF() ou, o que é pior, corrompendo involuntariamente um registro qualquer. E mais: antes de pesquisar, você comanda um GO TOP, o que faz nome_v assumir o valor contido no primeiro registro, e utiliza para pesquisa esse nome. Ou seja: o efeito é o mesmo que um GO TO RecNo(); o ponteiro não muda. Mas, justamente por esse fato, FOUND() deveria retornar TRUE e não FALSE, como você diz.
[]'s
Maligno
http://www.buzinello.com/prg
É uma boa prática você indexar nomes sempre em maiúsculas (ou minúsculas) e pesquisar da mesma forma. Um erro pode estar aí, já que, para o software, a pesquisa não é feita (em baixo nível) por texto, mas por números. A letra A vale 65 e a leta a vale 97.
Um erro que observei. Seu último GET (para sair) não tem um READ. Então ele não será executado.
Uma coisa estranha: a variável nome_v tem um uso impróprio. Essa variável tem o mesmo nome do campo do seu registro. Você deveria estar usando uma variável de memória, não o nome de um campo. E ao utilizar este campo, o ponteiro do registro estará num local incerto e não sabido. Então, você tanto poderá tê-lo em EOF(), BOF() ou, o que é pior, corrompendo involuntariamente um registro qualquer. E mais: antes de pesquisar, você comanda um GO TOP, o que faz nome_v assumir o valor contido no primeiro registro, e utiliza para pesquisa esse nome. Ou seja: o efeito é o mesmo que um GO TO RecNo(); o ponteiro não muda. Mas, justamente por esse fato, FOUND() deveria retornar TRUE e não FALSE, como você diz.
[]'s
Maligno
http://www.buzinello.com/prg
-
Dércio_Luiz_Zanatta
- Usuário Nível 3

- Mensagens: 153
- Registrado em: 11 Jan 2006 15:37
- Localização: Ibirubá - RS
e era isso mesmo XD..VALEU...
ou mas aconteceu outro problema eu arrumei todas as variaveis do banco tbm ficou tudo certo mas na linha:
o q seria esse erro e pq daria justo nessa linha???
Desde ja agradeço.
:)Pos
ou mas aconteceu outro problema eu arrumei todas as variaveis do banco tbm ficou tudo certo mas na linha:
fala q não existe a variavel "nome_v" :-O mas a unica coisa q tah com esse nome são as variaveis (LOCAL) e num tem nada a ver com B.D.....GO TOP
SEEK NOME
o q seria esse erro e pq daria justo nessa linha???
Desde ja agradeço.
:)Pos
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
Amiguinho
Quando usar variaveis que tenham o mesmo nome do banco de dados acrescente algo que possa caracteriza-la como um letra ou M->, exemplo:
cNome
lTeste
nValor
dNascimento
Veja que a primeira letra me diz o significado do conteudo que a variavel pode ter c-caracter, l-logico, n-valor inteiro ou fracionado e d-data e assim por diante.
Mas se voce achar que isto pode ser maçante pode apenas referenciar a variavel com um M->VARIAVEL
M->Nome
M->Teste
M->Valor
M->Nascimento
Assim quando voce comandar
REPLACE nome WITH M->NOME
O Clipper saberá que voce esta jogando dados de uma variavel em um campo.
Da mesma forma voce fara este uso nos Gets e SAYs
@ ..,.. GET M->NOME ...
Quando usar variaveis que tenham o mesmo nome do banco de dados acrescente algo que possa caracteriza-la como um letra ou M->, exemplo:
cNome
lTeste
nValor
dNascimento
Veja que a primeira letra me diz o significado do conteudo que a variavel pode ter c-caracter, l-logico, n-valor inteiro ou fracionado e d-data e assim por diante.
Mas se voce achar que isto pode ser maçante pode apenas referenciar a variavel com um M->VARIAVEL
M->Nome
M->Teste
M->Valor
M->Nascimento
Assim quando voce comandar
REPLACE nome WITH M->NOME
O Clipper saberá que voce esta jogando dados de uma variavel em um campo.
Da mesma forma voce fara este uso nos Gets e SAYs
@ ..,.. GET M->NOME ...
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Amiguinho.XD
eu ja mudei tudo isso q vc tah me dizendo mas mesmo assim não reconhece o comando:
GO TOP
fala q num tem a variavel nome_v só q esse nome representa a variavel e não o nome q esta no banco exemplo:
VARIAVEL: nome_v
BANCO: NOME
esta assim e outra coisa me tira uma duvida q até ia perguntar e graças a isso eu ja vou falar XD....
Sera q isso tem alguma coisa a ver com o meu erro????
Obrigado e ja vou aproveitar pra tirar o meu comando e vou ver se eu coloco o novo vlw
eu ja mudei tudo isso q vc tah me dizendo mas mesmo assim não reconhece o comando:
GO TOP
fala q num tem a variavel nome_v só q esse nome representa a variavel e não o nome q esta no banco exemplo:
VARIAVEL: nome_v
BANCO: NOME
esta assim e outra coisa me tira uma duvida q até ia perguntar e graças a isso eu ja vou falar XD....
OS q estão em NEGRITO são os nomes q esta no banco de dados e os q estão com o "_v" são as variaveis..APPEND BLANK
REPLACE NOME WITH nome_v, RG WITH rg_v, CPF WITH cpf_v
REPLACE DATAN WITH datan_v, LOCAN WITH locan_v, END WITH end_v
REPLACE NUM WITH num_v, CEP WITH cep_v, FONE WITH fone_v
REPLACE LOCA WITH loca_v, CIDA WITH cida_v, ESTA WITH esta_v
Sera q isso tem alguma coisa a ver com o meu erro????
Obrigado e ja vou aproveitar pra tirar o meu comando e vou ver se eu coloco o novo vlw
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
Amiguinho
Voce PUBLICou, LOCALizou ou PRIVATEzou as variaveis?
Se voce LOCALizou ou PRIVATEzou as variaveis em uma função e as esta chamando ou usando em outra função elas não serão visualizadas. PUBLICque-as.
Voce PUBLICou, LOCALizou ou PRIVATEzou as variaveis?
Se voce LOCALizou ou PRIVATEzou as variaveis em uma função e as esta chamando ou usando em outra função elas não serão visualizadas. PUBLICque-as.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Amiguinho
Então ja mudei tudo pra Public mas a praga do erro continua....
vou explicar mais detelhado comoq esta acontecendo....
eu tenho Um menu->SubMenu->(q contem outras opçoes)
uma delas é a opção pesquisa...
quando eu chamo a função ela pede o nome do cliente a ser pesquisado(até ai normal)
mas quando eu coloco o nome aparece esse erro dizendo: q não existe variavel nome_v
mas quando eu monto a função eu coloco o comando pra chamar o "NOME"(BD) e não "nome_v"(VAR)....
é muito estranho, alem de dar esse erro fala q o erro esta na linha de numero 293, onde esta escrito:
Go Top
não da pra entender mesmo...
Então ja mudei tudo pra Public mas a praga do erro continua....
vou explicar mais detelhado comoq esta acontecendo....
eu tenho Um menu->SubMenu->(q contem outras opçoes)
uma delas é a opção pesquisa...
quando eu chamo a função ela pede o nome do cliente a ser pesquisado(até ai normal)
mas quando eu coloco o nome aparece esse erro dizendo: q não existe variavel nome_v
mas quando eu monto a função eu coloco o comando pra chamar o "NOME"(BD) e não "nome_v"(VAR)....
é muito estranho, alem de dar esse erro fala q o erro esta na linha de numero 293, onde esta escrito:
Go Top
não da pra entender mesmo...
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
Amiguinho
Antes deste GO TOP coloque ? alias() e veja se o nome do .DBF é o mesmo que vc esta pesquisando.
Antes deste GO TOP coloque ? alias() e veja se o nome do .DBF é o mesmo que vc esta pesquisando.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.

