The Perl and Raku Conference 2025: Greenville, South Carolina - June 27-29 Learn more

#!/usr/local/bin/perl
#
# $Id: main.t,v 1.4 1998/05/20 22:38:54 mpeppler Exp $
# Base DBD Driver Test
use lib 'blib/lib';
use lib 'blib/arch';
BEGIN {print "1..11\n";}
END {print "not ok 1\n" unless $loaded;}
use DBI;
$loaded = 1;
print "ok 1\n";
my($switch) = DBI->internal;
#DBI->trace(2); # 2=detailed handle trace
print "Switch: $switch->{'Attribution'}, $switch->{'Version'}\n";
print "Available Drivers: ",join(", ",DBI->available_drivers()),"\n";
my $dbh = DBI->connect("DBI:SQLAnywhere:UID=dba;PWD=sql;ENG=demo;DBF=demo.db", '', '', {PrintError => 0});
die "Unable to connect to demo: $DBI::errstr"
unless $dbh;
my $sth;
($sth = $dbh->prepare("select * from sysusers"))
and print "ok 2\n"
or print "not ok 2\n";
if($sth->execute) {
print "ok 3\n";
print "Fields: $sth->{NUM_OF_FIELDS}\n";
print "Names: @{$sth->{NAME}}\n";
#print "Null: @{$sth->{NULLABLE}}\n";
my $rows = 0;
while(@dat = $sth->fetchrow) {
++$rows;
foreach (@dat) {
$_ = '' unless $_;
}
print "@dat\n";
}
($rows == $sth->rows || $sth->rows < 0 )
and print "ok 4\n"
or print "not ok 4\n";
# $sth->finish;
}
else {
print STDERR ($DBI::err, ":\n", $sth->errstr);
print "not ok 3\nnot ok 4\n";
}
undef $sth;
($sth = $dbh->prepare("select * from sys_users"))
and print "not ok 5\n"
or print "ok 5\n";
if( defined( $sth ) ) {
print "not ok 6\n"; # SHOULD FAIL!!!
} else {
print "ok 6\n";
($DBI::err == -141)
and print "ok 7\n"
or print "not ok 7\n";
# print STDERR ($DBI::err, ":\n", $sth->errstr);
}
($sth = $dbh->prepare("select * from sysusers"))
and print "ok 8\n"
or print "not ok 8\n";
if($sth->execute) {
print "ok 9\n";
my @fields = @{$sth->{NAME}};
my $rows = 0;
my $d;
my $ok = 1;
while($d = $sth->fetchrow_hashref) {
++$rows;
foreach (@fields) {
if(!exists($d->{$_})) {
$ok = 0;
}
my $t = $d->{$_} || '';
print "$t ";
}
print "\n";
}
$ok and print "ok 10\n"
or print "not ok 10\n";
($rows == $sth->rows || $sth->rows < 0)
and print "ok 11\n"
or print "not ok 11\n";
# $sth->finish;
}
else {
print STDERR ($DBI::err, ":\n", $sth->errstr);
print "not ok 9\nnot ok 10\nnot ok 11";
}
undef $sth;
$dbh->{LongReadLen} = 32000;
$dbh->disconnect;