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

« back to all changes in this revision

Viewing changes to docs/examples.rst

  • Committer: Andrew Hutchings
  • Date: 2012-12-19 13:06:50 UTC
  • mfrom: (43.2.12 5.0)
  • Revision ID: andrew@linuxjedi.co.uk-20121219130650-kuebu0vxbeb7oyzy
Merge 5.0 docs changes into 5.1

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