Página 1 de 1

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

Enviado: 09 Fev 2007 13:34
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

Enviado: 09 Fev 2007 17:53
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

Enviado: 11 Fev 2007 17:43
por kirua
vlw cara...
ou to quase conseguindo mais ja sei onde tah o meu erro valeu mesmo até mais

Enviado: 12 Fev 2007 09:35
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..

Enviado: 12 Fev 2007 13:10
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

Enviado: 12 Fev 2007 14:17
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 ...

Enviado: 12 Fev 2007 14:42
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

Enviado: 12 Fev 2007 15:13
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.

Enviado: 12 Fev 2007 15:56
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...

Enviado: 12 Fev 2007 17:42
por rochinha
Amiguinho

Antes deste GO TOP coloque ? alias() e veja se o nome do .DBF é o mesmo que vc esta pesquisando.