FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Ayuda con Locate y Lookup
Hola a todos.
Tengo un DBgrid asociado a un ADOTable. Cuando filtro la tabla por sexo y uso Locate o Lookup, aunque solo muestre los del sexo masculino (porque los he filtrado) el locate o el lookup me sigue encontrando el articulo aunque no se muestra en el DBgrid pq esta filtrado (en este caso Femenino) y el puntero se mueve a la fila mas cercana. Deberia no encontrar el articulo que estoy buscando si el sexo es Femenino, porque tengo la tabla filtrada a sexo Masculino, pero me dice que lo encuentra a pesar de ser femenino y se cambia la fila activa al mas cercano. Mas claro, el locate o el Lookup no respeta el filtro que le he puesto a la base de datos. Que pudiera estar sucediendo? Muchas gracias |
#2
|
||||
|
||||
y podrias colocar el codigo de como estas haciendo el locate?
__________________
Dulce Regalo que Satanas manda para mi..... |
#3
|
||||
|
||||
Aqui esta el codigo. La Tabla la filtro por Sexo en un RadioGroup, asi el DBGrid se filtra segun se seleccione el sexo: Masculino o Femenino. Cuando está filtrada por Masculino y busco un articulo que es Femenino y existe en la Tabla, lo encuentra, pero como el DBGrid solo me esta mostrando los masculinos lo que hace es que el puntero se mueve al articulo masculino mas cercano. Asi hace cuando esta filtrada por Femenino, etc.
Última edición por ecfisa fecha: 05-09-2011 a las 05:22:16. Razón: ETIQUETAS [DELPHI] [/DELPHI] |
#4
|
||||
|
||||
Cita:
si ya localizo lo que buscas ya no es necesario buscarlo nuevamente
Se traduce en.... SI lo que escribi en el edit esta en la tabla en el campo ArcherId entonces.... ya lo encontraste.. ya no es necesatio
__________________
Dulce Regalo que Satanas manda para mi..... |
#5
|
||||
|
||||
Hola.
Tu observación es correcta oscarac , la línea es redundante ya que de encontrarlo vuelve a buscarlo. Pero esa no es la raíz del problema, ya que si se hace: O se hace: Y el dato a buscar existe en la tabla pero está excluido del conjunto de datos filtrados, en ambos casos mostrará el mensaje 'Encontrado', siendo que no debería hacerlo. Es decir que ignora el filtro en la busqueda. Un saludo.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#6
|
||||
|
||||
y dime cubanbaker, que tal si haces la busqueda por el codigo y por el sexo? sin necesidad de filtrar la tabla?
has considerado esa forma?
__________________
Dulce Regalo que Satanas manda para mi..... |
#7
|
||||
|
||||
Cita:
No encontré documentación que explique o documente este problema, según mis pruebas, el TADOTable filtrado no funciona bién con Locate. Pareciera que para realizar la búsqueda ignora el filtrado y lo hace sobre la tabla completa. El resultado que obtuve es que: Si el dato enviado no existe en la tabla devuelve falso sin realizar acción alguna como corresponde. Pero si el dato pertenece a la tabla y no al conjunto filtrado, devuelve verdadero y se posiciona en el próximo registro. Ese es un comportamiento que no he detectado antes con otros componentes como TIBTable, TSQLTable o TTable. Por lo que pareciera ser un bug. (al menos con Delphi 7) Una posible solución es hacerte una función donde verifiques el dato buscado a la salida de Locate y de no coincidir restaurar la posición y devolver False, reemplazando el uso de Locate por ella:
Llamada de ejemplo: Pero sinceramente creo que sería mucho más eficiente filtrar por una consulta SQL. Un saludo.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 05-09-2011 a las 12:45:22. Razón: Agregar ejemplo de llamada a la función. |
#8
|
||||
|
||||
Ecfisa, ya me respondieron. Dicen que "ese es el comportamiento que debe tener el Locate, que NO es un bug de Delphi" y punto, no dijeron mas nada. Parece que les molestó que le encontraras un bug... De todas maneras les envié la forma de cómo tuviste que hacer para que funcionara. Sé que lo tendran en cuenta para proximas ediciones de Delphi.
Gracias! |
#9
|
||||
|
||||
Hola cubanbaker.
Cita:
Un saludo y gracias por realizar el reclamo.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Ayuda Lookup ComboBox | Cristalero | OOP | 4 | 19-04-2009 16:49:03 |
ayuda con locate | ercrizeporta | Varios | 2 | 21-08-2007 17:12:21 |
ayuda con LOCATE | vivamotos | C++ Builder | 4 | 27-08-2006 04:40:46 |
Busqueda con Locate o Lookup | noshy | Conexión con bases de datos | 7 | 15-05-2006 01:45:02 |
Locate en un campo lookup | amadis | Conexión con bases de datos | 1 | 22-12-2005 21:46:52 |
|