Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   DBLookupComboBox (Desaparece Información) (https://www.clubdelphi.com/foros/showthread.php?t=4005)

javiermorales 27-09-2003 20:51:41

DBLookupComboBox (Desaparece Información)
 
Hola a todos, en varios formularios tengo campos DBLookupComboBox y todo funciona correctamente, pero en dos de ellos, todo va bien hasta que realizo un Locate en la tabla.

El locate encuentra el registro asociado y en ese momento la información que aparecía en los DBLookupComboBox (y no en todos) desaparece y aunque te muevas por la tabla, ya no reflejan la información.

Si sales y entras del formulario, todo vuelve a la normalidad.

¿Le ha ocurrido a alguien?, ¿alguna sugerencia?.

Gracias. Un saludo.

roman 27-09-2003 22:04:16

Normalmente, si un DbLookupComboBox no muestra información es porque la clave no tiene correspondencia en la tabla relacionada.

Por ejemplo, vamos a suponer que tienes estas tablas:

personas = (id, nombre, direccion, pais_id)
pais = (id, nombre)

Apuntas el datasource y el datafield del lookup a personas y el listsource, keyfield y keyvalue a paises para mostrar el nombre del país de la persona.

Es posible que al hacer el Locate en la tabla personas encuentres un registro con una clave de país que no aparece en la tabla paises.

En tal caso el lookup no mostrará nada.

// Saludos

javiermorales 27-09-2003 22:05:44

Por si le sirve a alguien, me contesto a mi mismo. Antes de realizar el Locate, llamo a varias pantallas donde se van seleccionando una serie de datos que acaban conformando la clave por la que realizo el Locate.

Entre esas pantallas algunas utilizaban los DataSet con los cuales estaban relacionados los DBLookupComboBox, al salir de dichas pantallas se realizaba la desactivación de los mismos y por lo tanto no podían seguir obteniendo los datos.

Lo he solucionado creando DataSets independientes, que solo se usan para esas pantallas.

Un saludo

javiermorales 27-09-2003 22:07:37

Gracias por la respuesta roman, no te lo había agradecido, porque ha separado 1 minuto nuestras contestaciones y no se había refrescado la tuya.

Un saludo.

javiermorales 27-09-2003 22:11:36

Roman, ya que estas en el foro,¿normalmente creas un DataSet en el módulo de datos por cada formulario que va a acceder a esa tabla, o creas uno solo y todos los formularios a través de los DataSource apuntan al mismo?.

Te lo pregunto por lo ocurrido y por si da problemas el tener dos formularios apuntando al mismo DataSet.

Yo trabajo con ADO, por si te sirve. Gracias. Un saludo

roman 27-09-2003 22:27:12

Pues yo creo que depende de cada caso. En el sistema en que trabajo, por ejemplo, que es un sistema de control escolar, divido las tablas por semestres lectivos. Entonces tengo un módulo de datos para las tablas comunes a todos los semestres y otro para las tablas del semestre activo. La mayoría de mis formularios apuntan a uno de estos dos módulos pero algunos cuantos tienen sus propios datasets que si bien se refieren a tablas que ya están en los otros módulos usan otros filtros o se relacionan con otras tablas de forma distinta.

// Saludos


La franja horaria es GMT +2. Ahora son las 10:38:48.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi