Hello everyone,
I am new to this list. I'm also very new to Perl so please bear with me:-).
I am working on a Z3950 Server for my library (which is using Koha for ILS) and
I am having trouble generating MARC records using MARC::Record. I am generatingthe
records from a MySQL database and I don't know how to determine on-the-fly
what the leader length and base address are (also I'm not sure how to use the
set_leader_lengths "access method").
My code is below...any suggestions?
Thanks,
Joshua Ferraro
Nelsonville Public Library
Here is my code(this sub should build one record from Koha's marc_subfield_table
using one bibid stored in @bib_list):
sub fetch_handler {
my ($args) = @_;
# warn "in fetch_handler"; ## troubleshooting
my $offset = $args->{OFFSET};
$offset -= 1; ## because $args->{OFFSET} 1 = record #1
chomp (my $bibid = $bib_list[$offset]);
my $sql_query = "SELECT tag, subfieldcode, subfieldvalue FROM marc_subfi
eld_table where bibid=?";
my $sth_get = $dbh->prepare("$sql_query");
$sth_get->execute($bibid);
## create a MARC::Record object
my $rec = MARC::Record->new();
## create the fields
while (my @data=$sth_get->fetchrow_array) {
my $tag = $data[0];
my $subfieldcode = $data[1];
my $subfieldvalue = $data[2];
my $field = MARC::Field->new(
$tag,'','',
$subfieldcode => $subfieldvalu
e,
);
$rec->append_fields($field);
## build the marc string and put into $record
my $record = $rec->as_usmarc();
$args->{RECORD} = $record;
}