Busca parcial em Tabela DBF

Fórum sobre Banco de Dados e RDDs para Clipper/[x]Harbour.

Moderador: Moderadores

Cisino Junior
Usuário Nível 2
Usuário Nível 2
Mensagens: 67
Registrado em: 14 Abr 2016 13:12
Localização: Rio de Janeiro

Busca parcial em Tabela DBF

Mensagem por Cisino Junior »

http://www.devmedia.com.br/sql-select-guia-para-iniciantes/29530 escreveu: FILTRO DE TEXTO
Para busca parcial de string, o SELECT fornece o operador LIKE. Veja o exemplo abaixo:

SELECT CODIGO, NOME FROM CLIENTES
WHERE NOME LIKE ‘MARIA%’
Neste comando, todos os clientes cujos nomes iniciam com Maria serão retornados. Se quisermos retornar os nomes que contenham ‘MARIA’ também no meio, podemos alterar para o exemplo a seguir:

SELECT CODIGO, NOME FROM CLIENTES
WHERE NOME LIKE ‘%MARIA%’
O uso de máscara no início e no fim da string fornece maior poder de busca, mas causa considerável perda de performance. Este recurso deve ser utilizado com critério.
Boa tarde!!!
Como na citação acima, retirada de uma postagem do DEVMEDIA, eu gostaria de saber como fazer para realizar uma busca parcial de registro em tabela DBF. Por exemplo: Na minha tabela de produtos está cadastrado itens como "Item Qualquer A" "Qualquer Item A" "Item Qualquer B", ao digitar a palavra QUALQUER, eu quero que retorne no componente BROWSE os registros com o a palavra "QUALQUER" independente da posição que ela esteja na STRING, começo ou meio. Como faz a operador LIKE do comando SELECT no SQL.

Alguém pode me dar uma luz nisso?

Desde já agradeço!

Atenciosamente,
Cisino Junior.
HMG 3.4.3 + DBF, Java, MySQL, PostgreSQL, PHP, JavaScript + HTML5 + CSS3, Bootstrap, Spring, Thymeleaf.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

BUSCA PARCIAL EM TABELA DBF

Mensagem por JoséQuintas »

Alguém pode me dar uma luz nisso?

Código: Selecionar todos

SET FILTER TO "QUALQUER" $ NOME

SET FILTER TO Left( NOME, 8 ) == "QUALQUER"

SET FILTER TO Right( Trim( NOME ), 8 ) == "QUALQUER"
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Cisino Junior
Usuário Nível 2
Usuário Nível 2
Mensagens: 67
Registrado em: 14 Abr 2016 13:12
Localização: Rio de Janeiro

BUSCA PARCIAL EM TABELA DBF

Mensagem por Cisino Junior »

JoséQuintas escreveu:Expandir visualizacaoVer codigo
1 SET FILTER TO "QUALQUER" $ NOME
2  
3 SET FILTER TO Left( NOME, 8 ) == "QUALQUER"
4  
5 SET FILTER TO Right( Trim( NOME ), 8 ) == "QUALQUER"
6  
Olá Quintas, boa tarde!!!

Vou testar seu exemplo, muito obrigado!!!

Atenciosamente,
Cisino Junior.
HMG 3.4.3 + DBF, Java, MySQL, PostgreSQL, PHP, JavaScript + HTML5 + CSS3, Bootstrap, Spring, Thymeleaf.
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

BUSCA PARCIAL EM TABELA DBF

Mensagem por Toledo »

Amigo, veja também este exemplo de busca/consulta:

https://pctoledo.org/forum/viewto ... 871#p94456

No campo de busca deste demo, digite por exemplo *JOSE

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

BUSCA PARCIAL EM TABELA DBF

Mensagem por JoséQuintas »

Esqueci de uma coisa:
Se estiver usando algum acesso ao DBF que permite SQL, pode fazer exatamente igual, usando LIKE.
Não sei se é o caso.

E sempre pode estender o filtro usando rotina própria.

SET FILTER TO MeuFiltro()
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Cisino Junior
Usuário Nível 2
Usuário Nível 2
Mensagens: 67
Registrado em: 14 Abr 2016 13:12
Localização: Rio de Janeiro

BUSCA PARCIAL EM TABELA DBF

Mensagem por Cisino Junior »

Toledo escreveu:Amigo, veja também este exemplo de busca/consulta:
Olá Toledo, irei testar agora também. Muito obrigado!!!
JoséQuintas escreveu:Esqueci de uma coisa:
Se estiver usando algum acesso ao DBF que permite SQL, pode fazer exatamente igual, usando LIKE.
Não sei se é o caso.
Olá Quintas, estamos migrando o acesso aos DBF's para o LetoDB(fork). Você poderia me indicar o caminho para fazer os acessos aos DBF's com SQL??? Isso me parece ser muito interessante! Muito obrigado!

Atenciosamente,
Cisino Junior.
HMG 3.4.3 + DBF, Java, MySQL, PostgreSQL, PHP, JavaScript + HTML5 + CSS3, Bootstrap, Spring, Thymeleaf.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

BUSCA PARCIAL EM TABELA DBF

Mensagem por JoséQuintas »

Seria por ODBC, que no Harbour só usando SQLMIX, ou alguma outra diretamente, ou ADO que é o que uso.
O que já usei foi ADO + Advantage Local.
E ainda deve existir de FoxPro, Visual Foxpro, dBase, etc.

Mas se for pra mexer nos fontes, melhor pensar em MySQL, e não em DBF.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Cisino Junior
Usuário Nível 2
Usuário Nível 2
Mensagens: 67
Registrado em: 14 Abr 2016 13:12
Localização: Rio de Janeiro

BUSCA PARCIAL EM TABELA DBF

Mensagem por Cisino Junior »

Boa tarde, Quintas!

Vou dar uma pesquisada sobre isso, mas o mudar para SGBD SQL seria realmente o melhor, infelizmente não possuímos tempo para isso agora, pois o sistema é enorme.

Você teria algum exemplo de uso?

Mais uma vez, muito obrigado!

Atenciosamente,
Cisino Junior.
HMG 3.4.3 + DBF, Java, MySQL, PostgreSQL, PHP, JavaScript + HTML5 + CSS3, Bootstrap, Spring, Thymeleaf.
Responder