minha funcao do DBU não funciona ¬¬...HELP..

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Avatar do usuário
kirua
Usuário Nível 1
Usuário Nível 1
Mensagens: 29
Registrado em: 01 Fev 2007 10:04

minha funcao do DBU não funciona ¬¬...HELP..

Mensagem por kirua »

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
Editado pela última vez por kirua em 12 Fev 2007 14:46, em um total de 1 vez.
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

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
Avatar do usuário
kirua
Usuário Nível 1
Usuário Nível 1
Mensagens: 29
Registrado em: 01 Fev 2007 10:04

Mensagem por kirua »

vlw cara...
ou to quase conseguindo mais ja sei onde tah o meu erro valeu mesmo até mais
Dércio_Luiz_Zanatta
Usuário Nível 3
Usuário Nível 3
Mensagens: 153
Registrado em: 11 Jan 2006 15:37
Localização: Ibirubá - RS

Mensagem por Dércio_Luiz_Zanatta »

O nome da variável da sua pesquisa tem o mesmo nome do campo que é chave no índice !! Acho que ta ai o problema..
Um abraço..
Avatar do usuário
kirua
Usuário Nível 1
Usuário Nível 1
Mensagens: 29
Registrado em: 01 Fev 2007 10:04

Mensagem por kirua »

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:
GO TOP
SEEK NOME
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.....
o q seria esse erro e pq daria justo nessa linha???

Desde ja agradeço.
:)Pos
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Mensagem por rochinha »

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 ...
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.
Avatar do usuário
kirua
Usuário Nível 1
Usuário Nível 1
Mensagens: 29
Registrado em: 01 Fev 2007 10:04

Mensagem por kirua »

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....
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
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..
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
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Mensagem por rochinha »

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.
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.
Avatar do usuário
kirua
Usuário Nível 1
Usuário Nível 1
Mensagens: 29
Registrado em: 01 Fev 2007 10:04

Mensagem por kirua »

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...
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Mensagem por rochinha »

Amiguinho

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.
Responder