Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Comportamiento raro en lista de DBLookupcombobox (https://www.clubdelphi.com/foros/showthread.php?t=36153)

Albano 03-10-2006 20:08:07

Comportamiento raro en lista de DBLookupcombobox
 
Hola a todos, que tengan un buen dia...
Estoy trabajando con Delphi 2005 y MySQL 5.0, con conexion mediante alias. Uso algunos DBLoocUpComboBox, conectados con su respectivo DataSource... para conectarlos modifico las propiedades ListSource, ListField y KeyField, como lo indican en algunos hilos del foro.
Tengo dos problemas con los DBLookupCombobox:
  1. Al agregar algun dato desde una parte de mi aplicacion, la lista del DBLoockupComboBox se queda en blanco o mas bien se deshabilita el componente, ¿como puedo hacer para que se actualice esta lista y que no se deshabilite el componente? Si vuelvo a ejecutar mi aplicacion, el dbloockupcomobox funciona perfecto, me muestra todos los datos que acabo de agregar y los que ya estaban, pero no puedo estar reiniciando mi aplicacion cada vez que agrego un dato para que este componente me funcione... ¿puede alguien ayudarme?
  2. Cuando selecciono uno de los datos que me muestra el dbloockupcombobox, se comporta de manera extraña, en ocaciones pone de texto a este dato seleccionado, en otras ocaciones me modifica la lista de datos, borrando, duplicando, sustituyendo los datos, a la base de datos no le pasa nada, es el componente el que funciona de manera extraña... Alguien sabe cual es el problema?
Gracias de antemano, Dios les bendiga...

albertresearch 04-10-2006 15:56:02

Hola,

En un principio, esto que te pasa a ti (se queda en blanco) me pasaba a mi en los casos que tenia una DBLookupComboBox vinculada a una tabla "hija"(detail) en una relacion master/detail. Asi que en algunos casos el orden de validacion,apertura de las tablas es importante... Yo no se si es este tu caso. Por los problemas que me explicas me parece que tienes el Datasource quizas en AutoEdit = true. Esto explicaria el comportamiento "de por libre" de la combo ya que puede provocar que es ponga la tabla en edicion automaticamente al cambiar el dato. Necesitaria un poco mas de datos o mejor un trozo de codigo para ver con mas detalle.

Albano 04-10-2006 19:35:40

Pues ya verifique la propiedad del DataSoure que me mencionaste y tenias razon, estaba en true, pero al ponersela false, las cosas siguen igual... Tengo una base de datos de MySQL con unas 15 tablas, todas son normales, no son hijas ni nada de eso (en realidad no se que es eso de hijas y esas cosas).
Lo que me pasaba al agregar algun dato a la tabla era que se me bloqueaba el DBLookUpComboBox, pero ahora, cada vez que voy a usar este componente, simplemente lo habilito y todo bien, ese problema quedo solucionado.
Lo que todavia no soluciono es que se me pone en blanco la lista o se me modifican los elementos en cada ocacion que selecciono alguno.

albertresearch 04-10-2006 20:13:44

Bien. Lo de las Tablas "hijas" o "detalle" significa que tienes una tabla maestra por ej una tabla de Empleados y una tabla de detalle que seria una Tabla de las facturas de este Empleado. La tabla de facturas de este empleado se puede vincular a la de empleado mediante una relacion Maestro/Detalle (Master/Detail) que a la vez que se navega por la tabla maestra (empleados) la tabla vinculada (FacturasEmpleados) solo muestra los datos de ese empleado. Este vinculo normalmente se estableceria por el codigo de empleado. Como me comentabas que ni sabias a lo que me referia entonces seguramente este no es el problema.:)
Esta combo que apunta en la tabla en question te da problemas al insertar ?? Si es asi lo que te falta es poner el valor por defecto al que apunta esta combo. Por Ejemplo: Si tienes una tabla de empleados con un Campo de codigo de pais (EPL_CODIGO_PAIS) al insertar el registro este campo estara vacio por lo que la combo se mostrara en blanco. Deberias cargar en este campo despues de insertar el registro un codigo valido de la tabla que muestra la combo. Buf.. espero que me este explicando.

Albano 04-10-2006 20:23:21

Mmm... no se si no me explique bien, el problema que tenia al insertar un dato en la tabla quedó solucionado, el DBLookUpComboBox se deshabilitaba, pero ya lo habilito manualmente cada vez que lo muestro, entonces eso quedó solucionado...
El problema que tengo, segun yo, no tiene nada que ver con los datos que tengo en la tabla, debe de ser algun comportamiento raro en el componente... Voy a explicar un poco lo que pasa:

El DBLookUpComboBox me muestra una lista de los nombres de clientes que tengo en la tabla, de éstos, escojo uno y cuando vuelvo a desplegar la lista de nombres, ésta está modificada, en ocaciones esta en blanco, en ocaciones con nombres repetidos y en otras ocaciones con nombres omitidos.

Ese es mi problema.

albertresearch 05-10-2006 15:59:37

Vale. Queda mas o menos claro. Yo miraria mas bien el origen de datos que muestra la combo.. Porque no vinculas en un momento una DBGrid (para probar) al mismo datasource de la combo para "ver" como estan los datos, lo digo para ver que es lo que esta ocurriendo. Si la lectura la haces con una query... quizas esta es la que te este devolviendo estos datos mal.. repasa la sentencia SQL. Tambien (y esto lo digo de oidas/leido ya que no he trabajado con MySQL) tengo entendido que hay problemas con delphi 2005/2006 con compatibilidad con MySQL 5. De verdad lamento no poder ser de mucha mas ayuda.


La franja horaria es GMT +2. Ahora son las 01:49:57.

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