# Copyright (c) 2003-2006 Jeffrey I Cohen. All rights reserved.
#
#!/usr/bin/perl
use strict;
use warnings;
use File::Path;
use File::Spec;
use Genezzo::GenDBI;
use Data::Dumper;
# my $gnz_home = $ENV{GNZ_HOME} || ($ENV{HOME} . '/gnz_home');
my $gnz_home = File::Spec->catdir("t", "gnz_home");
if (1)
{
# build a database if necessary
# works interactively, but not via system??
# system ("perl -Iblib/lib lib/Genezzo/gendba.pl -init -gnz_home $gnz_home -shutdown");
# can have additional database definition parameters if necessary
my %defs = (
dbsize => "10M", # set default dbf file to 10 meg
blocksize => "4k", # database uses 4k blocks
# force_init_db => 0 # set to 1 to overwrite (and destroy)
# an existing database
);
# create a database (not command-line)
# Note: do not overwrite an existing database (even with dbinit => 1)
# unless defs => {force_init_db => 1} is set.
my $fb = Genezzo::GenDBI->new(exe => $0,
gnz_home => $gnz_home,
dbinit => 1, # init
# defs => \%defs # define additional parameters
);
print "\n\n";
print "created a new database"
if (defined($fb));
print "\n\n";
}
{
# connect to the database
my $dbh = Genezzo::GenDBI->connect($gnz_home, "NOUSER", "NOPASSWORD");
$dbh->do("startup"); # start the database
# create table test2 (col1 char, col2 char, col3 char, col4 char);
# $dbh->do("dt test2");
$dbh->do("drop table test2");
# $dbh->do("ct test2 col1=c col2=c col3=c col4=c");
$dbh->do("create table test2 (col1 char,col2 char,col3 char,col4 char)");
my $sth =
$dbh->prepare("insert into test2 values (\'alpha\', \'bravo\', \'charlie\', \'delta\', \'echo\', \'foxtrot\', \'golf\', \'hotel\')");
for my $ii (1..10)
{
$sth->execute();
}
$dbh->do("commit");
$sth = $dbh->prepare("select * from test2");
print $sth->execute(), " rows \n";
my @ftchary;
while (1)
{
my @ggg = $sth->fetchrow_array();
last
unless (scalar(@ggg));
@ftchary = @ggg;
}
print Dumper( @ftchary);
print $sth->execute(), " rows \n";
$sth = $dbh->prepare("select count(*) from test2");
print $sth->execute(), " rows \n";
my $lastfetch;
while (1)
{
my $ggg = $sth->fetchrow_hashref();
last
unless (defined($ggg));
$lastfetch = $ggg;
}
print Dumper($lastfetch);
$sth =
$dbh->prepare("select rid ROWid, rownum as NuMbEr, col1 BAKER, col2 as CHUCK from test2");
print $sth->execute(), " rows \n";
print $sth->{NUM_OF_FIELDS}, " columns in select list\n";
print Dumper($sth->{NAME});
print Dumper ($dbh->selectall_arrayref("select rid, rownum, col1 from test2 where col1 < \'bravo\'"));
$dbh->do("shutdown"); # shutdown the database
}