Tengo 2 formularios, el primero contiene un DBGrid donde listo el resultado de un Query por Ej
Y en el segundo tengo un grupo de tEdit para actualizar los campos, para ello al crear el 2do from paso los parametros DatabaseName, TableName, CampoClave y ValorClave
Código Delphi
[-]
constructor Create(Owner: TComponent; Accion:Integer;
DatabaseName,TableName,CampoClave,ValorClave:String);
Virtual;
Uso 2 TQuery en el segundo formulario uno lee el registro usando (SELECT * FROM TableName WHERE CampoClave = ValorClave) y el otro lo uso para actualizar con INSERT, UPDATE o DELETE.
El Problema es que después de guardar los cambios y cerrar el 2do formulario (ModalResult = mrOK) lanzo un refresh sobre la tabla del DBGrid y no me aparecen las actualizaciones.
Código Delphi
[-]
Try
f.ShowModal; Finally
f.Free;
End;
q.Refresh;
Pero si cierro el formulario (f.free) y lo vuelvo a abrir (f.create .. ShowModal) si aparecen los cambios. Tambien funciona con un q.Close; q.Open; en lugar del q.Refresh; pero me parece ilógico tener que cerrar y abrir una base de datos para refrescarla.
Nota
Por ahora trabajo sobre Paradox 7 con Delphi 7 pero la intención es poder usar otros motores de BdD.