X-Git-Url: http://git.rot13.org/?p=Biblio-Z3950.git;a=blobdiff_plain;f=CROSBI.pm;h=867ddc5c602007c5440e15c0259a2e828e7b84a6;hp=f65425a4db9aa08da1d439f83ce7d7d64be08402;hb=9050b99705eb3c09549968914e2c06285cdfba01;hpb=96519ff9d7d2e5f21b6d07d3768539cf776933da diff --git a/CROSBI.pm b/CROSBI.pm index f65425a..867ddc5 100644 --- a/CROSBI.pm +++ b/CROSBI.pm @@ -47,8 +47,6 @@ sub usemap {{ my $dbname = 'bibliografija'; -my $dbh = DBI->connect("dbi:Pg:dbname=$dbname", '', '', {AutoCommit => 0}); - sub search { my ( $self, $query ) = @_; @@ -73,6 +71,8 @@ where rad_ustanova.sifra = ? and ( }; + my $dbh = DBI->connect_cached("dbi:Pg:dbname=$dbname", '', '', {AutoCommit => 0}); + my $sth = $dbh->prepare( $sql ); warn "XXX SQL = ",$sql; @@ -146,7 +146,7 @@ sub next_marc { my $id = $row->{id} || die "no id"; my $marc = MARC::Record->new; - $marc->encoding('utf-8'); + $marc->encoding('UTF-8'); my $leader = $marc->leader; @@ -156,12 +156,12 @@ sub next_marc { ## LDR 06 - a - language material ## LDR 07 - a - monographic component part - $leader =~ s/^(....).../$1naa/; + $leader =~ s/^(....)...(.+)/$1naa$2/; ## LDR 17 - Encoding level ; 7 - minimal level, u - unknown ## LDR 18 - i = isbd ; u = unknown - $leader =~ s/^(.{17})/$1uu/; + $leader =~ s/^(.{17})..(.+)/$1uu$2/; $marc->leader( $leader ); warn "# leader [$leader]"; @@ -360,17 +360,20 @@ sub next_marc { ); } - $marc->add_fields(942,' ',' ', - c => 'CLA', - $row->{status_rada} ? ( + my @f942 = ( + c => 'CLA' + ); + if ( $row->{status_rada} ) { + push @f942, ( f => 1, g => $row->{status_rada} - ) : (), - $row->{kategorija} =~ m/Znanstveni/ ? ( - t => '1.01' - ) : $row->{kategorija} =~ m/Strucni/ ? ( - t => '1.04' - ) : (), + ); + } + push @f942, t => '1.01' if $row->{kategorija} =~ m/Znanstveni/; + push @f942, t => '1.01' if $row->{kategorija} =~ m/Strucni/; + + $marc->add_fields(942,' ',' ', + @f942, u => '1', z => join(' - ', $row->{kategorija}, $row->{vrsta_rada}), );