libdrizzle Developer Documentation

simple.c
Go to the documentation of this file.
1/*
2 * Drizzle Client & Protocol Library
3 *
4 * Copyright (C) 2008 Eric Day (eday@oddments.org)
5 * All rights reserved.
6 *
7 * Use and distribution licensed under the BSD license. See
8 * the COPYING file in this directory for full text.
9 */
10
11#include <stdio.h>
12#include <stdlib.h>
13#include <string.h>
14#include <unistd.h>
15
17
18int main(int argc, char *argv[])
19{
20 int c;
21 const char *db= "INFORMATION_SCHEMA";
22 const char *host= NULL;
23 bool mysql= false;
24 in_port_t port= 0;
25 const char *query= "SELECT TABLE_SCHEMA,TABLE_NAME FROM TABLES";
27 drizzle_st drizzle;
29 drizzle_result_st result;
31 int x;
32 char **row;
33
34 while ((c = getopt(argc, argv, "d:h:mp:q:v")) != -1)
35 {
36 switch(c)
37 {
38 case 'd':
39 db= optarg;
40 break;
41
42 case 'h':
43 host= optarg;
44 break;
45
46 case 'm':
47 mysql= true;
48 break;
49
50 case 'p':
51 port= (in_port_t)atoi(optarg);
52 break;
53
54 case 'q':
55 query= optarg;
56 break;
57
58 case 'v':
59 verbose++;
60 break;
61
62 default:
63 printf("usage: %s [-d <db>] [-h <host>] [-m] [-p <port>] [-q <query>] "
64 "[-v]\n", argv[0]);
65 printf("\t-d <db> - Database to use for query\n");
66 printf("\t-h <host> - Host to listen on\n");
67 printf("\t-m - Use the MySQL protocol\n");
68 printf("\t-p <port> - Port to listen on\n");
69 printf("\t-q <query> - Query to run\n");
70 printf("\t-v - Increase verbosity level\n");
71 return 1;
72 }
73 }
74
75 if (drizzle_create(&drizzle) == NULL)
76 {
77 printf("drizzle_create:NULL\n");
78 return 1;
79 }
80
81 drizzle_set_verbose(&drizzle, verbose);
82
83 if (drizzle_con_create(&drizzle, &con) == NULL)
84 {
85 printf("drizzle_con_create:NULL\n");
86 return 1;
87 }
88
89 if (mysql)
91
92 drizzle_con_set_tcp(&con, host, port);
93 drizzle_con_set_db(&con, db);
94
95 (void)drizzle_query_str(&con, &result, query, &ret);
96 if (ret != DRIZZLE_RETURN_OK)
97 {
98 printf("drizzle_query:%s\n", drizzle_con_error(&con));
99 return 1;
100 }
101
102 ret= drizzle_result_buffer(&result);
103 if (ret != DRIZZLE_RETURN_OK)
104 {
105 printf("drizzle_result_buffer:%s\n", drizzle_con_error(&con));
106 return 1;
107 }
108
109 while ((row= (char **)drizzle_row_next(&result)) != NULL)
110 {
111 for (x= 0; x < drizzle_result_column_count(&result); x++)
112 printf("%s%s", x == 0 ? "" : ":", row[x] == NULL ? "NULL" : row[x]);
113 printf("\n");
114 }
115
116 drizzle_result_free(&result);
117 drizzle_con_free(&con);
118 drizzle_free(&drizzle);
119
120 return 0;
121}
Drizzle Declarations for Clients.
void drizzle_con_set_db(drizzle_con_st *con, const char *db)
Definition conn.c:262
void drizzle_con_set_tcp(drizzle_con_st *con, const char *host, in_port_t port)
Definition conn.c:209
const char * drizzle_con_error(const drizzle_con_st *con)
Definition conn.c:133
void drizzle_con_add_options(drizzle_con_st *con, drizzle_con_options_t options)
Definition conn.c:164
@ DRIZZLE_CON_MYSQL
Definition constants.h:135
drizzle_return_t
Definition constants.h:69
drizzle_verbose_t
Definition constants.h:102
@ DRIZZLE_RETURN_OK
Definition constants.h:70
@ DRIZZLE_VERBOSE_NEVER
Definition constants.h:103
drizzle_result_st * drizzle_query_str(drizzle_con_st *con, drizzle_result_st *result, const char *query, drizzle_return_t *ret_ptr)
Definition query.c:26
drizzle_return_t drizzle_result_buffer(drizzle_result_st *result)
Definition result.c:193
uint16_t drizzle_result_column_count(drizzle_result_st *result)
Definition result.c:158
void drizzle_result_free(drizzle_result_st *result)
Definition result.c:75
drizzle_row_t drizzle_row_next(drizzle_result_st *result)
Definition row.c:103
drizzle_con_st * drizzle_con_create(drizzle_st *drizzle, drizzle_con_st *con)
Definition drizzle.c:237
void drizzle_set_verbose(drizzle_st *drizzle, drizzle_verbose_t verbose)
Definition drizzle.c:217
void drizzle_free(drizzle_st *drizzle)
Definition drizzle.c:123
drizzle_st * drizzle_create(drizzle_st *drizzle)
Definition drizzle.c:61
void drizzle_con_free(drizzle_con_st *con)
Definition drizzle.c:343
int main(int argc, char *argv[])
Definition simple.c:18