Ver Mensaje Individual
  #3  
Antiguo 23-10-2003
andres1569 andres1569 is offline
Miembro
 
Registrado: may 2003
Posts: 908
Reputación: 24
andres1569 Va por buen camino
Hola:

En cualquier caso, si implementas desde Delphi cualquier acción en uno de esos eventos, es necesario que uses un semáforo (una variable boolean). El error de "Stack overflow" te salta porque en el OnChange haces modificaciones que a su vez disparan ese evento OnChange y así hasta el infinito ... o hasta quen se agota la memoria.

Código:
actualizando : Boolean;   // variable global al formulario

procedure TablaMiCampoChange;
begin
  if actualizando then EXIT;
  actualizando := TRUE;
  try
    // Lo que sea
  finally  
    actualizando := FALSE;
  end;
end;
Tal como comenta Cadetill, si tu SGBD lo permite, usas procedimientos almacenados, pero tampoco es mala idea lanzar una consulta SQL que efectúe esos cambios en los registros pertinentes (luego haces un refresh a la tabla para que se actualice), o bien usas una tabla auxiliar para hacer esos recorridos, sincronizando luego ambas tablas.
__________________
Guía de Estilo
Responder Con Cita