X-Git-Url: http://jsfdemo.indexdata.com/?a=blobdiff_plain;f=www%2Fz39util.tcl;h=23fabd6bc6b7fb7bbb3d7393625dcf4b823f14ea;hb=5bbe4c302d2d105aea7806317e9f31d5773a9536;hp=bfbe03b7c3993de464ce77cc5e59744dc2d3be03;hpb=b52740e82ab92e99a6982bf5c99a30ac404bd557;p=egate.git
diff --git a/www/z39util.tcl b/www/z39util.tcl
index bfbe03b..23fabd6 100644
--- a/www/z39util.tcl
+++ b/www/z39util.tcl
@@ -1,5 +1,5 @@
#
-# $Id: z39util.tcl,v 1.8 1995/11/13 15:41:46 adam Exp $
+# $Id: z39util.tcl,v 1.10 1995/11/14 09:53:16 adam Exp $
#
proc saveState {} {
uplevel #0 {
@@ -26,16 +26,17 @@ proc saveState {} {
}
}
-proc search-response {sno} {
+proc search-response {zz} {
global sessionWait
- set status [z39.$sno responseStatus]
+ set status [$zz responseStatus]
if {[lindex $status 0] == "NSD"} {
- z39.$sno nextResultSetPosition 0
+ $zz nextResultSetPosition 0
set code [lindex $status 1]
set msg [lindex $status 2]
set addinfo [lindex $status 3]
- html "
Error NSD$code: $msg: $addinfo
\n"
+ displayError "Diagnostic message" \
+ "$msg: $addinfo
\n(error code $code)"
set sessionWait -2
} else {
set sessionWait 1
@@ -363,13 +364,13 @@ proc build-query {t} {
}
switch $op {
And
- { set q "@and $q ${attr} \{${term}\}" }
+ { set q "@and $q ${attr} ${term}" }
Or
- { set q "@or $q ${attr} \{${term}\}" }
+ { set q "@or $q ${attr} ${term}" }
{And not}
- { set q "@not $q ${attr} \{${term}\}" }
+ { set q "@not $q ${attr} ${term}" }
{}
- { set q "${attr} \{${term}\}" }
+ { set q "${attr} ${term}" }
}
set op [wform logic$i]
}
@@ -380,6 +381,7 @@ proc build-query {t} {
proc z39search {setNo piggy tno elements} {
global hist
global sessionWait
+ global targets
if {$tno > 0} {
set zz z39$tno
@@ -407,51 +409,56 @@ proc z39search {setNo piggy tno elements} {
set sessionWait 0
if {[catch [list $zz connect $host]]} {
- html "Cannot connect to target ${host}
\n"
+ displayError "Cannot connect to target" $host
return 0
} elseif {$sessionWait == 0} {
zwait sessionWait
if {$sessionWait != 1} {
- html "Cannot connect to target ${host}
\n"
+ displayError "Cannot connect to target" $host
return 0
}
}
$zz idAuthentication $idAuth
set sessionWait 0
- if {[catch [list $zz init]]} {
- html "Cannot initialize with target ${host}
\n"
+ if {[catch {$zz init}]} {
+ displayError "Cannot initialize target" $host
return 0
}
if {[catch {zwait sessionWait 60}]} {
- html "Cannot initialize with target ${host}
\n"
+ displayError "Cannot initialize target" $host
$zz disconnect
return 0
}
if {$sessionWait != "1"} {
- html "Cannot initialize with target ${host}
\n"
+ displayError "Cannot initialize target" $host
$zz disconnect
return 0
}
if {![$zz initResult]} {
set u [$zz userInformationField]
$zz disconnect
- html "Connection rejected by target: $u
\n"
+ displayError "Cannot initialize target $host" $u
return 0
}
- }
- if {![catch [list $zz.$setNo smallSetUpperBound 0]]} {
- return 1
+ } else {
+ if {![catch [list $zz.$setNo smallSetUpperBound 0]]} {
+ return 1
+ }
}
ir-set $zz.$setNo $zz
+
+ if {![lindex $targets($host) 5]} {
+ set elements {}
+ }
$zz.$setNo smallSetElementSetNames $elements
$zz.$setNo mediumSetElementSetNames $elements
$zz.$setNo recordElements $elements
- eval $zz.$setNo databaseNames $database
+ eval $zz.$setNo databaseNames $database
$zz.$setNo preferredRecordSyntax USMARC
- $zz callback search-response $setNo
+ $zz callback [list search-response $zz.$setNo]
if {$piggy} {
$zz.$setNo largeSetLowerBound 999999
$zz.$setNo smallSetUpperBound 0
@@ -465,12 +472,15 @@ proc z39search {setNo piggy tno elements} {
$zz.$setNo search $query
if {[catch {zwait sessionWait 600}]} {
+ wlog debug "timeout/cancel in present"
+ displayError "Timeout in search" {}
html "