Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Actualizacion de componente DBGRid (https://www.clubdelphi.com/foros/showthread.php?t=83568)

giulichajari 02-07-2013 00:05:24

Actualizacion de componente DBGRid
 
Bueno, el caso es que al entrar al form1 tengo 2 botones: uno va a un form a dar de alta un gasto, el otro, muestra los gastos con algunas funciones. Al entrar a el form2 no se ven los registros añadidos en el formulario de dar de alta nuevo gasto, si cierro la aplicacion y aparecen.

Como puedo hacer para actualizar el DBGRid. Muchas gracias.

ecfisa 02-07-2013 00:23:04

Hola giulichajari.

No sé cuantos componentes DataSet tenes asociado a la tabla, pero en última instancia, cerrando y abriendo el DataSet que visualiza en form2 tendrías que divisar los datos actualizados.

Saludos. :)

giulichajari 02-07-2013 21:29:58

Respuesta
 
Tengo un DataSource y un DataTable, solo eso junto al DBGrid, tendria que agregar un TDataSet?
Y programar en el evento OnShow del Form?

ecfisa 03-07-2013 04:09:28

Hola.
Cita:

Empezado por giulichajari (Mensaje 463118)
Tengo un DataSource y un DataTable, solo eso junto al DBGrid, tendria que agregar un TDataSet?

No, sólo es necesario actualizar el componente DataSet (TTable, TIBDataSet, TADOTable, etc) que esté vinculado al TDBGrid.

Saludos. :)

giulichajari 03-07-2013 12:43:54

Respuestas
 
Código Delphi [-]
void __fastcall TForm5::FormCreate(TObject *Sender)
{
  

   Table1->Refresh();

}

Tengo ese codigo en el Create del Form porque pienso que al entrar al form se deberia refrescar la tabla , pero no sucede nada. Muchas gracias

ecfisa 03-07-2013 13:59:43

Hola.

Intentá con:
Código:

  Table1->Close();
  Table1->Open();

Eso si o si actualizará la tabla, pero los datos visualizados dependerán de con quién esta vinculado el componente.
Es decir, si está vinculado a Table1, reflejará el cambio en los datos.

Saludos. :)

giulichajari 03-07-2013 16:34:14

Respuestas
 
El DBGrid esta vinculado a un DataSource y este a un DataTable, es lo mismo?

giulichajari 04-07-2013 18:11:01

Hola de vuelta
 
Cita:

Empezado por ecfisa (Mensaje 463147)
Hola.

Intentá con:
Código:

  Table1->Close();
  Table1->Open();

Eso si o si actualizará la tabla, pero los datos visualizados dependerán de con quién esta vinculado el componente.
Es decir, si está vinculado a Table1, reflejará el cambio en los datos.

Saludos. :)

Claro porque no se puede colocar en el DataSet del DBGrid un ttable hay que tener un DataSource si o si

ecfisa 04-07-2013 18:27:53

Hola.

Si, precisamente a eso me refería.

Para visualizar los cambios hay que aplicar el método Refresh o cerrar/abrir el TDataSet (Query, Table, etc) que esta vinculado al TDBGrid mediante el TDataSource asignado a su propiedad DataSource.

Saludos. :)

giulichajari 04-07-2013 18:49:14

seria asi
 
este seria el codigo en el evento oncreate del form en el que e4sta el dbgrid.

Código Delphi [-]
Table1->DataSource->DataSet->Refresh();

ecfisa 04-07-2013 19:04:40

Hola.
Cita:

Empezado por giulichajari (Mensaje 463243)
este seria el codigo en el evento oncreate del form en el que e4sta el dbgrid.

Código Delphi [-]
Table1->DataSource->DataSet->Refresh();

Supongo que habras querido poner:
Código:

  DBGrid1->DataSource->DataSet->Refresh();
De todos modos toma en cuenta que ese código, al estar en el evento OnCreate sólo se ejecuta una vez, al crearse el form.

La alternativa que te mencionaba es:
Código:

  DBGrid1->DataSource->DataSet->Close();
  DBGrid1->DataSource->DataSet->Open();


Saludos. :)


La franja horaria es GMT +2. Ahora son las 07:09:00.

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