-# $Id: Session.pm,v 1.15 2003-03-13 04:25:18 pop Exp $
+# $Id: Session.pm,v 1.19 2003-07-26 16:27:46 pop Exp $
#
# Zebra perl API header
# =============================================================================
use strict;
use warnings;
+use Carp;
BEGIN {
use IDZebra;
use IDZebra::ScanList;
use IDZebra::RetrievalRecord;
require Exporter;
- our $VERSION = do { my @r = (q$Revision: 1.15 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r };
+ our $VERSION = do { my @r = (q$Revision: 1.19 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r };
our @ISA = qw(IDZebra::Logger Exporter);
our @EXPORT = qw (TRANS_RW TRANS_RO);
}
sub insert_record {
my ($self, %args) = @_;
$self->checkzh;
- return(IDZebra::insert_record($self->{zh},
- $self->_record_update_args(%args)));
+ my @args = $self->_record_update_args(%args);
+ my $stat = IDZebra::insert_record($self->{zh}, @args);
+ my $sysno = $args[2]; $stat = -1 * $stat if ($stat > 0);
+ return $stat ? $stat : $$sysno;
+ if ($stat) { return ($stat); } else { return $sysno};
}
sub update_record {
my ($self, %args) = @_;
$self->checkzh;
- return(IDZebra::update_record($self->{zh},
- $self->_record_update_args(%args)));
+ my @args = $self->_record_update_args(%args);
+ my $stat = IDZebra::update_record($self->{zh}, @args);
+ my $sysno = $args[2]; $stat = -1 * $stat if ($stat > 0);
+ return $stat ? $stat : $$sysno;
+ if ($stat) { return ($stat); } else { return $$sysno};
}
sub delete_record {
my ($self, %args) = @_;
$self->checkzh;
- return(IDZebra::delete_record($self->{zh},
- $self->_record_update_args(%args)));
+ my @args = $self->_record_update_args(%args);
+ my $stat = IDZebra::delete_record($self->{zh}, @args);
+ my $sysno = $args[2]; $stat = -1 * $stat if ($stat > 0);
+ return $stat ? $stat : $$sysno;
}
sub _record_update_args {
unless ($rectype) {
$rectype="";
}
- return ($rg, $rectype, $sysno, $match, $fname, $buff, $len, $force);
+ return ($rg, $rectype, \$sysno, $match, $fname, $buff, $len, $force);
}
# -----------------------------------------------------------------------------
$self->databases(@{$args{databases}});
}
+
my $rsname = $args{rsname} ? $args{rsname} : $self->_new_setname;
my $rs = $self->_search_pqf($query, $rsname);
sub _search_pqf {
my ($self, $query, $setname) = @_;
- my $hits = IDZebra::search_PQF($self->{zh},
- $self->{odr_input},
- $self->{odr_output},
+
+ my $hits = 0;
+
+ my $res = IDZebra::search_PQF($self->{zh},
$query,
- $setname);
+ $setname,
+ \$hits);
my $rs = IDZebra::Resultset->new($self,
name => $setname,
+ query => $query,
recordCount => $hits,
errCode => $self->errCode,
errString => $self->errString);