• Publicidad

DBI connect('./db/names.db','',...) failed: unable to open

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

DBI connect('./db/names.db','',...) failed: unable to open

Notapor sarriaga » 2014-07-25 14:24 @642

Hola, ¿qué tal, compañeros perleros?

Quiero ver si alguno de ustedes puede ayudarme ya que no he encontrado la manera de solucionar el siguiente error:

DBI connect('./db/names.db','',...) failed: unable to open database file at test.pl line 12.

Resulta que este mismo connect() lo utilizo en otro script.pl (parecido a un módulo.pm) el cual realiza consultas a esta base de datos de manera segura y correcta, pero cuando lo utilizo en un script unitario me marca el error anterior, la base de datos tiene todos los permisos para ejecución, lectura y escritura así que no sé qué es lo que se esté afectando.

Agradecería mucho sus comentarios o sugerencias.
Saludos :)
sarriaga
Perlero nuevo
Perlero nuevo
 
Mensajes: 69
Registrado: 2013-10-21 08:42 @404

Publicidad

Re: DBI connect('./db/names.db','',...) failed: unable to op

Notapor explorer » 2014-07-25 15:00 @667

A mi me falta información... ¿Seguro que eso es lo que sale en el método errstr()?

Puedes activar el RaiseError => 1, PrintError => 1 para ver si así te da más información.
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

Re: DBI connect('./db/names.db','',...) failed: unable to op

Notapor sarriaga » 2014-07-25 15:08 @672

Ya lo hice y sigue apareciendo el mismo error. Mi connect() está declarado de la siguiente manera:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. my $dbh = DBI->connect("dbi:SQLite:./db/names.db", "", "", {RaiseError => 1, PrintError => 1});
  2.  
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
sarriaga
Perlero nuevo
Perlero nuevo
 
Mensajes: 69
Registrado: 2013-10-21 08:42 @404

Re: DBI connect('./db/names.db','',...) failed: unable to op

Notapor explorer » 2014-07-25 16:11 @715

Se me ocurre... que a lo mejor el programa se mueve de sitio... y entonces DBI no encuentra el archivo './db/names.db'.

Fíjate que comienza con un punto. Eso quiere decir que es una ruta relativa.

Si, por ejemplo, el programa se ejecuta en '/usr/local/bin/', pero al principio del programa hace un chdir('/opt/aplicacion/'), por lo que DBI intentará encontrar la base de datos en '/opt/aplicacion/db/names.db'.

Prueba con esta línea:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. my $dbh = DBI->connect("dbi:SQLite:dbname=./db/names.db", "", "",)
  2.         or die $DBI::errstr;
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
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

Re: DBI connect('./db/names.db','',...) failed: unable to op

Notapor sarriaga » 2014-07-25 16:21 @723

Al parecer ya no muestra ese error, ahora debo verificar si realiza las consultas que necesito.
sarriaga
Perlero nuevo
Perlero nuevo
 
Mensajes: 69
Registrado: 2013-10-21 08:42 @404

Re: DBI connect('./db/names.db','',...) failed: unable to op

Notapor sarriaga » 2014-07-28 13:43 @613

Ya me muestra todas las consultas, cambié también los permisos de la base de datos y ya pude obtener la información que necesito, con la sugerencia que me hiciste. Te agradezco mucho. :D
sarriaga
Perlero nuevo
Perlero nuevo
 
Mensajes: 69
Registrado: 2013-10-21 08:42 @404


Volver a Básico

¿Quién está conectado?

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