![]() |
locate continuo
Hola amigos.os agradesco de antemano por su ayuda.
Tengo un sistemilla necesito buscar en un dataset un nombre, para lo cual uso
pero eso me arroja al registro con la primera coincidencia y lo activa, pues claro como lo especifican en la ayudita de delphi. pero he tratado de hacer que esto se me vaya mivilizando en los registros que conincidan con la cadena y la verdad no lo logro. He tratado de usar filtros, como lo indica en DSofD4 pero la verdad he fracasado. Uso zconnection. una Ztable enlazada a mi base de datos (mysql 5) un Data source un dbgrid. por favor espero me pois ayudar |
Si no me equivoco, quieres obtener todos los registros en los que coincida el campo nombre, ¿no es así?
Bueno, en el peor de los casos puedes usar directamente de SQL, que en tu caso sería "SELECT * FROM tabla WHERE nombre='edit1.text'". La forma de implementación ya depende del componente que utilices. Puedes construir la petición almacenándola en un STRING y luego llamar a la propiedad SQL (en el caso de TSQLQuery) o crear una petición con parámetros, pero esta forma no recuerdo cómo se hace. Si estás utilizando controles de "Data Controls", pues no tienes que hacer más. No puedo ayudarte mucho más porque hace bastante que no utilizo bases de datos con Pascal. |
gracias
Gracias por el interes Ñuño, el problema con lo que propones es que al tratarse de pocos registros, apenas 600 los enlace directamente a una Ztable, y se muestra directamente el contenido completo de mi tabla.
Lo que deseo es realizar una busqueda que me recorra los registros hasta que el usuario encuentre el correcto y lo utilice. de todas maneras gracias por tu interes |
Cita:
es muy bueno , lo recomiendo... ![]() |
Si solo son 600 registros hasta puedes recorrer la tabla de principio a fin con un bucle While, parar cuando cumpla la condición que quieras y dar al usuario la opción de seguir buscando o terminar la búsqueda.
600 se recorren en "ná" que es todavía menos que "nada". |
ok
Gracias por sus comentarios.
Voy a probar la opcion del while hasta mientras a ver como me va. Vo a buscar las jedi. PD: pido disculpas aca en ecuador estamos con apagones y no he podido acceder a la red. |
Hola Voldemmor!
Buscando soluciones me encontré con tu post… Mi idea era hacer algo similar a lo que te muestra Look en la imagen, mostrando la consulta en un DBGrid y lo solucioné así: Código:
IBQuery.SQL.Clear; |
gracias malau
Gracias por la colaboracion malau.
El problema esta en que no estoy usando querys de ningun tipo. Se trata de una zTable enlazada directamente a la DB. Gracias de todas maneras |
Cita:
En mi caso tengo tablas: Tuniversitario, Tmateria, Tbeca y quiero realizar igual las busquedas como muestran en este ejemplo. Podrian darme algun ejemplo? Gracias |
Hola sisne, he aquí una forma de cómo hacerlo:
1.- un Tedit para el dato a buscar 2.- un grid para mostrar los datos (tal como se muestra en la gráfica ya publicada) 2.- en el evento OnChange del Tedit: procedure TFndFrm.Edit1Change(Sender: TObject); begin Productos.Locate('Nombre',Edit1.Text,[loPartialKey]); end; Espero que esto sea lo que esperabas.:D |
Holaasss
Alguien tiene conocimiento sobre ese funcionamiento? :o Necesito ese tipo de busqueda por favor... |
¿Y qué más quiéres que te digan?, te han dicho el componente, el evento donde poner el código y el código que debes poner... :confused:
|
Hola vinicc
Gracias por el codigo :), exactamente el locate te lo busca directamente, pero no te lo muestra los posibles que cumplan en este caso con la busqueda que se coloca en el Tedit, es decir va reduciendose a medida que encuentra en el DBGrid. Gracias de todas maneras eso ya lo use:p:o |
Sisne! para filtrar la información de acuerdo al caracter ingresado en el Edit lo que puedes hacer es cambiar la propiedad active luego de la consulta:
Código:
DataSet.Active:=False; |
Hola!
Gracias por la ayuda. |
Hola Malau!
Gracias por la ayuda. |
La franja horaria es GMT +2. Ahora son las 21:54:14. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi