Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-10-2006
Avatar de epuigdef
epuigdef epuigdef is offline
Miembro
 
Registrado: jul 2005
Posts: 196
Poder: 19
epuigdef Va por buen camino
Buenas!

A parte de lo que te han comentado, ten en cuenta que si ejecutas el programa desde el IDE de Delphi te va a saltar el mensaje "feo" de todas formas. Prueba de ejecutar la aplicación desde fuera del IDE y a lo mejor ves que no es tal error. El lanzamiento de las excepciones dentro del IDE se pueden deshabilitar, pero no recuerdo cómo.

Un saludo

Edu
Responder Con Cita
  #2  
Antiguo 18-10-2006
Avatar de kalimero
kalimero kalimero is offline
Miembro
 
Registrado: may 2003
Ubicación: Alicante
Posts: 288
Poder: 22
kalimero Va por buen camino
Hola.
Asi:
Tools->Debugger Options->Languaje Excetions y desmarcar el check
"Stop on Delphi Exceptions".

saludos
Responder Con Cita
  #3  
Antiguo 18-10-2006
chipsoni chipsoni is offline
Miembro
 
Registrado: nov 2005
Posts: 75
Poder: 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
  #4  
Antiguo 18-10-2006
Avatar de kalimero
kalimero kalimero is offline
Miembro
 
Registrado: may 2003
Ubicación: Alicante
Posts: 288
Poder: 22
kalimero Va por buen camino
Código Delphi [-]
try
  with Query do
  begin
    SQL.Clear;
    SQL.Add('delete from grocs');
    SQL.Add('where (nombre like :nombre)');
    ParamByName('nombre').AsString := '1';
    Execute;
  end;
  ShowMessage('La actividad '+DBLCBseleccion.Text+' ha sido eliminada');
except
  on E:EMySqlException do showmessage('La actividad empresarial no puede ser eleminada');
end;
Responder Con Cita
  #5  
Antiguo 19-10-2006
chipsoni chipsoni is offline
Miembro
 
Registrado: nov 2005
Posts: 75
Poder: 19
chipsoni Va por buen camino
Esa modificación me da un error de compilación:

Identificador EMySqlException undeclared y EMySqlException es de la clase Exception y ya esta definido, ¿tengo que redefinir un tipo que ya esta definido?
Responder Con Cita
  #6  
Antiguo 19-10-2006
chipsoni chipsoni is offline
Miembro
 
Registrado: nov 2005
Posts: 75
Poder: 19
chipsoni Va por buen camino
Se me olvidaba, si pongo Exception, en lugar de EMySqlException, compila, pero sigue dando el mismo problema, la aplicación casca y salta el mensaje predeterminado de la excepción.
Responder Con Cita
  #7  
Antiguo 19-10-2006
Avatar de kalimero
kalimero kalimero is offline
Miembro
 
Registrado: may 2003
Ubicación: Alicante
Posts: 288
Poder: 22
kalimero Va por buen camino
Bueno, a ver si esto ya "chuta"
Código Delphi [-]
try
  with Query do
  begin
    SQL.Clear;
    SQL.Add('delete from tabla');
    SQL.Add('where (nombre like :nombre)');
    ParamByName('nombre').AsString := 'cadena';
    Execute;
  end;
  ShowMessage('La actividad '+DBLCBseleccion.Text+' ha sido eliminada');
except
  on E:EMyError do showmessage('La actividad empresarial no puede ser eleminada');
end;
Pero para que todos esto funcione debes añadir en la clausula "uses": MyClasses
En la ayuda de los comnponente tienes abundate informacion sobre el tema
Saludos
Responder Con Cita
  #8  
Antiguo 19-10-2006
mensana mensana is offline
Miembro
 
Registrado: sep 2006
Posts: 69
Poder: 18
mensana Va por buen camino
Cita:
Empezado por chipsoni
...No puede deletear una linea padre: falla la clave extrajera constraint.' Process stopped. Use Step or Run to continue"
Tienes activado "Break on exception" en el IDE.
Responder Con Cita
  #9  
Antiguo 20-10-2006
chipsoni chipsoni is offline
Miembro
 
Registrado: nov 2005
Posts: 75
Poder: 19
chipsoni Va por buen camino
memsana, ¿como se accede al ide para desactivar el break on exception?.
Perdona por ni otrpeza, pero he buscado por todas partes.
Responder Con Cita
  #10  
Antiguo 20-10-2006
Avatar de epuigdef
epuigdef epuigdef is offline
Miembro
 
Registrado: jul 2005
Posts: 196
Poder: 19
epuigdef Va por buen camino
Buenas!

Kalimero lo respondió antes:

Cita:
Hola.
Asi:
Tools->Debugger Options->Languaje Excetions y desmarcar el check
"Stop on Delphi Exceptions".
Edu
Responder Con Cita
  #11  
Antiguo 20-10-2006
mensana mensana is offline
Miembro
 
Registrado: sep 2006
Posts: 69
Poder: 18
mensana Va por buen camino
Tools / Debugger options / Language exceptions / Stop on Delphi exceptions
Responder Con Cita
  #12  
Antiguo 20-10-2006
chipsoni chipsoni is offline
Miembro
 
Registrado: nov 2005
Posts: 75
Poder: 19
chipsoni Va por buen camino
Muuuuuchas gracias, ese era el unico problema, ya rula bien, no peta y salta el mensaje que yo he puesto.

Graaaaaaaaaaaaaaaacias.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 09:05:00.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi