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