Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   problemas con dbgrid (https://www.clubdelphi.com/foros/showthread.php?t=79483)

ttotto 10-07-2012 21:51:54

problemas con dbgrid
 
Hola a todos

estoy creando un sistema y el problema es que no me refleja lso datos insertados

tengo un boton que crea una forma done capturo mis datos al dar click este boton inserta

losdatos y me manda a otra forma con un dbgrid para mostar lso datos de mi tabla

pero no entiendo por que no puedo verlos inmediatamente , sino hasta que cierro la aplicacion

y cuand oa hago esto ya puedo verlos gracias pongo mi codigo

Código Delphi [-]

SimpleDataSet6.Connection:=Form1.SQLConnection1;
  SimpleDataSet6.DataSet.CommandText:='Select * from  posiciones';
  SimpleDataSet6.Active:=True;
  SimpleDataSet6.Open;

debo poner un refresh y si es asi como es el codigo

gracias por su ayuda

ecfisa 10-07-2012 22:19:46

Hola.

Comentas muy poco hacerca de como tenes organizado el código...

Pero si utilizaras un TDataModule en donde situaras el TSQLConnection, el TSimpleDataset y el TDataSource, al ejecutar un código similar a este:
Código Delphi [-]
...
implementation

uses  Form2, // DataModule2
      Form3; // (Form donde está el otro DBGrid asociádo por su 
             //  propiedad Datasource a DataModule2->DataSource1)
...
procedure TForm1.Button1Click(Sender: TObject);
begin
  with DataModule2.SimpleDataSet1 do
  begin
    Open;
    Append;
    FieldByName('Campo1').AsString:= 'blabla';
    FieldByName('Campo2').AsString:= 'mas blabla';
    ...
    Post;
  end;
  TForm3.Create(Self).Show; // (si no está autocreado)
end;
Se abrirá Form3 mostrando el DBGrid en donde figurará el último dato insertado.

Saludos.

ttotto 10-07-2012 22:35:38

refrescar un dbgrid
 
gracias ecfisa.

te lo explico

tengo 2 forms el from1 es donde coloque un dbfrid y un boton de agregar cuando doy click la boton me bare la forma 2

en la forma 2 tengo lso edit donde capturo los datos a ingresar , ahi mismo tengo el boton de insertar y cuando doy click

entonces a travez de un sqlquery inserta el dato y se cierra la forma 2 pero en la forma 1 no se refleja el nuevo dato

tengo que cerrar la forma 1 y volverla a abrir , escuando ya puedo visualizarla en el dbgrid

forma1 y su codigo
tengo un simpldataset con un dbgrid

Código Delphi [-]
 SimpleDataSet6.Connection:=Form1.SQLConnection1;
  SimpleDataSet6.DataSet.CommandText:='Select * from  posiciones';
  SimpleDataSet6.Active:=True;
  SimpleDataSet6.Close;
  SimpleDataSet6.Open;

forma 2 con su codigo

Código Delphi [-]

 SQLQuery1.Close;
  SQLQuery1.SQL.Text:='Insert into departamento (depto01,depto02) values(:depto01,:depto02)';
  SQLQuery1.ParamByName('depto01').AsInteger:=StrToInt(Edit1.Text) ;
  SQLQuery1.ParamByName('depto02').AsString:=Edit2.Text;
  SQLQuery1.ExecSQL;
esta forma se cierra pero como queda abierta la primer forma no se refleja el dato insertado

me puedes ayudar

ttotto 10-07-2012 22:36:54

problemas con el dbgrid
 
hola eficsa.

olvide cambiar el nombre de la tabla no es departamento es posiciones

gracias

ttotto 10-07-2012 23:34:08

refrescar un dbgrid
 
Como púedo abrir y cerrar , yo tengo el mismo porblema

pero no entiendo lo de abrir y cerrar se refieren al dbgrid

por favor me pueden explicar

TiammatMX 10-07-2012 23:43:48

O también puedes hacer un ReQuery de la tabla que deseés..., es como hacer un Refresh, pero conservando tus sentencias SQL originales...

ttotto 10-07-2012 23:56:13

refrescar un dbgrid
 
buenas tardes .
gracias por responder

soy nuevo en esto

ignoro que es el requery perdojn por mi ignorancia

te explico

tengo 2 formas y utilizo el dbexpress

en la forma 1 me conecto a mi base y tango un sqlquery, un dbgrid

con un boton abro la forma 2 donde tengo edit los cuales capturan los valores

cuando en la forma 2 oprimo le boton de guardar con sqlquery inserto los datos, y cierro la forma

mi problema es que en la forma 1 no se reflajan los nuevos datos solo cuando cierro mi aplicacion y la vuelvo a abrir

forma 1

Código Delphi [-]
 SimpleDataSet1.Connection:=Form1.SQLConnection1;
  SimpleDataSet1.DataSet.CommandText:='Select * from  departamento';
  SimpleDataSet1.Active:=True;
SimpleDataSet1.Open;

forma 2

Código Delphi [-]
 SQLQuery1.SQL.Text:='Insert into departamento (depto01,depto02) values(:depto01,:depto02)';
  SQLQuery1.ParamByName('depto01').AsInteger:=StrToInt(Edit1.Text) ;
  SQLQuery1.ParamByName('depto02').AsString:=Edit2.Text;
  SQLQuery1.ExecSQL;

te agradeceria tu ayuda tiammat

Casimiro Notevi 11-07-2012 00:03:24

Por favor, no mezcles tus preguntas en distintos hilos. He movido estas a este hilo que ya habías creado.
Recuerda nuestra guía de estilo, gracias.

Si no lo has solucionado o no lo has comprendido, simplemente sigue en este hilo que has creado, pero no te vayas a otros hilos a preguntar lo mismo.

Casimiro Notevi 11-07-2012 00:07:46

Aquí tienes, en nuestro FTP, el que puede ser el mejor libro de delphi y bases de datos, es lo mejor de lo mejor.
Ahí aprenderás todo lo que necesitas y encontrarás respuesta a todo lo que preguntas, con ejemplos, muy claros y con explicaciones muy amenas.

ecfisa 11-07-2012 00:41:20

Hola ttotto.

Yo lo que no termino de entender es si los DBGrids están conectados al SQLQuery o al SimpleDataSet.

Si el DataSource con que estan asociados los DBGRids se relacionan con el SimpleDataSet y el SQLQuery lo usas sólo para hacer inserciones modificaciones y borrados, pienso que bastaría con llamar al método Refresh luego de cada acción:
Código Delphi [-]
  // inserción, modificación o borrado. Luego:
  SimpleDataSet1.Refresh;
Pero, como te comento no alcanzo a entender como tenes organizado tu código.

Saludos.


La franja horaria es GMT +2. Ahora son las 01:45:42.

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