~drizzle-trunk/libdrizzle/jenkins-Libdrizzle-3

« back to all changes in this revision

Viewing changes to docs/examples.rst

  • Committer: Andrew Hutchings
  • Date: 2012-12-08 20:33:27 UTC
  • Revision ID: andrew@linuxjedi.co.uk-20121208203327-xabjbtu6otlvdpex
Docs additions and new test case

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
Examples
 
2
========
 
3
 
 
4
Buffered Results
 
5
----------------
 
6
 
 
7
.. code-block:: c
 
8
 
 
9
    #include <libdrizzle/drizzle_client.h>
 
10
    #include <stdio.h>
 
11
    #include <stdlib.h>
 
12
 
 
13
    int main(int argc, char *argv[])
 
14
    {
 
15
      (void) argc;
 
16
      (void) argv;
 
17
      drizzle_st *drizzle;
 
18
      drizzle_con_st *con;
 
19
      drizzle_return_t ret;
 
20
      drizzle_result_st *result;
 
21
      drizzle_row_t row;
 
22
      int num_fields;
 
23
 
 
24
      drizzle = drizzle_create();
 
25
      if (drizzle == NULL)
 
26
      {
 
27
        printf("Drizzle object creation error\n");
 
28
        return EXIT_FAILURE;
 
29
      }
 
30
      con = drizzle_con_add_tcp(drizzle, "localhost", 3306, "user", "pass", "test", 0);
 
31
      if (con == NULL)
 
32
      {
 
33
        printf("Drizzle connection object creation error\n");
 
34
        return EXIT_FAILURE;
 
35
      }
 
36
      ret = drizzle_con_connect(con);
 
37
      if (ret != DRIZZLE_RETURN_OK)
 
38
      {
 
39
        printf("Drizzle connection failure\n");
 
40
        return EXIT_FAILURE;
 
41
      }
 
42
 
 
43
      result= drizzle_query_str(con, "select * from libdrizzle.t1", &ret);
 
44
      if (ret != DRIZZLE_RETURN_OK)
 
45
      {
 
46
        printf("Select failure\n");
 
47
        return EXIT_FAILURE;
 
48
      }
 
49
      drizzle_result_buffer(result);
 
50
      num_fields= drizzle_result_column_count(result);
 
51
 
 
52
      printf("%d fields\n", num_fields);
 
53
      while ((row = drizzle_row_next(result)))
 
54
      {
 
55
        printf("Data: ");
 
56
        for (uint16_t col=0; col < num_fields; col++)
 
57
        {
 
58
          printf("%s", row[col]);
 
59
        }
 
60
        printf("\n");
 
61
      }
 
62
 
 
63
      drizzle_result_free(result);
 
64
 
 
65
      drizzle_con_quit(con);
 
66
      drizzle_free(drizzle);
 
67
      return EXIT_SUCCESS;
 
68
    }
 
69
 
 
70
 
 
71
Unbuffered Results
 
72
------------------
 
73
 
 
74
.. code-block:: c
 
75
 
 
76
    #include <libdrizzle/drizzle_client.h>
 
77
    #include <stdio.h>
 
78
    #include <stdlib.h>
 
79
 
 
80
    int main(int argc, char *argv[])
 
81
    {
 
82
      (void) argc;
 
83
      (void) argv;
 
84
      drizzle_st *drizzle;
 
85
      drizzle_con_st *con;
 
86
      drizzle_return_t ret;
 
87
      drizzle_result_st *result;
 
88
      drizzle_row_t row;
 
89
      int num_fields;
 
90
 
 
91
      drizzle = drizzle_create();
 
92
      if (drizzle == NULL)
 
93
      {
 
94
        printf("Drizzle object creation error\n");
 
95
        return EXIT_FAILURE;
 
96
      }
 
97
      con = drizzle_con_add_tcp(drizzle, "localhost", 3306, "root", "", "libdrizzle", 0);
 
98
      if (con == NULL)
 
99
      {
 
100
        printf("Drizzle connection object creation error\n");
 
101
        return EXIT_FAILURE;
 
102
      }
 
103
      ret = drizzle_con_connect(con);
 
104
      if (ret != DRIZZLE_RETURN_OK)
 
105
      {
 
106
        printf("Drizzle connection failure\n");
 
107
        return EXIT_FAILURE;
 
108
      }
 
109
 
 
110
      result= drizzle_query_str(con, "select * from libdrizzle.t1", &ret);
 
111
      if (ret != DRIZZLE_RETURN_OK)
 
112
      {
 
113
        printf("Select failure\n");
 
114
        return EXIT_FAILURE;
 
115
      }
 
116
 
 
117
      if (drizzle_column_buffer(result) != DRIZZLE_RETURN_OK)
 
118
      {
 
119
        printf("Column buffer failure\n");
 
120
        return EXIT_FAILURE;
 
121
      }
 
122
      num_fields= drizzle_result_column_count(result);
 
123
 
 
124
      printf("%d fields\n", num_fields);
 
125
      while(1)
 
126
      {
 
127
        row= drizzle_row_buffer(result, &ret);
 
128
        if (ret != DRIZZLE_RETURN_OK)
 
129
        {
 
130
          printf("Row retrieval error\n");
 
131
          break;
 
132
        }
 
133
        if (row == NULL)
 
134
        {
 
135
          // EOF
 
136
          break;
 
137
        }
 
138
        printf("Data: ");
 
139
        for (uint16_t col=0; col < num_fields; col++)
 
140
        {
 
141
          printf("%s", row[col]);
 
142
        }
 
143
        printf("\n");
 
144
        drizzle_row_free(result, row);
 
145
      }
 
146
 
 
147
      drizzle_result_free(result);
 
148
 
 
149
 
 
150
      drizzle_con_quit(con);
 
151
      drizzle_free(drizzle);
 
152
      return EXIT_SUCCESS;
 
153
    }
 
154
 
 
155
 
 
156
Binlog Retrieval
 
157
----------------
 
158
 
 
159
.. code-block:: c
 
160
 
 
161
    #include <libdrizzle/drizzle_client.h>
 
162
    #include <stdio.h>
 
163
    #include <stdlib.h>
 
164
 
 
165
    int main(int argc, char *argv[])
 
166
    {
 
167
      (void) argc;
 
168
      (void) argv;
 
169
      drizzle_st *drizzle;
 
170
      drizzle_con_st *con;
 
171
      drizzle_return_t ret;
 
172
      drizzle_result_st *result;
 
173
      drizzle_binlog_st *binlog_event;
 
174
 
 
175
      drizzle = drizzle_create();
 
176
      if (drizzle == NULL)
 
177
      {
 
178
        printf("Drizzle object creation error\n");
 
179
        return EXIT_FAILURE;
 
180
      }
 
181
      con = drizzle_con_add_tcp(drizzle, "localhost", 3306, "root", "", "", 0);
 
182
      if (con == NULL)
 
183
      {
 
184
        printf("Drizzle connection object creation error\n");
 
185
        return EXIT_FAILURE;
 
186
      }
 
187
      ret = drizzle_con_connect(con);
 
188
      if (ret != DRIZZLE_RETURN_OK)
 
189
      {
 
190
        printf("Drizzle connection failure\n");
 
191
        return EXIT_FAILURE;
 
192
      }
 
193
 
 
194
      result= drizzle_start_binlog(con, 0, "", 0, &ret);
 
195
      if (ret != DRIZZLE_RETURN_OK)
 
196
      {
 
197
        printf("Drizzle binlog start failure\n");
 
198
        return EXIT_FAILURE;
 
199
      }
 
200
 
 
201
      while (ret == DRIZZLE_RETURN_OK)
 
202
      {
 
203
        uint32_t i;
 
204
        binlog_event= drizzle_binlog_get_event(result, &ret);
 
205
        if (ret != DRIZZLE_RETURN_OK)
 
206
          break;
 
207
        printf("Timestamp: %"PRIu32"\n", binlog_event->timestamp);
 
208
        printf("Type: %"PRIu8"\n", binlog_event->type);
 
209
        printf("Server-id: %"PRIu32"\n", binlog_event->server_id);
 
210
        printf("Next-pos: %"PRIu32"\n", binlog_event->next_pos);
 
211
        printf("Length: %"PRIu32"\n", binlog_event->length);
 
212
        printf("Data: 0x");
 
213
        for (i=0; i<binlog_event->length; i++)
 
214
          printf("%02X ", binlog_event->data[i]);
 
215
        printf("\n\n");
 
216
      }
 
217
 
 
218
      drizzle_con_quit(con);
 
219
      drizzle_free(drizzle);
 
220
      return EXIT_SUCCESS;
 
221
    }
 
222