On Fri, Mar 12, 2010 at 10:51 AM, William Bulley <w...@umich.edu> wrote:
> I am trying to learn CGI::Application using this "tutorial":
>
>   <http://people.plusthree.com/~perrin/mvc_slides.swf>
>
> Inside the accompanying application files from:
>
>   <http://people.plusthree.com/~perrin/mvc_samples.tgz>
>
> the example CGI::Application source code uses DBI to connect with MySQL.
> I wanted to chance this to use SQLite and I am getting an error.
>
> Here is the original MySQL centric code:
>
>   freebsd% cat DB.pm.orig
>   package Poli::DB;
>
>   use strict;
>   use warnings;
>
>   use Class::DBI::Loader;
>
>   my $loader = Class::DBI::Loader->new(
>       dsn                => 'dbi:mysql:database=poli',
>       user               => 'poli',
>       password           => 'poli',
>       namespace          => 'Poli::DB',
>       additional_classes => ['Class::DBI::FromForm'],
>       relationships      => 1,
>   );
>
>   1;
>
> Here is my changed (SQLite) version.  Changed only in dsn, user, and password:
>
> freebsd% cat DB.pm
>   package Poli::DB;
>
>   use strict;
>   use warnings;
>
>   use Class::DBI::Loader;
>
>   my $loader = Class::DBI::Loader->new(
>       dsn                => 
> 'dbi:SQLite:database=/home/web/src/mvc/mvc_samples/sql/mvc.sqlite3',


I have no idea how Class::DBI works, but from the DBD::SQLite docs,
the correct DSN string for sqlite is

DBI->connect("dbi:SQLite:dbname=$dbfile","","");

Note, 'dbname' instead of 'database'

That said, you may be making things too hard for yourself. I use
CGI::Application::Plugin::DBH, and it just works.

Finally, note there is a CGI::Application mailing list, for CGI::App
questions. That may be more suitable than this more sqlite-focused
list.


>       user               => '',
>       password           => '',
>       namespace          => 'Poli::DB',
>       additional_classes => ['Class::DBI::FromForm'],
>       relationships      => 1,
>   );
>
>   1;
>
> In my attempt to verify the Perl code of the provided application, I see the 
> following:
>
>   freebsd% cat petition.pl
>   #!/usr/bin/perl
>   use strict;
>   use warnings;
>
>   use lib qw(/home/web/src/mvc/mvc_samples/cgiapp/lib);
>   use Poli::CGI::Petition;
>
>   my $app = Poli::CGI::Petition->new();
>   $app->run();
>
>   freebsd% perl -c petition.pl
>   DBI connect('database=/home/web/src/mvc/mvc_samples/sql/mvc.sqlite3','',...)
>   failed: unable to open database file at 
> /usr/local/lib/perl5/site_perl/5.10.1/Class/DBI/Loader/SQLite.pm line 101
>   unable to open database file at 
> /usr/local/lib/perl5/site_perl/5.10.1/Class/DBI/Loader.pm line 83
>   Compilation failed in require at 
> /home/web/src/mvc/mvc_samples/cgiapp/lib/Poli/CGI/Petition.pm line 9.
>   BEGIN failed--compilation aborted at 
> /home/web/src/mvc/mvc_samples/cgiapp/lib/Poli/CGI/Petition.pm line 9.
>   Compilation failed in require at petition.pl line 6.
>   BEGIN failed--compilation aborted at petition.pl line 6.
>
> I don't know why SQLite is unable to open the database.  When I run sqlite3 
> from the
> command line (%sqlite3 /home/web/src/mvc/mvc_samples/sql/mvc.sqlite3) I am 
> able to
> see the tables created for this application.  While empty at present, I 
> believe the
> database is constructed properly (per a provided DDL file).
>
> Regards,
>
> web...
>
> --
> William Bulley                     Email: w...@umich.edu
>
> 72 characters width template ----------------------------------------->|
> _______________________________________________
> sqlite-users mailing list
> sqlite-users@sqlite.org
> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>



-- 
Puneet Kishor http://www.punkish.org
Carbon Model http://carbonmodel.org
Charter Member, Open Source Geospatial Foundation http://www.osgeo.org
Science Commons Fellow, http://sciencecommons.org/about/whoweare/kishor
Nelson Institute, UW-Madison http://www.nelson.wisc.edu
-----------------------------------------------------------------------
Assertions are politics; backing up assertions with evidence is science
=======================================================================
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to