FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Busquedas por cualquier criterio, sin especificar ninguno
Hola;
Vereis, es que estaba pensando como poder hacer busquedas al estilo de Windows Media 11. Si buscas en la biblioteca de medios, en un campo escribes algo, y conforme escribes va filtrando. Pero esque va super-rapido. Esto lo haria en el evento OnChange, si, pero ¿como hacer para buscar por cualquier criterio, sin especificar dicho crieterio? En un programa Tpv que tengo en unas tiendas de ropa, ya hice algo parecido, pero no se si se podra hacer de otra forma. En el Tpv tengo un Edit en el cual el usuario puede introducir directamente Ean, Referencia o Codigo propio sin especificar nada. El programa hace una busqueda en una tabla que cree para ello donde se almacenan 2 datos: El string para la busqueda (ean, ref o id) y el id del articulo. Pero, no se como hacer para que por ejemplo en el caso de tratarse de libros, que buscara editorial. Y es que las editoriales ( los nombres ) no estan en la tabla de libros, si no el codigo. La busqueda en Windows Media 11, me gusta mucho. Escribes por ejemplo: "Bad" y te muestra las canciones que contengan la palabra Bad, pero ademas si un album se llama asi, muestra tambien el album entero. Si escribes una fecha muestra los albumes con dicha fecha y si algun titulo de album o cancion contiene ese numero, pues tambien. Y si escribo "Bad smoth criminal" muestra el tema smoth criminal que esta dentro del disco Bad. Esque si utilizo la misma formula que tengo en el T.p.v. para los libros, me da que seria demasiado. Se crearia una tabla inmensa. Por que por ejemplo para los titulos de los libros, cada palabra deberia de almacenarla y referenciarla al id del libro. Y lo pero que veo es el tema de campos que son codigos, como la editorial. Alguna idea. ¿Alguien utiliza una tabla de esta manera para busquedas? |
#2
|
|||
|
|||
Se me ocurre algo así:
luego en delphi:
|
#3
|
||||
|
||||
Gracias basti;
Pero me da el siguiente error: "Type mismatch in expression" Las tablas son dBase. Perdon, he debido decirlo antes. |
#4
|
||||
|
||||
Cuando te dá ese error es proque estas tratando de involucrar dos tipos de datos distintos. Asegurate que si un campo es de tipo Varchar, String, Integer, Numeric,...etc, estos coincidad el valor que le enviaras por medio del Parametro (AsString, AsInteger, AsFloat,...)
Saludo
__________________
Van Troi De León (Not) Guía, Code vB:=Delphi-SQL, ¿Cómo? Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto! |
#5
|
||||
|
||||
Gracias vtdeleon;
Efectivamente ese era el error. Ahora funciona, pero me pregunto yo si sera posible hacer lo siguiente: Dados estos 3 titulos, por ejemplo: DELPHI MOLA ! ( EDIT: ANAYA ) MOLA DELPHI ! ( EDIT: ANAYA ) BIBLIA DE DELPHI ( EDIT: EVEREST ). Si escribo en el edit de busqueda: "ANAYA" muesta los 3. Si escribo EVEREST, muestra el ultimo. Pero si escribo: "DELPHI MOLA", aparace solamente el primero. Y yo lo que quisiera conseguir es que mostrara DELPHI MOLA Y MOLA DELPHI. Y otro caso es si escribo: "ANAYA DELPHI", que me mostrara los dos de ANAYA en cuyo titulo aparece la palabra DELPHI. Volviendo al Windows Media y las busquedas en la biblioteca: Hay 3 Albumes donde hay canciones que tienen la palabra "Bad". 2 son de Scorpions y 1 de Michael Jackson. Pues bien, en el campo de busqueda, yo escribo "bad" y muestra: El disco de Michael que se llama Bad ( este lo muestra completo ) y las 2 canciones de los 2 discos de Scorpions ( solo cada cancion, no el disco. puesto que el disco no se llama Bad). Si sigo escribiendo: "bad smooth criminal" entonces, muestra la cancion smooth criminal del disco bad. Fijaros, que no hay ningun disco que se llame "bad smooth criminal" ni ninguna cancion que se llame a si. Osea, que busca por palabras separadas, no la cadena. Si escribo "Anaya Delphi", claro, no sale nada. No existe ninguna editorial llamada "Anaya Delphi" ni ningun titulo. Con el codigo de Basti, funciona, pero toda la cadena. Le he añadido '%' antes del Edit para buscar la cadena en cualquier posicion. No se si me he expliado bien con tanto Bad y Smooth pero para entenderlo mejor, podeis mirar aqui |
#6
|
||||
|
||||
Saludos
Una vez hice una chorrada de código para hacer búsquedas parecidas a como lo hace Winamp con los mp3. Mira a ver si te funciona, aunque te advierto que no está muy optimizado ni nada, y que creo que se podría mejorar, pero ahí tienes un avance. http://www.clubdelphi.com/foros/show...ghlight=winamp http://www.clubdelphi.com/foros/show...ghlight=winamp
__________________
Van Troi De León (Not) Guía, Code vB:=Delphi-SQL, ¿Cómo? Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto! |
#7
|
||||
|
||||
Cita:
Hoy ya no me da tiempo, pero mañana lo pruebo con interbase. |
#8
|
||||
|
||||
Lo estoy probando con Interbase y al escribir en el Edit me da este error:
List index out of bounds(2) |
#9
|
||||
|
||||
Vaya, como había dicho antes "es una chorrada de codigo".
El error viene del TStringList. Pero la idea que tenia en ese momento era usar containing para la búsqueda, en vez de Like. Delimitar el Stringlist por espacio, asi la cadena dada por el edit estará separada por palabra. Entonces por cada palabra que haya, agregar una linea de búsqueda.
__________________
Van Troi De León (Not) Guía, Code vB:=Delphi-SQL, ¿Cómo? Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto! |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Una jábega de cantamañanas se pasa por el forro, cuando le conviene, el criterio.. | marcoszorrilla | La Taberna | 4 | 02-01-2007 11:15:25 |
Especificar donde guardar archivo generado. | Coco_jac | PHP | 1 | 25-08-2006 15:58:03 |
PageControl,TabControl,TabSheet ¿ninguno actualiza en tiempo de diseño? | gambitero | Varios | 2 | 05-07-2006 11:53:32 |
Especificar el índice en SQL como un parámetro | Tio | SQL | 4 | 19-06-2003 01:36:02 |
Como especificar la ruta de red? | Argaron | Conexión con bases de datos | 3 | 21-05-2003 23:26:24 |
|