Mike Campbell wrote:
Well I tried with DBD-SQLite-1.27 initially and ran into the problem. I then removed it and installed DBD-SQLite2-0.33 so I only have 1 installed at a time.

I understand that the sqlite versions are incompatible but I thought I was using only 1 at a time.

Are you saying that DBD-SQLite-1.27 can do both v2 and/or v3? How do I tell it which to use?

DBD-SQLite-1.27 can do *only* SQLite v3 databases.

Also note that the problem ONLY occurs when the script is accessed via mod_perl from the apache webserver. If I run it (using DBD-SQLite-1.27) from the command line it all works perfectly. Something is different when run via the webserver.

The reason I mentioned the v2/v3 incompatibility was because you said you used both DBD::SQLite2 (v2) and DBD::SQLite (v3), and your example code was SQLite2.

Make sure you are using just DBD-SQLite2-0.33 *or* DBD-SQLite-1.27 in all places for the same database, and make sure you create the database file with the same version as all places you are using it.

Make sure that the Perl you are running in mod_perl is the same one as you're running on the command line or that both have the same DBD::SQLite.

To help troubleshoot, first put your old database aside, then make sure your programs are all using the same DBD::SQLite, then create a *new* database using one of those and make sure both can use it without problems. After this is all known to be working, *then* try to use your older/existing database, and if the problem returns then the database may be incompatible with the DBD::SQLite you have installed.

If you have a choice, use just DBD-SQLite-1.27 and *not* DBD-SQLite2-0.33; the latter is a legacy project and the former is the new version that everyone should use given a choice.

If your existing SQLite database has important data, it can be converted to the SQLite 3 if it is SQLite 2, so you can have your whole system current.

-- Darren Duncan

On 12/1/2009 4:12 PM, Darren Duncan wrote:
Mike, off-hand it looks like you're trying to use SQLite 2.x and SQLite 3.x on the same database. You can't do this as these 2 SQLite major versions are incompatible with each other, with different file formats, and SQLite 3 won't work with SQLite 2 files. Make sure you are using just DBD::SQLite2 (SQLite 2) or DBD::SQLite (SQLite 3) with the same database on both the command-line and in your web app. Note that the reason the DBD::SQLite which does SQLite v2 and v3 have different Perl package names is so that you can use both in the same program at once, if you wanted to such as to do a conversion, though for conversion using the SQLite command-line utility for dump and then load works well, perhaps best, also. -- Darren Duncan

Mike Campbell wrote:
I've developed a small app that uses a webpage to insert/delete data into a sqlite database. The script work find when I run them from the command line but not when run from the webpage.

For example,  using the following code:

$db = DBI->connect("dbi:SQLite2:dbname=/home/oracle/bugpush/bugpush.db", "", "", { RaiseError => 1, AutoCommit => 1 }) || die( $DBI::errstr . "\n" );

$sth = $db->prepare("select api_key, bugno, last_update_date, analyst from tracked_bugs order by bugno");
if(! defined($sth) || ! ($sth)) {
  print "Failed to prepare SQL statement:\n";
  print "$DBI::errstr\n";
  goto END;
}

In the apache error_log I see the following:

[Tue Dec 01 06:49:21 2009] [error] DBD::SQLite::db prepare failed: not an error
at /home/oracle/bugpush/tracking.cgi

Oddly enough if I use the DBD::SQLite2 module this works just fine (although the underlying db that is created is sqlite v2.x).

I have verified that this is not a permission problem as I have copied the database file to /tmp/bugpush.db and set the permissions as 777 but still get the same result.

Any ideas as to why this is failing to run with DBD-SQLite-1.27 but works fine with DBD-SQLite2-0.33?


--

Mike Campbell | Principal Support Engineer | 407.458.2313
Oracle Support Services
7453 TG Lee Blvd. | Orlando, FL 32822


------------------------------------------------------------------------

_______________________________________________
DBD-SQLite mailing list
DBD-SQLite@lists.scsys.co.uk
http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbd-sqlite


_______________________________________________
DBD-SQLite mailing list
DBD-SQLite@lists.scsys.co.uk
http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbd-sqlite

Reply via email to