#!/usr/bin/env perl
use strict;
use warnings;
# Max Values
my $MaxbookplateleafId = 0;
my $MaxboxId = 0;
my $MaxcameraId = 0;
my $MaxcollectionId = 0;
sub GetMaxDbItem
{
$col1 = $_[0];
$table = $_[1];
$id = $_[2];
$query = "SELECT max($col1) FROM $table\;";
$queryhandle = $dbh->prepare($query);
$queryhandle->execute();
$queryhandle->bind_col(1, \${$id});
$queryhandle->fetch();
if($debug eq 2) { print "$table MaxId: ${$id}\n"; }
$queryhandle->finish();
}
sub PreloadMaxValues
{
# BookplateLeaf
GetMaxDbItem ("BookplateLeafId", "BookplateLeaf", \$MaxbookplateleafId);
# Box
GetMaxDbItem ("BoxId", "Box", \$MaxboxId);
# Camera
GetMaxDbItem ("CameraId", "Camera", \$MaxcameraId);
}
####
sub AddId
{
my $Index = $_[0];
my $Value;
my $MaxPtr = "";
${$id} = "";
if(exists $TableEntries{ $Index }) {
$Value = $TableEntries{ $Index }[0];
print "AddId $Index\n";
print "Value: $Value\n";
$query = "SELECT $Index"."Id FROM $Index where $Index"."name = \'$Value\'\;";
if( $debug eq 2 ) { print "\nquery: $query\n"; }
$queryhandle = $dbh->prepare($query);
$queryhandle->execute();
$queryhandle->bind_col(1, \${$id});
$queryhandle->fetch();
if($debug eq 2) { print "value: $Value id: ${$id} [end]\n"; }
if( ${$id} eq "" ) {
# Insert new item
$MaxPtr = "\$"."Max"."$Index"."Id";
print "MaxPtr: $MaxPtr, ${$MaxPtr}\n";
my $newinsert = "Insert into $Index values(";
# Rest goes here
}
$queryhandle->finish();
}
}
####
sub CreateTableEntries()
{
$ItemNo = 0;
&FixedEntity;
if ( $EntityRec ne "" ) {
if ($debug eq 2) { print "EntityRec: $EntityRec\n" };
if ($count++ eq 25) { die; } #debug only, limit to 25 XML documents
} else {
print "Identifier missing for file $filename\n";
return;
}
AddId("bookplateleaf");
AddId("box");
}
####
CREATE TABLE bookplateleaf (
bookplateleafId INTEGER NOT NULL ,
bookplateleafname VARCHAR ,
PRIMARY KEY(bookplateleafId));
insert into bookplateleaf values(0, "Dummy");
CREATE TABLE box (
boxId INTEGER NOT NULL ,
boxname VARCHAR ,
PRIMARY KEY(BoxId));
insert into box values(0, "Dummy");