1 | /***************************************
2 | $Revision: 1.17 $
3 |
4 | SQL module (sq) - MySQL implementation of SQL driver.
5 |
6 | Status: NOT REVUED, NOT TESTED
7 |
8 | ******************/ /******************
9 | Copyright (c) 1999 RIPE NCC
10 |
11 | All Rights Reserved
12 |
13 | Permission to use, copy, modify, and distribute this software and its
14 | documentation for any purpose and without fee is hereby granted,
15 | provided that the above copyright notice appear in all copies and that
16 | both that copyright notice and this permission notice appear in
17 | supporting documentation, and that the name of the author not be
18 | used in advertising or publicity pertaining to distribution of the
19 | software without specific, written prior permission.
20 |
21 | THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
22 | ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS; IN NO EVENT SHALL
23 | AUTHOR BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY
24 | DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
25 | AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
26 | OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
27 | ***************************************/
28 | #ifndef READ_MYSQL_DRIVER
29 | #define READ_MYSQL_DRIVER
30 |
31 | #include "mysql.h"
32 | #include "mysqld_error.h"
33 | #include "erroutines.h"
34 |
35 | /* types for mysql_info */
36 | #define SQL_RECORDS 0
37 | #define SQL_MATCHES 0 // for UPDATE queries (checking for duplicates)
38 | #define SQL_DUPLICATES 1
39 | #define SQL_WARNINGS 2
40 |
41 |
42 |
43 | #define SQ_connection_t MYSQL
44 | #define SQ_result_set_t MYSQL_RES
45 |
46 | #define SQ_row_t MYSQL_ROW
47 |
48 | #ifdef __cplusplus
49 | extern "C" {
50 | #endif
51 |
52 |
53 |
54 | er_ret_t SQ_try_connection(SQ_connection_t **conn, const char *host,
55 | unsigned int port, const char *db,
56 | const char *user, const char *password);
57 | SQ_connection_t *SQ_get_connection(const char *host, unsigned int port, const char *db, const char *user, const char *password);
58 | int SQ_execute_query(SQ_connection_t *sql_connection,
59 | const char *query, SQ_result_set_t **result_ptr);
60 | int SQ_execute_query_nostore(SQ_connection_t *sql_connection,
61 | const char *query, SQ_result_set_t **result_ptr);
62 | int SQ_get_column_count(SQ_result_set_t *result);
63 | char *SQ_get_column_label(SQ_result_set_t *result, unsigned int column);
64 | unsigned int SQ_get_column_max_length(SQ_result_set_t *result, unsigned int column);
65 | SQ_row_t *SQ_row_next(SQ_result_set_t *result);
66 | char *SQ_get_column_string(SQ_result_set_t *result, SQ_row_t *current_row, unsigned int column);
67 | char *SQ_get_column_string_nocopy(SQ_result_set_t *result,
68 | SQ_row_t *current_row,
69 | unsigned int column);
70 | char *SQ_get_column_strings(SQ_result_set_t *result, unsigned int column);
71 | int SQ_get_column_int(SQ_result_set_t *result, SQ_row_t *current_row, unsigned int column, long *resultptr);
72 | char *SQ_result_to_string(SQ_result_set_t *result);
73 | void SQ_free_result(SQ_result_set_t *result);
74 | void SQ_close_connection(SQ_connection_t *sql_connection);
75 |
76 | /* report number of rows */
77 | int SQ_num_rows(SQ_result_set_t *result);
78 | int SQ_get_table_size(SQ_connection_t *sql_connection, char *table);
79 | int SQ_get_affected_rows(SQ_connection_t *sql_connection);
80 |
81 | char *SQ_info_to_string(SQ_connection_t *sql_connection);
82 | char *SQ_error(SQ_connection_t *sql_connection);
83 | int SQ_errno(SQ_connection_t *sql_connection);
84 | int SQ_get_info(SQ_connection_t *sql_connection, int info[3]);
85 | SQ_connection_t *SQ_duplicate_connection(SQ_connection_t *orig);
86 | int SQ_abort_query(SQ_connection_t *sql_connection);
87 |
88 | #ifdef __cplusplus
89 | }
90 | #endif
91 |
92 |
93 | #endif /* READ_MYSQL_DRIVER */