Locate X Seek

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

José Luiz
Usuário Nível 1
Usuário Nível 1
Mensagens: 18
Registrado em: 15 Mar 2008 17:19
Localização: São Carlos - SP

Locate X Seek

Mensagem por José Luiz »

Existe a possibilidade de transformar minhas pesquisas "locate" para o "seek" em bancos indexados ? Por exemplo:

locate for rtrim(vmenor)$menor
...
continue

Aqui minha pesquisa é do sobrenome do adolescente. Ao achar um registro é colocado em um vetor e continua pesquisando. Terminada a pesquisa as ocorrências são jogadas no achoice para poder escolher a opção desejada.

Não consigo isso no "seek".
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Mensagem por alaminojunior »

Ao invéz de locate for rtrim(vmenor)$menor

pode usar

Código: Selecionar todos

do while !eof()
    if !dbseek(rtrim(vmenor))
       skip
    else
       inclui no vetor
       skip
    endif
enddo

achoice()
Claro que o índice em questão deve estar aberto e "na agulha".
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Mensagem por Pablo César »

alaminojunior escreveu:

Código: Selecionar todos

    if !dbseek(rtrim(vmenor))
...//...
Caro Alamino, acho que o colega explicou que deseja fazer o SEEK não com o nome da pessoa e sim com o sobre-nome. Isto é, ele deseja procura no índice como SUB-STRING. Acho que existe uma função do CDX que faz isso, não é ?
Claro que o índice em questão deve estar aberto e "na agulha"
Na agulha ? Não entendí, poderias explicar a que você se refere ?
Editado pela última vez por Pablo César em 26 Mar 2008 12:16, em um total de 1 vez.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Mensagem por alaminojunior »

Na agulha ? Não entendí, poderias explicar a que você se refere ?
Com uma resposta vou tentar matar as duas questões.

Quis dizer que para fazer a tal pesquisa por sobrenome, o índice "sobrenome" precisa estar setado, dentre tantos índices abertos, (nome, idade, sexo, código, etc...) Sendo assim basta informar o que se deseja encontrar.
Agora, sobre a sub-string: Só é possível com a Six. Com outras rdd´s somente com auxilio da função AT(), e muito lento.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Mensagem por Pablo César »

alaminojunior escreveu:que para fazer a tal pesquisa por sobrenome, o índice "sobrenome" precisa estar setado, dentre tantos índices abertos, (nome, idade, sexo, código, etc...)
Para isso o colega teria que desdobrar em outro campo (digamos campo SOBRENOME) e guardar somente o sobre nome alí. Mas pelo que entendo todo mundo faz um campo VNOME (por exemplo) e alí é prenchido PRIMEIRO_NOME+NOME_DO_MEIO+SOBRENOME e até apelido.... hihihi Fica difícil fazer desdobramento, as vezes o que se procura é um nome do meio.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Mensagem por alaminojunior »

Pablo, acho que quando editei vc já tinha postado, mas a solução então seria a Six, caso o nosso amigo use Clipper 5.2, se for 5.3 não dá.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Mensagem por Pablo César »

alaminojunior escreveu:a solução então seria a Six, caso o nosso amigo use Clipper 5.2, se for 5.3 não dá.
O Six não funciona com 5.3 ? Estavamos falando disso o outro dia com Maligno (veja neste link) e tinha eu entendido que o SIX poderia ser usado com 5.3.

De todas formas, nesse caso com o SIX você Alamino poderia dar a função de pesquisa por sub-string ?
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Mensagem por alaminojunior »

Com 5.3 não funciona, aliás me arrependo de ter atualizado os meus sistemas para 5.3 por isso. As funcionalidades da Six são várias, entre outras criptografia do dbf e outros bichos mais.
As funções para esta pesquisa que estamos discutindo são sx_wildseek e sx_wildmatch, entre outras. No site do Maligno tem ela completinha e com NG. Vale a pena.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Mensagem por Pablo César »

O SIX não funciona com 5.3, então estou enrascado !. Eu tenho meu sistema modular grande parte com 5.2.e ,´5.3 e até módulo em xHarbour. E eu gostaria de utiliza uma RDD que funcionasse bem para as três. Obrigado Alamino pelo seu esclarecimento.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
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 »

A bilbioteca SIX tem a vantagem da função sx_WildSeek(), que permite pesquisa de sub-strings. Resolveria o problema do colega facilmente.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Responder