29 printf(
"%s() returned error %d: %s\n", foo, st,
ham_strerror(st));
35 #define DBNAME_CUSTOMER 1
36 #define DBNAME_ORDER 2
38 #define MAX_CUSTOMERS 4
57 main(
int argc,
char **argv) {
77 { 1,
"Alan Antonov Corp." },
78 { 2,
"Barry Broke Inc." },
79 { 3,
"Carl Caesar Lat." },
80 { 4,
"Doris Dove Brd." }
97 error(
"ham_env_create", st);
108 error(
"ham_env_create_db (customer)", st);
111 error(
"ham_env_create_db (order)", st);
114 for (i = 0; i <
MAX_DBS; i++) {
117 printf(
"ham_cursor_create() failed with error %d\n", st);
124 key.
size =
sizeof(int);
125 key.
data = &customers[i].
id;
128 record.
data = &customers[i];
132 error(
"ham_db_insert (customer)", st);
137 key.
size =
sizeof(int);
141 record.
data = &orders[i];
145 error(
"ham_db_insert (order)", st);
155 for (i = 0; i <
MAX_DBS; i++) {
158 error(
"ham_cursor_close", st);
162 error(
"ham_env_close", st);
167 error(
"ham_env_open", st);
170 error(
"ham_env_open_db (customer)", st);
173 error(
"ham_env_open_db (order)", st);
176 for (i = 0; i <
MAX_DBS; i++) {
179 printf(
"ham_cursor_create() failed with error %d\n", st);
201 error(
"ham_cursor_next(customer)", st);
207 printf(
"customer %d ('%s')\n", customer->
id, customer->
name);
220 error(
"ham_cursor_next(order)", st);
228 printf(
" order: %d (assigned to %s)\n",
238 error(
"ham_cursor_next(order)", st);
249 error(
"ham_env_close", st);
251 printf(
"success!\n");