DBD-Ingres
view release on metacpan or search on metacpan
# -*- Mode: Perl -*-
# $Basename$
# $Revision: 1.2 $
# Author : Ulrich Pfeifer
# Created On : Mon Sep 22 09:07:49 1997
# Last Modified By: Ulrich Pfeifer
# Last Modified On: Mon Sep 22 11:36:03 1997
# Language : CPerl
#
use DBI qw(:sql_types);
$verbose = 1;
$testtable = "testhththt";
$dbname = $ENV{DBI_DBNAME} || $ENV{DBI_DSN} ||
&ask_user("Please enter database-name: ");
$dbname = "dbi:Ingres:$dbname" unless $dbname =~ /^dbi:Ingres/;
print "1..17\n";
my $test = 0;
$test++;
print "Testing: DBI->connect('$dbname'):\n"
if $verbose;
( $dbh = DBI->connect($dbname) )
and print("ok $test\n")
or die "not ok $test: $DBI::errstr\n";
$dbh->{AutoCommit} = 0;
sub run_test ($ ) {
my $cmd = shift;
$test++;
print "Testing: \$dbh->do( '$cmd' ):\n"
if $verbose;
( $dbh->do( $cmd ) )
and print( "ok $test\n" )
or print "not ok $test: $DBI::errstr\n";
}
sub run_test_prepare ($ ) {
my $cmd = shift;
my $cursor;
$test++;
print "Testing: $cursor = \$dbh->prepare( '$cmd' ):\n"
if $verbose;
( $cursor = $dbh->prepare( $cmd ) )
and print( "ok $test\n" )
or print "not ok $test: $DBI::errstr\n";
$test++;
print "Testing: $cursor \$cursor->execute:\n"
if $verbose;
( $cursor and $cursor->execute )
and print( "ok $test\n" )
or print "not ok $test: $DBI::errstr\n";
}
run_test qq[
CREATE TABLE $testtable
(
id INTEGER4,
name CHAR(64)
)
];
run_test q[
CREATE DBEVENT people_update
];
run_test q[
CREATE PROCEDURE signal_people ( the_id integer4 not NULL ) AS
DECLARE text VARCHAR(10) not NULL;
BEGIN
text = varchar(the_id);
RAISE DBEVENT people_update text ;
END
];
run_test qq[
CREATE RULE people_change
AFTER INSERT OF $testtable
EXECUTE PROCEDURE signal_people (the_id = $testtable.id)
];
run_test q[
REGISTER DBEVENT people_update
];
run_test qq[
INSERT INTO $testtable VALUES ( 1, 'Alligator Descartes' )
];
$test++;
print "Committing\n"
if $verbose;
( $dbh->commit )
and print "ok $test\n"
or print "not ok $test: $DBI::errstr\n";
$test++;
print "Testing \$dbh->func(10, 'get_dbevent')\n"
if $verbose;
( $event = $dbh->func(10, 'get_dbevent') )
and print "ok $test\n"
or print "not ok $test: $DBI::errstr\n";
for (keys %$event) {
printf "%-20s = '%s'\n", $_, $event->{$_};
}
run_test qq[
INSERT INTO $testtable VALUES ( 2, 'Ulrich Pfeifer' )
];
$test++;
( run in 0.559 second using v1.01-cache-2.11-cpan-437f7b0c052 )