Ver Mensaje Individual
  #7  
Antiguo 16-05-2008
JMGR JMGR is offline
Miembro
 
Registrado: jun 2003
Ubicación: Santa Cruz de Tenerife
Posts: 46
Reputación: 0
JMGR Va por buen camino
Bueno primero que nada pido perdon por la tardanza en dar noticias pero es que tuve que irme de viaje y no pude conectarme hasta ahora...gracias por la multitud de respuestas.

En principio de las soluciones propuestas la que mejor entiendo es la de BlueSteel de hacerlo con un Query pero no se si es "matar mosquitos a cañonazos"...

El metodo LookUp ya lo he probado pero no me vale, por lo menos poniendolo en el OnExit, ya que sigue saltando el error...a lo mejor poniendolo en otro sitio pero no tengo claro donde...

En cuanto a controlar el evento OnPostError estoy en ello pero me esta costando bastante entender como debo usarlo...

Para empezar he probado a quitar el codigo del evento OnExit del DBEdit y no me salta ningun error aunque haya introducido un valor ya existente de lo cual deduzco que al salir del DBEdit no se produce automaticamente un POST...¿o si..?

Este codigo me produce un bucle infinito, se el por qué, pero no me aclaro de como hacerlo:

Código Delphi [-]
procedure TDataModule3.TablaClientesPostError(DataSet: TDataSet;
  E: EDatabaseError; var Action: TDataAction);
begin
if (E is EDatabaseError) then
 if MessageDlg('Parece que ese Codigo ya existe, ¿ Desea modificar el registro '+#13+#10+'con ese Codigo?', mtWarning, [mbYes,mbNo], 0) = mrYes then
  begin
     Action:=daAbort;
     TablaClientes.Locate('Codigo',Clientes.dbedit1.text,[]); //<--Esto debe ser lo que provoca el bucle
     TablaClientes.edit;
     Clientes.Dbedit1.SetFocus;
  end
 else
  begin
    ACtion:=daAbort;
    Tablaclientes.insert;
    Clientes.Dbedit1.SetFocus;
  end;
end;

¿Donde estoy tropezando?

PD:¿ Como puedo cambiar la opcion UpdateWhereAll?

Edito:
A la espera de respuestas por ahora lo he solucionado comprobando si existe el valor del campo con otro componente ADOTable apuntando a la misma tabla...

Última edición por JMGR fecha: 16-05-2008 a las 22:21:43.
Responder Con Cita