• Publicidad

die() al conectar a una base de datos que no existe

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

die() al conectar a una base de datos que no existe

Notapor angelltroa » 2010-05-20 12:25 @559

Hola,

Tengo un problema con los die() a la hora de ejecutar sentencias erróneas en bases de datos; el caso es que mi código de prueba es el siguiente:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. use DBI;
  2. use ConnectDB;
  3. use strict;
  4. use warnings;
  5. use diagnostics;
  6.  
  7.  
  8. db_exists();
  9.  
  10. sub db_exists{
  11.  
  12.         my $dbc = createdb->connect();
  13.         my @status = $dbc->do ('USE IDS1') or die "Couldn't execute statement: ";
  14.         print "@status\n";
  15. }
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Evidentemente la base de datos IDS1 no existe, que es el que estoy probando. La salida que me da es:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
./db_exists.pl
Uncaught exception from user code:
        DBD::mysql::db do failed: Unknown database 'IDS1' at ./db_exists.pl line 23.
 at ./db_exists.pl line 23
        main::db_exists() called at ./db_exists.pl line 18
 
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


y tendría que ser "Couldn't execute statement: ". ¿Alguien sabe por qué? Es raro ya que he probado el die() en otras circunstancias que no son en BD y me funcionan perfectamente.

¡Gracias de nuevo por vuestra colaboración!
angelltroa
Perlero nuevo
Perlero nuevo
 
Mensajes: 9
Registrado: 2010-04-14 06:11 @299

Publicidad

Re: die() al conectar a una base de datos que no existe

Notapor explorer » 2010-05-20 14:15 @636

Es muy posible que esté activado el atributo RaiseError. Como no has puesto el código relativo a la creación del objeto $dbc, pues no estamos seguros. Pero el mensaje que sale corresponde exactamente con un mensaje de error prefabricado por DBI en caso de estar RaiseError activado.

Consulta el manual de DBI, sección RaiseError.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Básico

¿Quién está conectado?

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