2
* Drizzle Client & Protocol Library
4
* Copyright (C) 2008 Eric Day (eday@oddments.org)
7
* Use and distribution licensed under the BSD license. See
8
* the COPYING.BSD file in the root source directory for full text.
18
#include <libdrizzle/drizzle_client.h>
20
int main(int argc, char *argv[])
23
const char *db= "INFORMATION_SCHEMA";
24
const char *host= NULL;
27
const char *query= "SELECT TABLE_SCHEMA,TABLE_NAME FROM TABLES";
28
drizzle_verbose_t verbose= DRIZZLE_VERBOSE_NEVER;
31
drizzle_result_st result;
36
while ((c = getopt(argc, argv, "d:h:mp:q:v")) != -1)
53
port= (in_port_t)atoi(optarg);
65
printf("usage: %s [-d <db>] [-h <host>] [-m] [-p <port>] [-q <query>] "
67
printf("\t-d <db> - Database to use for query\n");
68
printf("\t-h <host> - Host to listen on\n");
69
printf("\t-m - Use the MySQL protocol\n");
70
printf("\t-p <port> - Port to listen on\n");
71
printf("\t-q <query> - Query to run\n");
72
printf("\t-v - Increase verbosity level\n");
77
if (drizzle_create(&drizzle) == NULL)
79
printf("drizzle_create:NULL\n");
83
drizzle_set_verbose(&drizzle, verbose);
85
if (drizzle_con_create(&drizzle, &con) == NULL)
87
printf("drizzle_con_create:NULL\n");
92
drizzle_con_add_options(&con, DRIZZLE_CON_MYSQL);
94
drizzle_con_set_tcp(&con, host, port);
95
drizzle_con_set_db(&con, db);
97
(void)drizzle_query_str(&con, &result, query, &ret);
98
if (ret != DRIZZLE_RETURN_OK)
100
printf("drizzle_query:%s\n", drizzle_con_error(&con));
104
ret= drizzle_result_buffer(&result);
105
if (ret != DRIZZLE_RETURN_OK)
107
printf("drizzle_result_buffer:%s\n", drizzle_con_error(&con));
111
while ((row= (char **)drizzle_row_next(&result)) != NULL)
113
for (x= 0; x < drizzle_result_column_count(&result); x++)
114
printf("%s%s", x == 0 ? "" : ":", row[x] == NULL ? "NULL" : row[x]);
118
drizzle_result_free(&result);
119
drizzle_con_free(&con);
120
drizzle_free(&drizzle);