FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Problemas para buscar - Locate
Hola amigos, por favor si alguien me puede ayudar.Estoy terminado una aplicacion para una playa de estacionamiento y Tengo 2 tablas, Tablasocio(IdSocio,Apellido, Nombre) y TablaAutos(IdSocio, Marca, Patente) siendo el IdSocio el campo por el cual se relacionan, con la Propiedad MasterSource de la TablaAutos. Ahora bien todo funciona de maravilla, pero al realizar una busqueda de un registro en la TablaAutos no encuentra nada. :S ...
Probando encontre que si quito la relacion, osea si anulo lo de la propiedad MasterSource, entonces si encuentro el registro.- :S Utilizo MySql y Delphi 7. El codigo para realizar la busqueda es el siguiente: If (DM.TablaAutos.Locate('Patente',Edt_Num.Text,[])) Then Begin ShowMessage('El vehiculo pertenece a un Socio.'); Edt_Num.SetFocus(); end; Si alguien me puede dar una manito. Gracias.- Gustavo.- |
#2
|
||||
|
||||
Hola Gustavo.
No has comentado qué componentes de acceso a datos estás utilizando, pero, en general, cuando relacionas un conjunto de datos (data set, table, query) como detalle de otro, en él solamente tendrás acceso a los registros detalles que correspondan al actual registro maestro (el registro donde se encuentra posicionado el conjunto de datos maestro). Así que si le estás pidiendo que localice un valor que no se encuentra en el actual "grupo" de registros detalles, no lograrás que el conjunto de datos se posicione en el registro que buscas, porque sencillamente no tiene relación con el actual registro maestro. Existen varias formas de sacarle la vuelta a este problema pero, antes de hablar sobre ellas, ¿podrías ampliar el tema detallando qué componentes usas e indicando valores de ejemplo? No olvides usar la etiqueta para código Delphi (el botón del pequeño Partenón). Saludos. Al González. |
#3
|
|||
|
|||
Hola Al Gonzalez, gracias por responder, me quedo claro lo que me dijsite, pero la verdad nose como resolverlo. El tema es asi: Utilizo 2 tablas una de SOCIOS y otra de AUTOS (Donde cada socio puede ser dueño hasta de 3 autos) entonces, utilizo dos Grillas, una muestra todos los socios y a medida que selecciono alguno, en la otra grilla se actualiza mostrandome los datos de los vehiculos que le pertenecen a ese socio seleccionado. Utilizo componentes Datasource, Query. En la propiedad Mastersource de la tabla AUTOS lo enlazo con el DataSource de la tabla SOCIOS y en la Propiedad MasterFields selecciono el campo IDSocios. El código que utilizo es el que te mostre anteriormente.
SOCIOS ====== IDSocios Nombre Apellido 11 Marcelo Gonzalez 12 Sergio Rodriguez 13 Andres Chavez AUTOS ===== IDSocios Patente Marca 11 GAA-222 WV 11 ABB-322 Renault 12 BTT-188 Fiat 13 CDD-553 Ford Ese es el esquema de las tablas. Espero poder hacerme entender jaja.. Bueno gracais amigo por tu atencion.- Espero tu respuesta. Gracias.- |
#4
|
||||
|
||||
Gracias por ampliar el panorama, ekstase. Supongo que con query y tabla te refieres a componentes TQuery y TTable, ¿es así?
¿Entonces sí se da la situación de que el usuario o el programa requiera buscar un registro de auto que no necesariamente pertenezca al actual registro de socio? En ese caso quizá convenga que te auxilies con una consulta (query) adicional, que sirva para obtener el / los IDSocios de una patente en particular. Ejecutando dicha consulta para luego usar el IDSocios resultante y con él hacer Locate en el conjunto de datos maestro, antes de hacer el Locate en la tabla detalle. La sentencia SQL sería:
Puede que haya mejores soluciones, pero es algo que se me ocurre ahora, a bote pronto. ¿Qué te parece la idea? Un saludo de año nuevo. Al González. |
#5
|
||||
|
||||
Y no quites el MasterSource; Asegurate de que los campos de enlace esten asi. LinkedField := 'IDSocio'; MasterFields := 'IDSocio'; |
#6
|
|||
|
|||
Gracias [Al González] lo resolvi con tu sugerencia, asi fue el código final:
Connor gracias por tu atención también, me sacaron un peso de encima. Gracias Chicos, hasta la próxima. Gustavo.- |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Problemas con Locate | jmlifi | Varios | 8 | 16-05-2006 21:31:11 |
Locate no buscar parcialmente, por que? | URBANO | Conexión con bases de datos | 13 | 14-10-2005 20:14:22 |
Problemas con Locate | Acker | Tablas planas | 12 | 05-08-2005 15:47:46 |
Problemas con locate | Ivanzinho | Firebird e Interbase | 0 | 03-05-2005 17:45:57 |
Problemas Con Locate | gzerox | Firebird e Interbase | 4 | 20-05-2004 10:06:14 |
|