Hola a todos, llevo poco con Delphi, menos de 6 meses, y estoy realizando una aplicación que conecta con una base de datos mysql 5.1 con componentes mydac en delphi 7. La cuestión es la siguiente: realizo una query el componente de esta libreria en la que selecciono datos de varias tablas. Despues al selecionar en el dbgrid una fila se ejecuta un evento en el que con uno de los datos contenido en las celdas se actualiza una de las tablas consultadas. Sin embargo, al refrescar la consulta los datos no se actualizan en el dbgrid. He consultdo varios hilos de este foro pero ninguno habla explicitamente de este componente. Ya he probado cerrando y abriendo la consulta y refrescandola pero no hace nada. Sin embargo, los datos si son modificados en la tabla correctamente y la consulta si refresca bien, ya que he creado otro grid posterior que los muestre y salen actualizados. Finalmente he optado por asignar de nuevo la conexión al grid original despues de cada cambio pero me parece muy chapucero a la vez que poco funcional, la idea es que van a realizarse muchas insercciones simultáneas por varios usuarios por lo que temo que haya problemas... Conoce alguien una solución más viable.
Este es el codigo que estoy usando y no me gusta
Código Delphi
[-]
var
confirmar:Integer;
select:string;
begin
confirmar:=Application.MessageBox('¿Desea asignarse este contacto?','Asignar conctacto',MB_OKCANCEL);
if confirmar=IDOK then
begin
select:=DBG_contactos.SelectedField.Text;
with DM_datos.DACTBL_contactos do
begin
Locate('id',select,[loCaseInsensitive]);
Edit;
FieldValues['asesor']:=agente; Post;
MessageDlg('Contacto asignado correctamente',mtInformation,[mbOK],0);
end;
DM_datos.DACQ_sin.Close;
DM_datos.DACQ_sin.Open;
DBG_contactos.DataSource:=DM_datos.DSDAC_sin; end;
end;