Here, we show different versions of the canonical ZOOM ``Hello World'' program in various languages supported by the implemented bindings:
All these programs do the same thing: they are tiny Z39.50 clients that fetch and display the MARC record for Farlow & Brett Surman's The Complete Dinosaur from the Library of Congress.
#include <stdio.h>
#include <yaz/zoom.h>
int main(int argc, char **argv)
{
ZOOM_connection z = ZOOM_connection_new ("z3950.loc.gov:7090/Voyager", 0);
ZOOM_resultset r;
const char *rec;
ZOOM_connection_option_set(z, "preferredRecordSyntax", "USMARC");
r = ZOOM_connection_search_pqf(z, "@attr 1=7 0253333490");
rec = ZOOM_record_get (ZOOM_resultset_record (r, 0), "render", 0);
if (rec)
printf ("%s\n", rec);
return 0;
}
[download]
[read more]
#include <iostream>
#include <yazpp/zoom.h>
using namespace ZOOM;
int main (int argc, char **argv)
{
connection conn ("z3950.loc.gov", 7090);
conn.option ("databaseName", "Voyager");
resultSet rs (conn, prefixQuery ("@attr 1=7 0253333490"));
const record rec(rs, 0);
std::cout << rec.render () << std::endl;
}
[download]
[read more]
use ZOOM;
$conn = new ZOOM::Connection('z3950.loc.gov', 7090,
databaseName => "Voyager",
preferredRecordSyntax => "USMARC");
$rs = $conn->search_pqf('@attr 1=7 0253333490');
$rec = $rs->record(0);
print $rec->render();
[download]
[read more]
from PyZ3950 import zoom
conn = zoom.Connection ('z3950.loc.gov', 7090)
conn.databaseName = 'Voyager'
conn.preferredRecordSyntax = 'USMARC'
query = zoom.Query ('CCL', 'isbn=0253333490')
res = conn.search (query)
print res [0]
conn.close ()
[download]
[read more]
import uk.org.miketaylor.zoom.*;
class Canonical {
public static void main (String[] args) throws Exception {
Connection conn = new Connection("z3950.loc.gov", 7090);
conn.option("databaseName", "Voyager");
conn.option("preferredRecordSyntax", "USMARC");
Query q = new PrefixQuery("@attr 1=7 0253333490");
ResultSet rs = conn.search(q);
System.out.println(rs.getRecord(0).render());
}
}
[download]
[read more]
Set zoom = WScript.CreateObject("VBZOOMC.ZoomFactory")
Set zconn = zoom.CreateZoomConnection("z3950.loc.gov", 7090)
zconn.SetOption "databaseName","Voyager"
zconn.SetOption "preferredRecordSyntax", "USmarc"
Set zquery = zoom.CreateZoomQuery("@attr 1=7 0253333490")
Set zrs = zconn.Search(zquery)
WScript.Echo zrs.GetRecord(0).RenderRecord
[download]
[read more]
(module hello_world
(include "bzoom.sch")
(include "bzoom.scm")
(main main))
(define main (lambda (args)
(let ((conn
(zoom:connection_new "z3950.loc.gov:7090/Voyager" 0)))
(zoom:connection_option_set
conn "preferredRecordSyntax" "USMARC")
(let* ((r (zoom:connection_search_pqf
conn "@attr 1=7 0253333490"))
(rec (zoom:record_get
(zoom:resultset_record r 0)
"render")))
(if (pair? rec)
(display (car rec)))
0))) )
[download]
[read more]
source zoom-1.2.tcl object Connection conn "z3950.loc.gov" 7090 conn.setOption "database" "Voyager" conn.setOption "preferredRecordSyntax" "MARC" object Query query1 0 "7 0253333490" set rs [conn.search [query1]] set rec [$rs.getRecord 0] puts [$rec.getRaw][download] [read more]
require 'zoom'
ZOOM::Connection.open('z3950.loc.gov', 7090) do |conn|
conn.database_name = 'Voyager'
conn.preferred_record_syntax = 'USMARC'
rset = conn.search('@attr 1=7 0253333490')
p rset[0]
end
[download]
[read more]
with Zoom.Connections; use Zoom.Connections;
with Zoom.Records; use Zoom.Records;
with Zoom.Result_Sets; use Zoom.Result_Sets;
with Zoom.Queries; use Zoom.Queries;
procedure Canonical is
Conn : Connection := New_Connection ("z3950.loc.gov", 7090);
Q : Prefix_Query := Create ("@attr 1=7 0253333490");
Rs : Result_Set;
begin
Set_Option (Conn, "databaseName", "Voyager");
Rs := Search (Conn, Q);
Render (Get_Record (Rs, 0));
end Canonical;
[download]
[read more]
connect z3950.loc.gov:7090/Voyager set preferredRecordSyntax USMARC search @attr 1=7 0253333490 show 0 1[download] [read more]