Tema: try
Ver Mensaje Individual
  #8  
Antiguo 18-10-2006
chipsoni chipsoni is offline
Miembro
 
Registrado: nov 2005
Posts: 75
Reputación: 19
chipsoni Va por buen camino
Este es el codigo exacto

try
with Query do
begin
SQL.Clear;
SQL.Add('delete from tactividad');
SQL.Add('where (nombre like :nombre)');
ParamByName('nombre').AsString := DBLCBseleccion.Text;
Execute;
end;
ShowMessage('La actividad '+DBLCBseleccion.Text+' ha sido eliminada');
except
on EMySqlException do showmessage('La actividad empresarial no puede ser eleminada');
end;

Y el error en tiempo de ejecucion es:

"Project Vicerrectorado.exe raised exception class EMySqlException with message '#23000No puede deletear una linea padre: falla la clave extrajera constraint.' Process stopped. Use Step or Run to continue"

La base de datos es MySql y la entrada a la tabla tactividad tiene como clave primaria un codigo que en la tabla tempresa se usa en el campo actividad.
El error salta cuando intento borrar una actividad empresarial y hay alguna empresa que tiene en actividad el codigo de dicha actividad empresarial y en ese caso lo que quiero es que esa actividad no se pueda borrar.

La actividad la selecciono de un DBLookUpComboBox que muestra el campo nombre de la tabla tactividad.

Para accedere a las tablas uso la componente MyDAC.

No se si se me olvida alguna de las cosas que me han preguntado. Espero que ahora sea mas facil saber en que me equivoco.
Responder Con Cita