Página 1 de 1

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

NotaPublicado: 2014-07-25 14:24 @642
por sarriaga
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 :)

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

NotaPublicado: 2014-07-25 15:00 @667
por explorer
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.

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

NotaPublicado: 2014-07-25 15:08 @672
por sarriaga
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.002 segundos, usando GeSHi 1.0.8.4

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

NotaPublicado: 2014-07-25 16:11 @715
por explorer
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.001 segundos, usando GeSHi 1.0.8.4

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

NotaPublicado: 2014-07-25 16:21 @723
por sarriaga
Al parecer ya no muestra ese error, ahora debo verificar si realiza las consultas que necesito.

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

NotaPublicado: 2014-07-28 13:43 @613
por sarriaga
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