Pessoal ja vi alguns topicos aqui no forum, mas axo que devido meu pouco conhecimento nao consegui trazer para minha realidade.,
Tenho uma tabela chamada Cliente e tenho um campo nela chamado nome_clie que é a order 1 da minha tabela.
Gostaria de Saber qual comando usar para que o programa me retornasse apenas o clientes quem contenham a palavra xavier, o banco de dados tem os seguintes registros;
Joao da Silva Xavier
Pedro Xavier Theodoro
Arlindo Campos
Mauricio Moraes
Xavier Pinto
Campos Oliveira
Sera que alguem pode me ajudar ??
Criando uma consulta
Moderador: Moderadores
-
Capitão Caverna
- Usuário Nível 1

- Mensagens: 2
- Registrado em: 04 Mai 2007 14:56
- Localização: Sinop
- Augusto
- Usuário Nível 3

- Mensagens: 473
- Registrado em: 26 Ago 2003 17:50
- Localização: Maricá/RJ
- Contato:
Código: Selecionar todos
use cliente
do while .not. eof()
if AT("xavier",nome_clie) <> 0
? nome_clie
endif
skip
enddoForma: AT(<expressão caracter1>,<expressão caracter2>)
Propósito: Retorna um número que representa a posição inicial de uma expressão caracter dentro de uma segunda expressão, se a primeira estiver nela contida e retorna 0(zero) se aprimeira não estiver contida na segunda.
:xau Fui...
goulart@provsul.com.br
Faça da PROVSUL o seu Provedor de Serviços WEB
Visite: www.PROVSUL.com.br
goulart@provsul.com.br
Faça da PROVSUL o seu Provedor de Serviços WEB
Visite: www.PROVSUL.com.br
Mas se for assim, é melhor usar um filtro:
A função UPPER() garante que nenhum nome será excluído por estar em maiúsculas e/ou minúsculas.
Agora, dependendo do volume de dados, ficará lento de qualquer maneira, seja pelo FILTER ou pelo método de busca um-a-um.
O ideal seria algo como a função sx_WildSeek() da SIX. Com essa função, mesmo com grande volume de dados, a busca é muito rápida.
Se o OP não conhece, é só pesquisar no fórum. Há várias mensagens sobre esta LIB.
Código: Selecionar todos
SET FILTER TO AT("XAVIER",Upper(nome_clie)) > 0
go top
while !EoF()
? nome_clie
CONTINUE
end
SET FILTER TO // desliga o filtroAgora, dependendo do volume de dados, ficará lento de qualquer maneira, seja pelo FILTER ou pelo método de busca um-a-um.
O ideal seria algo como a função sx_WildSeek() da SIX. Com essa função, mesmo com grande volume de dados, a busca é muito rápida.
Se o OP não conhece, é só pesquisar no fórum. Há várias mensagens sobre esta LIB.
[]'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!
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!
- Augusto
- Usuário Nível 3

- Mensagens: 473
- Registrado em: 26 Ago 2003 17:50
- Localização: Maricá/RJ
- Contato:
Bastante oportuna sua observação Maligno... obrigado... confesso que me lembrei do LOWER na hora que estava escrevendo o post mais acabei me esquecendo... (é a velhice - hehe) Portando ... lá vai...
Código: Selecionar todos
use cliente
do while .not. eof()
if AT("xavier",LOWER(nome_clie)) <> 0
? nome_clie
endif
skip
enddo:xau Fui...
goulart@provsul.com.br
Faça da PROVSUL o seu Provedor de Serviços WEB
Visite: www.PROVSUL.com.br
goulart@provsul.com.br
Faça da PROVSUL o seu Provedor de Serviços WEB
Visite: www.PROVSUL.com.br
-
Capitão Caverna
- Usuário Nível 1

- Mensagens: 2
- Registrado em: 04 Mai 2007 14:56
- Localização: Sinop
Valeu Galera ...
Obrigado pelas dicas vou tentar uma por uma, se for possivel gostaria de saber se vcs tem algum exemplo pra me mostrar do sx_WildSeek(). como funciona certinho.
Exemplo do sx_WildSeek
Retirado do NG:
Código: Selecionar todos
Sx_WildSeek():
Syntax: Sx_WildSeek( <cSearchStr>, [<lCont>] )
cSearchStr = The wildcard string to base the search on.
lCont = .T. searches from the current record pointer, .F.
searches from the top of the DBF (Default).
Returns: .T. if match is found (also sets found() to .T.), .F. if not
(also sets found() to .F.).
Description: Performs a wildcard SEEK on the currently selected tag or
index.
NOTE: This function is NOT supported under SIXNTX.
Examples:
// To find the first Smith or Smyth
Sx_WildSeek( "Sm?th" ) // Begin search from Bof()
Sx_WildSeek( "Sm?th", .T. ) // Begin Search from current recno()
// To find the first Johnson, Johnston, Johannson, Josephson, etc...)
Sx_WildSeek( "Jo*son" )[]'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!
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!
