1 #undef UNICODE
2 
3 #include <sqlcli1.h>
4 #include <sqlutil.h>
5 #include <sqlenv.h>
6 #include <dbd/common.h>
7 
8 #define DBD_DB2_CONNECTION   "DBD.DB2.Connection"
9 #define DBD_DB2_STATEMENT    "DBD.DB2.Statement"
10 
11 /*
12  * result set metadata
13  */
14 
15 typedef union _resultset_data {
16     SQLCHAR *str;
17     lua_Number number;
18     lua_Integer integer;
19     int boolean;
20 } resultset_data_t;
21 
22 typedef struct _resultset {
23     SQLSMALLINT name_len;
24     SQLSMALLINT type;
25     SQLUINTEGER size;
26     SQLSMALLINT scale;
27     SQLINTEGER actual_len;
28     lua_push_type_t lua_type;
29     resultset_data_t data;
30     SQLCHAR name[32];
31 } resultset_t;
32 
33 /*
34  * connection object implentation
35  */
36 typedef struct _connection {
37     SQLHANDLE env;
38     SQLHANDLE db2;
39 } connection_t;
40 
41 /*
42  * statement object implementation
43  */
44 typedef struct _statement {
45     resultset_t * resultset;
46     unsigned char *buffer;
47     SQLSMALLINT num_result_columns; /* variable for SQLNumResultCols */
48 
49     SQLHANDLE stmt;
50     SQLHANDLE db2;
51     int cursor_open;
52     SQLSMALLINT num_params;
53     unsigned char *parambuf;
54 } statement_t;
55 
56