On Wed, 2005-04-13 at 17:59 -0500, Eric Bohlman wrote: > [EMAIL PROTECTED] wrote: > > > I am running into a situation that does not make sense. > > I have allocated a flat file under the Operating System as follows (notice > > that autocommit is off): > > $dbh = DBI->connect('dbi:SQLite:' . $dbms_file , "", "", > > { RaiseError => 1,AutoCommit => 0 }); > > Then, I create multiple tables in a loop with with the sequence: > > 1) CREATE TABLE .... > > 2) $sql = SQL::Abstract->new; > > 3) ($sql,@bind) = $sql->insert($table,\%rec); > > 4) $sth{$table} = $dbh->prepare($sql); > > Your problem is that each new CREATE invalidates all the statement > handles you previously prepared. >
Not only CREATE statements, but also DROP and VACUUM statements will also invalidate all previously prepared statements. Once a prepared statement is invalidated, it must be prepared again. -- D. Richard Hipp <[EMAIL PROTECTED]>