Rename error classes to exception. Rename zerr.cpp
[yazpp-moved-to-github.git] / zoom / zclient.cpp
1 // $Header: /home/cvsroot/yaz++/zoom/zclient.cpp,v 1.2 2002-08-08 16:06:08 mike Exp $
2
3 // Trivial sample client
4
5 #include <stdlib.h>             // for atoi()
6 #include <iostream.h>
7 #include "zoom++.h"
8
9 int main(int argc, char **argv)
10 {
11     if (argc != 5) {
12         cerr << "Usage: " << argv[0] <<
13             " <host> <port> <db> <@prefix-search>\n";
14         return 1;
15     }
16
17     const char *hostname = argv[1];
18     const int port = atoi(argv[2]);
19     const char *dbname = argv[3];
20     const char *searchSpec = argv[4];
21
22     ZOOM::connection *conn;
23     try {
24         conn = new ZOOM::connection(hostname, port);
25     } catch(ZOOM::bib1Exception err) {
26         cerr << argv[0] << ": connect: bib1Exception " <<
27             err.errmsg() << " (" << err.addinfo() << ")\n";
28         return 2;
29     } catch(ZOOM::exception err) {
30         cerr << argv[0] << ": connect: exception " <<
31             err.errmsg() << "\n";
32         return 2;
33     }
34
35     conn->option("databaseName", dbname);
36     ZOOM::prefixQuery pq(searchSpec);
37     ZOOM::resultSet *rs;
38     try {
39         rs = new ZOOM::resultSet(*conn, pq);
40     } catch(ZOOM::bib1Exception err) {
41         cerr << argv[0] << ": searchSpec: " <<
42             err.errmsg() << " (" << err.addinfo() << ")\n";
43         return 3;
44     }
45
46     size_t n = rs->size();
47     cout << "found " << n << " records:\n";
48     for (size_t i = 0; i < n; i++) {
49         const ZOOM::record *rec = rs->getRecord(i);
50         cout << "=== record " << i+1 << " (recsyn " << rec->recsyn()
51              << ") ===\n" << rec->render();
52     }
53
54     return 0;
55 }