#!/usr/bin/perl # script that correct the marcxml from in biblioitems # Written by TG on 10/04/2006 use strict; BEGIN { # find Koha's Perl modules # test carefully before changing this use FindBin; eval { require "$FindBin::Bin/kohalib.pl" }; } # Koha modules used use C4::Context; use C4::Biblio; use MARC::Record; use MARC::File::USMARC; use MARC::File::XML; use MARC::Batch; use Time::HiRes qw(gettimeofday); use Getopt::Long; my $input_marc_file = ''; my ($version); GetOptions( 'file:s' => \$input_marc_file, 'h' => \$version, ); if ($version || ($input_marc_file eq '')) { print <dbh; my $sth2=$dbh->prepare("update biblioitems set marc=? where biblionumber=?"); my $batch = MARC::Batch->new( 'USMARC', $input_marc_file ); $batch->warnings_off(); $batch->strict_off(); my ($tagfield,$biblionumtagsubfield) = &GetMarcFromKohaField("biblio.biblionumber",""); my $i=0; while ( my $record = $batch->next() ) { my $biblionumber=$record->field($tagfield)->subfield($biblionumtagsubfield); $i++; $sth2->execute($record->as_usmarc,$biblionumber) if $biblionumber; print "$biblionumber \n"; } $timeneeded = gettimeofday - $starttime ; print "$i records in $timeneeded s\n" ; END; # IS THIS SUPPOSED TO BE __END__ ?? If not, then what is it? --JBA sub search { my ($query)=@_; my $nquery="\ \@attr 1=1007 ".$query; my $oAuth=C4::Context->Zconn("biblioserver"); if ($oAuth eq "error"){ warn "Error/CONNECTING \n"; return("error",undef); } my $oAResult; my $Anewq= new ZOOM::Query::PQF($nquery); eval { $oAResult= $oAuth->search_pqf($nquery) ; }; if($@){ warn " /Cannot search:", $@->code()," /MSG:",$@->message(),"\n"; return("error",undef); } my $authrecord; my $nbresults="0"; $nbresults=$oAResult->size(); if ($nbresults eq "1" ){ my $rec=$oAResult->record(0); my $marcdata=$rec->raw(); $authrecord = MARC::File::USMARC::decode($marcdata); } return ($authrecord,$nbresults); }