# -*- cperl -*- # Test problem in 3.0002_4 and 3.0005 where if a statement is prepared # and multiple executes are performed, if any execute fails all subsequent # executes report an error but may have worked. use strict; use DBI (); use vars qw($test_dsn $test_user $test_password $state); require "t/lib.pl"; while (Testing()) { my ($dbh, $sth); # # Connect to the database Test($state or ($dbh = DBI->connect($test_dsn, $test_user, $test_password, {RaiseError => 0}))); #Test($state or ($dbh->trace("3", "/tmp/trace.log"))); # # Find a possible new table name # my $table = ""; Test($state or ($table = FindNewTable($dbh))); # # Create a new table # my $q = <<"QUERY"; CREATE TABLE $table (id INTEGER PRIMARY KEY NOT NULL, name VARCHAR(64)) QUERY Test($state or $dbh->do($q)); # # Insert a row # $q = "INSERT INTO $table (id, name) VALUES (?,?)"; Test($state or ($sth = $dbh->prepare($q))); Test($state or $sth->execute(1, "Jocken")); $sth->{PrintError} = 0; Test($state or !($sth->execute(1, "Jochen"))); $sth->{PrintError} = 1; Test($state or $sth->execute(2, "Jochen")); # # Drop the table Test($state or $dbh->do("DROP TABLE $table")); # # Close the database connection Test($state or ($dbh->disconnect() or 1)); }