Busqueda Avanzada de Información
Moderador: Moderadores
-
victorale07
- Usuário Nível 2

- Mensagens: 67
- Registrado em: 20 Ago 2009 19:55
- Localização: chile
Busqueda Avanzada de Información
hola:
tengo un programa en redes, el cual utilizo dbseek() con indices cdx, para la busqueda rapida de información.
Utilizo un campo en la base de datos llamado NOMBRE en el cual se ingresa el nombre+apellidos
ejemplo:
1 JUAN PEREZ SOTO
2 LUIS SOTO JIMENEZ
3 MARIO RAMIREZ GOMEZ
4 MARIO FERNANDEZ SOTO
5... ETC...
la Base de Datos es bastante grande, 20.000 Registros Aproximadamente.-
Pero necesito ubicar solo los de Apellidos SOTO, como lo puedo hacer para que la busqueda sea tan rápida como
la instrucción dbseek().-
Gracias.-
tengo un programa en redes, el cual utilizo dbseek() con indices cdx, para la busqueda rapida de información.
Utilizo un campo en la base de datos llamado NOMBRE en el cual se ingresa el nombre+apellidos
ejemplo:
1 JUAN PEREZ SOTO
2 LUIS SOTO JIMENEZ
3 MARIO RAMIREZ GOMEZ
4 MARIO FERNANDEZ SOTO
5... ETC...
la Base de Datos es bastante grande, 20.000 Registros Aproximadamente.-
Pero necesito ubicar solo los de Apellidos SOTO, como lo puedo hacer para que la busqueda sea tan rápida como
la instrucción dbseek().-
Gracias.-
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
Busqueda Avanzada de Información
Hay una rotina ofrecida por el colega billy1943 en este tópico: https://pctoledo.org/forum/viewto ... EEK#p57649
Sinó, creo que deberias usar la funcion wildseek pero creo que es de la rdd Six e no de la cdx, averigue atraves de la opcion de menu "Busca" para ver como es.
Sinó, creo que deberias usar la funcion wildseek pero creo que es de la rdd Six e no de la cdx, averigue atraves de la opcion de menu "Busca" para ver como es.
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.
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.
-
victorale07
- Usuário Nível 2

- Mensagens: 67
- Registrado em: 20 Ago 2009 19:55
- Localização: chile
Re: Busqueda Avanzada de Información
Hay una función llamada sx_WildSeek(), parte de la biblioteca SIX, que sirve exactamente para lo que quiere: buscar por cualquier parte del nombre. Ejemplo: sx_WildSeek("*SOTO") move el puntero para el primer registro que contiene el nombre parcial. Y una nueva llamada sx_WildSeek("*SOTO,.T.) continuará la búsqueda,desde la posición actual del puntero.
Por supuesto, esta biblioteca también tiene muchas características interesantes y otras herramientas que también pueden ser utilizadas.
Por supuesto, esta biblioteca también tiene muchas características interesantes y otras herramientas que también pueden ser utilizadas.
[]'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!
- alaminojunior
- Colaborador

- Mensagens: 1717
- Registrado em: 16 Dez 2005 21:26
- Localização: Ubatuba - SP
Re: Busqueda Avanzada de Información
Existe também a possibilidade de fazer a pesquisa com a função AT() do Clipper.
Eu fazia uso desta função nos prg´s em Clipper e achava bem rápida, apesar da tabela principal ter cerca de 10.000 registros.
Código: Selecionar todos
Function Busca(arg) // arg = parte do nome para pesquisar
local dtmp:= {}, bnom:= subs(netname(),1,8), lugar:= recno() // matriz com estrutura da tabela temp. ; nome da tabela temp.
aadd(dtmp,{"tmpcod","N",7,0})
aadd(dtmp,{"tmpnom","C",50,0})
aadd(dtmp,{"tmpcid","C",25,0})
dbcreate(bnom,dtmp) // cria tabela temp. que receberá os reg´s encontrados
use &bnom excl new // avre-se a tabela temp
sele cdcli000 // seleciona a tabela principal de clientes
dbgotop()
do while !eof()
if at(alltrim(arg),clinom) > 0 // encontrou o registro
&bnom->(dbappend())
repl &bnom->tmpcod with clicod
repl &bnom->tmpnom with clinom
repl &bnom->tmpcid with clicid
skip
else
skip
endif
enddo
goto lugar
return &bnom->(reccount()) // aqui está retornando o número de reg´s para uma outra função que os exibirá Eu fazia uso desta função nos prg´s em Clipper e achava bem rápida, apesar da tabela principal ter cerca de 10.000 registros.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
MySQL c/ SQLRDD
HwGui + GTWVG
Re: Busqueda Avanzada de Información
Funciona, claro. Mas o problema é a velocidade. Com um índice composto, a pesquisa parece até instantânea, mesmo que numa base de dados bem volumosa.
[]'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!
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
Busqueda Avanzada de Información
Si, justamente a esa que yo me referia cuando dije que era de la RDD SIX, pero la RDD que el colega está usando, me parece que es CDX. Aunque creo que no es dificil de adaptar la SIX en lugar de CDX. Si no demuestra resultado favorable el ejemplo de la funcion procura.txt, entonces no tendrá mejor salida que emigrar para RDD SIX o desconosco que haya la misma funcion para CDX...Hay una función llamada sx_WildSeek(), parte de la biblioteca SIX
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.
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.
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
Re: Busqueda Avanzada de Información
Olá!
Se o amigo estiver compilando com Clipper 5.3, poderá utilizar as funções OrdWildSeek() e OrdScope().
Se o amigo estiver compilando com Clipper 5.3, poderá utilizar as funções OrdWildSeek() e OrdScope().
[]´s
Alexandre Santos (AlxSts)
Alexandre Santos (AlxSts)
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
Busqueda Avanzada de Información
Achei um tópico (no fundo do baú) que fala sobre mudança no registro (vou confirmar com Rochinha, se é ainda válido), sobre uma rotina de pesquisa em arquivo temporario (também do colega Rochinha) e sobre alguns pontos esclarecedores sobre o tema RDD, para quem quiser rever: https://pctoledo.org/forum/viewto ... CDX#p18391
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.
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.
-
victorale07
- Usuário Nível 2

- Mensagens: 67
- Registrado em: 20 Ago 2009 19:55
- Localização: chile
