FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Busqueda en un DBF sin SQL
Saludos.
Siempre tuve una gran duda sobre las búsquedas en los campos de un dbf. Resulta que si se utiliza “Locate” para buscar en un determinado campo por ejemplo ModuloDatos.TCliente.Locate('NOMBRE',Edit.Text,[loPartialKey, loCaseInsensitive]); En el Edit tienes que poner el nombre exacto del cliente a buscar, y si no es exacto no lo encuentra. Mi pregunta es la siguiente. ¿Hay alguna forma de filtrar los nombres de búsquedas sin utilizar SQL para que tan solo utilizando varios caracteres que contengan la palabra a buscar la encuentre? Pongo un ejemplo. Necesito buscar la palabra CIENPIES, con Locate siempre tengo que poner la primera letra por lo menos para que aparezca. Y yo necesito que con solo poner PIES aparezca. ¿Es eso posible sin utilizar SQL en una base de datos DBF? Espero y deseo haberme explicado bien. Gracias |
#2
|
||||
|
||||
no entiendo porq complicarlo, si con una sql es tan facil como:
__________________
...Yo naci en esta ribera del arauca vibr@d0r Soy hermano de la espuma, de la garza, de la rosa y del sol... Viva Venezuela |
#3
|
||||
|
||||
Sí, seguramente es facil.
Pero nunca he trabajado con SQL y no tengo ni idea donde poner ese codigo que tu me comentas. ¿En el onkeypress del edit? ¿Me vale el TTable o tengo que cambiarlo por el TQuerry? No se como hacerlo, tampoco pretendo que me enseñeis paso a paso. Con un sencillo y pequeño empujón tengo suficiente. Gracias Eduarcol |
#4
|
||||
|
||||
voy a tratar de ponerlo facil
1.- Coloca un TQuery 2.- Configuralo como si fuera el TTable 3.- En el evento que deseas realizar la busqueda escribe el siguiente codigo:
Lo coloco de memoria, si te da un error avisas para ayudarte a corregirlo
__________________
...Yo naci en esta ribera del arauca vibr@d0r Soy hermano de la espuma, de la garza, de la rosa y del sol... Viva Venezuela |
#5
|
||||
|
||||
Vale de acuerdo.
Solo una duda, ¿ya tengo en el Datamodule un TTable Clientes, que hago, lo dejo o lo sustituyo por TQuerry Clientes? ¿Pueden estar los dos o juntos son incompatibles? Me refiero a TTable yTQuerry conectados a la misma base de datos. Gracias. |
#6
|
||||
|
||||
si tienes otro uso para el tTable dejalo, si no lo necesitas mas quitalo, no son incompatibles
__________________
...Yo naci en esta ribera del arauca vibr@d0r Soy hermano de la espuma, de la garza, de la rosa y del sol... Viva Venezuela |
#7
|
||||
|
||||
Ok Eduarcol.
Voy a probar y mañana te cuento Ok. Gracias amigo. |
#8
|
||||
|
||||
Bueno empezamos mal con el SQL.
Creo que no he configurado bien el TQuery. Porque al compilar el programa me da el siguiente error. TQuery: No SQL statament available Si tengo un TTable Clientes y un TQuery Clientes, ¿ Tengo que tener también un TDataSource para cada uno de ellos? Gracias. |
#9
|
||||
|
||||
Lo mas seguro es que estas tratando de abrirlo antes de asignarle el SQL, el active := True o el Open saltatelo hasta que llegues al codigo que te escribi
__________________
...Yo naci en esta ribera del arauca vibr@d0r Soy hermano de la espuma, de la garza, de la rosa y del sol... Viva Venezuela |
#10
|
||||
|
||||
Sí pero el problema es que no soy capaz de poner a True la propiedad Active del TQuery.
No se como hacerlo me da error. |
#11
|
||||
|
||||
puedes explicarnos como lo tratas de hacer, paso a paso para encontrar el error
__________________
...Yo naci en esta ribera del arauca vibr@d0r Soy hermano de la espuma, de la garza, de la rosa y del sol... Viva Venezuela |
#12
|
||||
|
||||
Bueno haber si puedo explicarme para que me podáis entender.
Tengo en un DataModule , Un TTableClientes, Un TQueryClientes, un DataSourceClientes1 y otro DatasourceClientes2. El TTableClientes con las propiedades DatabaseName = C:\Progreama\Datos TableName = Clientes.Dbf Active = True Está conectado a un DataSourceClientes1 -------Otro------. El TQueryClientes con las propiedades DatabaseName = C:\Progreama\Datos TableName no tiene (y lo que no sé es donde poner la Base de datos Clientes.dbf) Active = False Este conectado a un DataSourceClientes2 Aclarar que no tengo instalado ni Oracle, ni MySql ni nada de eso, tampoco tengo interbase. No se si hace falta instalar algo de eso. Saludos. |
#13
|
||||
|
||||
bueno vamos bien, ahora asi como esta lo que tienes es qe colocar el codigo de arriba en el evento que deseas realizar la busqueda
__________________
...Yo naci en esta ribera del arauca vibr@d0r Soy hermano de la espuma, de la garza, de la rosa y del sol... Viva Venezuela |
#14
|
||||
|
||||
Sencillamente sencillo.
Eres grande Eduarcol, esto funciona de maravilla. Tan solo decirte que sigue saliendo la excepcion al compilar que dice... TQuery: No SQL statament available. Y no sé porque, pero de todas formas si le doy a continuar funciona. Gracias. |
#15
|
||||
|
||||
no ni tan grande si supieras como 1.72
esa excepcion es porq estas tratando de realizar un open, cuando te salte fijate en que linea y quitas el TQuery.open
__________________
...Yo naci en esta ribera del arauca vibr@d0r Soy hermano de la espuma, de la garza, de la rosa y del sol... Viva Venezuela |
#16
|
||||
|
||||
Ok.
Solucionado. El Hombre no se mide por su altura, se lo hace por su grandeza. Gracias Eduarcol. Saludos desde España. |
#17
|
|||
|
|||
Cita:
Justamente estoy tratando de hacer lo mismo que RoyTan. Hice todo como figura en la cita que hice del post de eduarcol, pero cuando quiero buscar, para que encuentre una coincidiencia tengo que ingresar el nombre empezando por la primer letra. Por ejemplo: si quiero buscar CARLOS en el campo NOMBRE tengo que escribir primero la C despues la A etc. yo lo q necesito es que si escribo en el edit OS me muestre todos los registros que dentro del campo NOMBRE figure OS. Por ejemplo: carlOS, marcOS. Si no entendi mal lo que lei del hilo que creo RoyTan el queria hacer justamente eso. Saludos |
#18
|
||||
|
||||
el operador %, se utiliza para determinar la ubicacion de la cadena de busqueda en el ejemplo de roytan esta al final, o sea todo lo que comienze como se indica y termine en lo que sea.
Si quieres lograr eso, modifica esta linea
__________________
...Yo naci en esta ribera del arauca vibr@d0r Soy hermano de la espuma, de la garza, de la rosa y del sol... Viva Venezuela |
#19
|
|||
|
|||
Buenisimo!! muchas gracias anda perfecto!
Ahora yo tengo un DBgrid donde se muestra lo que va encontrando a medida que se escribe, pero no me aparece ordenado en orden alfabetico... y en el Query no contre donde espesificar un indice como para que lo ordene, tal como la propiedad IndexName del TTable (TTable.IndexName) ya que estoy te pregunto, hay algun tutorial, manual, libro o algo parecido donde se puedan aprender detalles como el de la ubicacion del signo % en el Query |
#20
|
||||
|
||||
Cita:
Donde "CampoOrdenar", es el campo por el que quieres ordenar el grid.
__________________
...Yo naci en esta ribera del arauca vibr@d0r Soy hermano de la espuma, de la garza, de la rosa y del sol... Viva Venezuela |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
busqueda con sql | Kamael | OOP | 2 | 31-01-2008 21:19:33 |
busqueda sql like | douglas | Conexión con bases de datos | 27 | 18-11-2007 18:32:00 |
busqueda sql | Dark Aeris | Firebird e Interbase | 10 | 06-06-2006 23:05:20 |
busqueda | alachaise | Internet | 1 | 31-03-2005 16:57:34 |
|