Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Refresco de un DBLookupComboBox (https://www.clubdelphi.com/foros/showthread.php?t=71242)

jafera 09-12-2010 12:57:59

Refresco de un DBLookupComboBox
 
Hola a todos.

Tengo en un form un DBLookupComboBox el cual se llena con los datos de una table Firebird 1.5.

Cuando edito el registro en el form para Alta o Modificación, tengo puesto en el Combo un submenu (boton derecho) que me permite añadir datos a la tabla del combo en caso de que no exista.

Hasta aqui correcto, pero el problema lo tengo cuando añado un registro a la tabla desde su form sin ser llamado por el submenu y que en el momento de hacer post me da un error de access violation.

Este es el codigo que uso para el refresco:

Código Delphi [-]
procedure TF_ModulDades.PropietarisAfterPost(DataSet: TDataSet);
begin
        IBTBombers.CommitRetaining;
        F_Camions.Prop.Close;
        F_Camions.Prop.Open;
end;

Pero este código tambien se usa para la edicion normal de los registros.

Supongo que el error debe estar en el close, open, aunque no se como solventarlo.

Alguna idea para poder refrescar el contenido del dblookupcombobox para que cuando añado un registro se muestre en el desplegable?

Saludos

Josep

rgstuamigo 09-12-2010 23:27:29

Cita:

Empezado por jafera (Mensaje 384440)
...Alguna idea para poder refrescar el contenido del dblookupcombobox para que cuando añado un registro se muestre en el desplegable?
...

Pues se me ocurre que hagas el refrescado de datos en el dataset del cual esta enganchado el ListSouce de tu DBLookupComboBox ;)
Código Delphi [-]
DBLookupComboBox1.ListSource.DataSet.Refresh; ;)
Esto lo puedes en el evento AfterPost del Dataset donde estas posteando(Post) los nuevos datos; tal como lo estas haciendo;).
Obviamente tambien se puede cerrar(Close) y abrir (Open) el Dataset tal como lo estás haciendo pero creo que es precisamente eso la causa del error.:rolleyes:, por eso mejor utilizar el Método Refresh que ha sido implementado precisamente para eso. ;)
Espero te sea de utilidad.;)
Saludos...:)

jafera 10-12-2010 16:12:45

Gracias por la respuesta.

Ya he descubierto donde estaba el error, era sencillamente que el query con el que llenaba el combobox, estaba en el formulario A, y evidentemente si abria el formulario B y modificaba el dataset principal, hacia el post y el refresh con el A cerrado pues "volià mon ami".

Lo he pasado al Datamodule que siempre esta abierto.

Saludos

Josep


La franja horaria es GMT +2. Ahora son las 14:36:51.

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