Nice simple update client.
authormike <mike>
Mon, 5 Jun 2006 16:33:42 +0000 (16:33 +0000)
committermike <mike>
Mon, 5 Jun 2006 16:33:42 +0000 (16:33 +0000)
samples/zoom/update.pl [new file with mode: 0755]

diff --git a/samples/zoom/update.pl b/samples/zoom/update.pl
new file mode 100755 (executable)
index 0000000..c44cd20
--- /dev/null
@@ -0,0 +1,135 @@
+#!/usr/bin/perl -w
+
+# $Id: update.pl,v 1.1 2006-06-05 16:33:42 mike Exp $
+
+use strict;
+use warnings;
+use ZOOM;
+
+my $options = new ZOOM::Options();
+$options->option(user => "admin");
+$options->option(password => "fish");
+my $conn = create ZOOM::Connection($options);
+$conn->connect("test.indexdata.com:2118");
+print "connected\n";
+
+my $dbname = "mike$$";
+$conn->option(databaseName => $dbname);
+
+send_package($conn, "create", databaseName => $dbname);
+print "$0: created database '$dbname'\n";
+
+my $rs = $conn->search_pqf("mineral");
+my $n = $rs->size($rs);
+print "$0: found $n records\n";
+
+send_package($conn, "update", action => "specialUpdate",
+            recordIdOpaque => 1, record => join("", <DATA>));
+print "$0: added record\n";
+
+$rs = $conn->search_pqf("mineral");
+$n = $rs->size($rs);
+print "$0: found $n records\n";
+
+send_package($conn, "drop", databaseName => $dbname);
+print "$0: deleted database\n";
+
+eval {
+    $rs = $conn->search_pqf("mineral");
+}; if (!$@) {
+    print "$0: uh-oh\n";
+} elsif ($@->isa("ZOOM::Exception")) {
+    print "$0: database no longer there\n";
+} else {
+    die "@='$@'";
+}
+
+
+sub send_package {
+    my($conn, $op, %options) = @_;
+
+    my $p = $conn->package();
+    foreach my $key (keys %options) {
+       $p->option($key, $options{$key});
+    }
+    $p->send($op);
+    $p->destroy();
+}
+
+
+__DATA__
+<gils>
+  <Title>
+    UTAH EARTHQUAKE EPICENTERS
+    <Acronym>UUCCSEIS</Acronym>
+  </Title>
+  <Originator>UTAH GEOLOGICAL AND MINERAL SURVEY</Originator>
+  <Local-Subject-Index>
+    APPALACHIAN VALLEY; EARTHQUAKE; EPICENTER; SEISMOLOGY; UTAH
+  </Local-Subject-Index>
+  <Abstract>
+    Five files of epicenter data arranged by date comprise this data
+    set.  These files are searchable by magnitude and
+    longitude/latitude.  Hardcopy of listing and plot of requested
+    area available.  Epicenter location and date, magnitude, and focal
+    depth available.
+    <Format>DIGITAL DATA SETS</Format>
+    <Data-Category>TERRESTRIAL</Data-Category>
+    <Comments>
+      Data are supplied by the University of Utah Seismograph
+      Station. The Utah Geologcial and Mineral Survey (UGMS) is merely
+      a clearinghouse of the data.
+    </Comments>
+  </Abstract>
+  <Spatial-Domain>
+    <Geographic-Coverage>US STATE</Geographic-Coverage>
+    <Coverage-Description>UTAH</Coverage-Description>
+    <Bounding-Coordinates>
+      <West-Bounding-Coordinate>-114</West-Bounding-Coordinate>
+      <East-Bounding-Coordinate>-109</East-Bounding-Coordinate>
+      <North-Bounding-Coordinate>42</North-Bounding-Coordinate>
+      <South-Bounding-Coordinate>37</South-Bounding-Coordinate>
+    </Bounding-Coordinates>
+  </Spatial-Domain>
+  <Time-Period>
+    <Time-Period-Textual>-PRESENT</Time-Period-Textual>
+  </Time-Period>
+  <Availability>
+    <Distributor>
+      <Organization>UTAH GEOLOGICAL AND MINERAL SURVEY</Organization>
+      <Street-Address>606 BLACK HAWK WAY</Street-Address>
+      <City>SALT LAKE CITY</City>
+      <State>UT</State>
+      <Zip-Code>84108</Zip-Code>
+      <Country>USA</Country>
+      <Telephone>(801) 581-6831</Telephone>
+    </Distributor>
+    <Resource-Description>UTAH EARTHQUAKE EPICENTERS</Resource-Description>
+    <Technical-Prerequisites>
+      <Data-Set-Type>AUTOMATED</Data-Set-Type>
+      <Access-Method>BATCH</Access-Method>
+      <Number-of-Records>8,700</Number-of-Records>
+      <Computer-Type>PC NETWORK</Computer-Type>
+      <Computer-Location>SALT LAKE CITY, UT</Computer-Location>
+    </Technical-Prerequisites>
+  </Availability>
+  <Access-Constraints>
+    <Documentation>NONE</Documentation>
+  </Access-Constraints>
+  <Use-Constraints>
+    <Status>OPERATIONAL</Status>
+  </Use-Constraints>
+  <Point-of-Contact>
+    <Name>BILL CASE</Name>
+    <Organization>UTAH GEOLOGICAL AND MINERAL SURVEY</Organization>
+    <Street-Address>606 BLACK HAWK WAY</Street-Address>
+    <City>SALT LAKE CITY</City>
+    <State>UT</State>
+    <Zip-Code>84108</Zip-Code>
+    <Country>USA</Country>
+    <Telephone>(801) 581-6831</Telephone>
+  </Point-of-Contact>
+  <Control-Identifier>ESDD0006</Control-Identifier>
+  <Record-Source>UTAH GEOLOGICAL AND MINERAL SURVEY</Record-Source>
+  <Date-of-Last-Modification>198903</Date-of-Last-Modification>
+</gils>