• Publicidad

Problema con Class::DBI

¿Ya sabes lo que es una referencia? Has progresado, el nível básico es cosa del pasado y ahora estás listo para el siguiente nivel.

Problema con Class::DBI

Notapor ntovar » 2006-07-06 08:43 @405

Saludos.

Estoy usando Class::DBI y quiero utilizar un metodo add_constraint de la siguiente manera:

Código: Seleccionar todo
Telefono::Model::CDBI::Solicitantes->add_constraint('validaestado', estado=>\&check_estado);

sub check_estado{
    my ($valor) = @_;
    return uc($valor) eq 'ACT';
}


El problema que tengo es que, al momento de agregrar o actualizar, al pasarle al campo estado un valor distinto de act (o ACT) retorna falso (o sea check_constraint está funcionando bien) y se genera un error que no he podido capturar y la aplicación finaliza. Lo que necesito es capturar el error generado por el constraint y manejarlo dentro de mi aplicación.

Gracias.
Nelo R. Tovar
[email protected]
ntovar
Perlero nuevo
Perlero nuevo
 
Mensajes: 4
Registrado: 2006-06-12 12:33 @564

Publicidad

Notapor kidd » 2006-07-06 09:47 @449

Hola:

Si vemos la documentación del Class::DBI veremos que todas las excepciones son manejadas por medio del método _croak(), del cual puedes cambiar su funcionamiento:

Código: Seleccionar todo
  use Error;

  sub _croak {
      my ($self, $message, %info) = @_;
     
      # convert errors into exception objects
      # except for duplicate insert errors which we'll ignore
      Error->throw(-text => $message, %info)
          unless $message =~ /^Can't insert .* duplicate/;
      return;
  }



Saludos
Uriel Lizama Perl programmer fundador de Perl en Español
Perl Programming Language
Avatar de Usuario
kidd
Creador de Perl en Español
Creador de Perl en Español
 
Mensajes: 1166
Registrado: 2003-10-15 16:52 @744
Ubicación: México


Volver a Intermedio

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 3 invitados