ibm_db 2.0.0-mswin32 → 2.5.0-mswin32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/ext/ruby_ibm_db.h CHANGED
@@ -201,10 +201,18 @@ VALUE ibm_db_active(int argc, VALUE *argv, VALUE self);
201
201
  */
202
202
  struct _ibm_db_globals {
203
203
  int bin_mode;
204
- char __ruby_conn_err_msg[DB2_MAX_ERR_MSG_LEN];
205
- char __ruby_conn_err_state[SQL_SQLSTATE_SIZE + 1];
206
- char __ruby_stmt_err_msg[DB2_MAX_ERR_MSG_LEN];
207
- char __ruby_stmt_err_state[SQL_SQLSTATE_SIZE + 1];
204
+ #ifdef UNICODE_SUPPORT_VERSION
205
+ SQLWCHAR __ruby_conn_err_msg[DB2_MAX_ERR_MSG_LEN];
206
+ SQLWCHAR __ruby_stmt_err_msg[DB2_MAX_ERR_MSG_LEN];
207
+ SQLWCHAR __ruby_conn_err_state[SQL_SQLSTATE_SIZE + 1];
208
+ SQLWCHAR __ruby_stmt_err_state[SQL_SQLSTATE_SIZE + 1];
209
+ #else
210
+ char __ruby_conn_err_msg[DB2_MAX_ERR_MSG_LEN];
211
+ char __ruby_stmt_err_msg[DB2_MAX_ERR_MSG_LEN];
212
+ char __ruby_conn_err_state[SQL_SQLSTATE_SIZE + 1];
213
+ char __ruby_stmt_err_state[SQL_SQLSTATE_SIZE + 1];
214
+ #endif
215
+
208
216
  #ifdef PASE /* i5/OS ease of use turn off commit */
209
217
  long i5_allow_commit;
210
218
  #endif /* PASE */
@@ -29,12 +29,23 @@
29
29
  */
30
30
  int _ruby_ibm_db_SQLConnect_helper(connect_args *data) {
31
31
  if(data->ctlg_conn == 1) {
32
+ #ifndef UNICODE_SUPPORT_VERSION
32
33
  return SQLConnect( (SQLHDBC)*(data->hdbc), (SQLCHAR *)data->database,
33
34
  (SQLSMALLINT)data->database_len, (SQLCHAR *)data->uid, (SQLSMALLINT)data->uid_len,
34
35
  (SQLCHAR *)data->password, (SQLSMALLINT)data->password_len );
36
+ #else
37
+ return SQLConnectW( (SQLHDBC)*(data->hdbc), data->database,
38
+ data->database_len, data->uid, data->uid_len,
39
+ data->password, data->password_len );
40
+ #endif
35
41
  } else {
42
+ #ifndef UNICODE_SUPPORT_VERSION
36
43
  return SQLDriverConnect( (SQLHDBC) *(data->hdbc), (SQLHWND)NULL,
37
44
  (SQLCHAR*)data->database, SQL_NTS, NULL, 0, NULL, SQL_DRIVER_NOPROMPT );
45
+ #else
46
+ return SQLDriverConnectW( (SQLHDBC) *(data->hdbc), (SQLHWND)NULL,
47
+ data->database, SQL_NTS, NULL, 0, NULL, SQL_DRIVER_NOPROMPT );
48
+ #endif
38
49
  }
39
50
  }
40
51
 
@@ -84,10 +95,17 @@ int _ruby_ibm_db_SQLDescribeCol_helper(describecol_args *data) {
84
95
 
85
96
  data->stmt_res->is_executing = 1;
86
97
 
98
+ #ifdef UNICODE_SUPPORT_VERSION
99
+ rc = SQLDescribeColW( (SQLHSTMT)data->stmt_res->hstmt, (SQLSMALLINT)(data->col_no),
100
+ data->stmt_res->column_info[i].name, data->buff_length, &(data->name_length),
101
+ &(data->stmt_res->column_info[i].type), &(data->stmt_res->column_info[i].size),
102
+ &(data->stmt_res->column_info[i].scale), &(data->stmt_res->column_info[i].nullable) );
103
+ #else
87
104
  rc = SQLDescribeCol( (SQLHSTMT)data->stmt_res->hstmt, (SQLSMALLINT)(data->col_no),
88
105
  data->stmt_res->column_info[i].name, data->buff_length, &(data->name_length),
89
106
  &(data->stmt_res->column_info[i].type), &(data->stmt_res->column_info[i].size),
90
107
  &(data->stmt_res->column_info[i].scale), &(data->stmt_res->column_info[i].nullable) );
108
+ #endif
91
109
 
92
110
  data->stmt_res->is_executing = 0;
93
111
 
@@ -119,8 +137,15 @@ int _ruby_ibm_db_SQLColumnPrivileges_helper(metadata_args *data) {
119
137
 
120
138
  data->stmt_res->is_executing = 1;
121
139
 
122
- rc = SQLColumnPrivileges( (SQLHSTMT) data->stmt_res->hstmt, data->qualifier, SQL_NTS,
123
- data->owner,SQL_NTS, data->table_name,SQL_NTS, data->column_name,SQL_NTS );
140
+ #ifndef UNICODE_SUPPORT_VERSION
141
+ rc = SQLColumnPrivileges( (SQLHSTMT) data->stmt_res->hstmt, data->qualifier, data->qualifier_len,
142
+ data->owner, data->owner_len, data->table_name, data->table_name_len,
143
+ data->column_name, data->column_name_len );
144
+ #else
145
+ rc = SQLColumnPrivilegesW( (SQLHSTMT) data->stmt_res->hstmt, data->qualifier, data->qualifier_len,
146
+ data->owner, data->owner_len, data->table_name, data->table_name_len,
147
+ data->column_name, data->column_name_len );
148
+ #endif
124
149
 
125
150
  data->stmt_res->is_executing = 0;
126
151
 
@@ -136,8 +161,15 @@ int _ruby_ibm_db_SQLColumns_helper(metadata_args *data) {
136
161
 
137
162
  data->stmt_res->is_executing = 1;
138
163
 
139
- rc = SQLColumns( (SQLHSTMT) data->stmt_res->hstmt, data->qualifier, SQL_NTS,
140
- data->owner,SQL_NTS, data->table_name,SQL_NTS, data->column_name,SQL_NTS );
164
+ #ifndef UNICODE_SUPPORT_VERSION
165
+ rc = SQLColumns( (SQLHSTMT) data->stmt_res->hstmt, data->qualifier, data->qualifier_len,
166
+ data->owner, data->owner_len, data->table_name, data->table_name_len,
167
+ data->column_name, data->column_name_len );
168
+ #else
169
+ rc = SQLColumnsW( (SQLHSTMT) data->stmt_res->hstmt, data->qualifier, data->qualifier_len,
170
+ data->owner, data->owner_len, data->table_name, data->table_name_len,
171
+ data->column_name, data->column_name_len );
172
+ #endif
141
173
 
142
174
  data->stmt_res->is_executing = 0;
143
175
 
@@ -152,8 +184,13 @@ int _ruby_ibm_db_SQLPrimaryKeys_helper(metadata_args *data) {
152
184
 
153
185
  data->stmt_res->is_executing = 1;
154
186
 
155
- rc = SQLPrimaryKeys( (SQLHSTMT) data->stmt_res->hstmt, data->qualifier, SQL_NTS,
156
- data->owner, SQL_NTS, data->table_name,SQL_NTS );
187
+ #ifndef UNICODE_SUPPORT_VERSION
188
+ rc = SQLPrimaryKeys( (SQLHSTMT) data->stmt_res->hstmt, data->qualifier, data->qualifier_len,
189
+ data->owner, data->owner_len, data->table_name, data->table_name_len );
190
+ #else
191
+ rc = SQLPrimaryKeysW( (SQLHSTMT) data->stmt_res->hstmt, data->qualifier, data->qualifier_len,
192
+ data->owner, data->owner_len, data->table_name, data->table_name_len );
193
+ #endif
157
194
 
158
195
  data->stmt_res->is_executing = 0;
159
196
 
@@ -161,16 +198,22 @@ int _ruby_ibm_db_SQLPrimaryKeys_helper(metadata_args *data) {
161
198
  }
162
199
 
163
200
  /*
164
- This function calls SQLForeignKeys cli call to get the list of primay key columns and the associated metadata
201
+ This function calls SQLForeignKeys cli call to get the list of foreign key columns and the associated metadata
165
202
  */
166
203
  int _ruby_ibm_db_SQLForeignKeys_helper(metadata_args *data) {
167
204
  int rc = 0;
168
205
 
169
206
  data->stmt_res->is_executing = 1;
170
207
 
171
- rc = SQLForeignKeys( (SQLHSTMT) data->stmt_res->hstmt, data->qualifier, SQL_NTS,
172
- data->owner, SQL_NTS, data->table_name ,SQL_NTS, NULL, SQL_NTS,
208
+ #ifndef UNICODE_SUPPORT_VERSION
209
+ rc = SQLForeignKeys( (SQLHSTMT) data->stmt_res->hstmt, data->qualifier, data->qualifier_len,
210
+ data->owner, data->owner_len, data->table_name , data->table_name_len, NULL, SQL_NTS,
211
+ NULL, SQL_NTS, NULL, SQL_NTS );
212
+ #else
213
+ rc = SQLForeignKeysW( (SQLHSTMT) data->stmt_res->hstmt, data->qualifier, data->qualifier_len,
214
+ data->owner, data->owner_len, data->table_name , data->table_name_len, NULL, SQL_NTS,
173
215
  NULL, SQL_NTS, NULL, SQL_NTS );
216
+ #endif
174
217
 
175
218
  data->stmt_res->is_executing = 0;
176
219
 
@@ -186,8 +229,13 @@ int _ruby_ibm_db_SQLProcedureColumns_helper(metadata_args *data) {
186
229
 
187
230
  data->stmt_res->is_executing = 1;
188
231
 
189
- rc = SQLProcedureColumns( (SQLHSTMT) data->stmt_res->hstmt, data->qualifier, SQL_NTS, data->owner,
190
- SQL_NTS, data->proc_name, SQL_NTS, data->column_name, SQL_NTS );
232
+ #ifndef UNICODE_SUPPORT_VERSION
233
+ rc = SQLProcedureColumns( (SQLHSTMT) data->stmt_res->hstmt, data->qualifier, data->qualifier_len, data->owner,
234
+ data->owner_len, data->proc_name, data->proc_name_len, data->column_name, data->column_name_len );
235
+ #else
236
+ rc = SQLProcedureColumnsW( (SQLHSTMT) data->stmt_res->hstmt, data->qualifier, data->qualifier_len, data->owner,
237
+ data->owner_len, data->proc_name, data->proc_name_len, data->column_name, data->column_name_len );
238
+ #endif
191
239
 
192
240
  data->stmt_res->is_executing = 0;
193
241
 
@@ -203,8 +251,13 @@ int _ruby_ibm_db_SQLProcedures_helper(metadata_args *data) {
203
251
 
204
252
  data->stmt_res->is_executing = 1;
205
253
 
206
- rc = SQLProcedures( (SQLHSTMT) data->stmt_res->hstmt, data->qualifier, SQL_NTS, data->owner,
207
- SQL_NTS, data->proc_name, SQL_NTS );
254
+ #ifndef UNICODE_SUPPORT_VERSION
255
+ rc = SQLProcedures( (SQLHSTMT) data->stmt_res->hstmt, data->qualifier, data->qualifier_len, data->owner,
256
+ data->owner_len, data->proc_name, data->proc_name_len );
257
+ #else
258
+ rc = SQLProceduresW( (SQLHSTMT) data->stmt_res->hstmt, data->qualifier, data->qualifier_len, data->owner,
259
+ data->owner_len, data->proc_name, data->proc_name_len );
260
+ #endif
208
261
 
209
262
  data->stmt_res->is_executing = 0;
210
263
 
@@ -220,8 +273,15 @@ int _ruby_ibm_db_SQLSpecialColumns_helper(metadata_args *data) {
220
273
 
221
274
  data->stmt_res->is_executing = 1;
222
275
 
223
- rc = SQLSpecialColumns( (SQLHSTMT) data->stmt_res->hstmt,SQL_BEST_ROWID, data->qualifier, SQL_NTS,
224
- data->owner,SQL_NTS, data->table_name,SQL_NTS,(SQLUSMALLINT)data->scope,SQL_NULLABLE );
276
+ #ifndef UNICODE_SUPPORT_VERSION
277
+ rc = SQLSpecialColumns( (SQLHSTMT) data->stmt_res->hstmt, SQL_BEST_ROWID, data->qualifier, data->qualifier_len,
278
+ data->owner, data->owner_len, data->table_name, data->table_name_len,
279
+ (SQLUSMALLINT)data->scope, SQL_NULLABLE );
280
+ #else
281
+ rc = SQLSpecialColumnsW( (SQLHSTMT) data->stmt_res->hstmt, SQL_BEST_ROWID, data->qualifier, data->qualifier_len,
282
+ data->owner, data->owner_len, data->table_name, data->table_name_len,
283
+ (SQLUSMALLINT)data->scope, SQL_NULLABLE );
284
+ #endif
225
285
 
226
286
  data->stmt_res->is_executing = 0;
227
287
 
@@ -236,8 +296,13 @@ int _ruby_ibm_db_SQLStatistics_helper(metadata_args *data) {
236
296
 
237
297
  data->stmt_res->is_executing = 1;
238
298
 
239
- rc = SQLStatistics( (SQLHSTMT) data->stmt_res->hstmt, data->qualifier, SQL_NTS, data->owner,
240
- SQL_NTS, data->table_name, SQL_NTS, (SQLUSMALLINT)data->unique, SQL_QUICK );
299
+ #ifndef UNICODE_SUPPORT_VERSION
300
+ rc = SQLStatistics( (SQLHSTMT) data->stmt_res->hstmt, data->qualifier, data->qualifier_len, data->owner,
301
+ data->owner_len, data->table_name, data->table_name_len, (SQLUSMALLINT)data->unique, SQL_QUICK );
302
+ #else
303
+ rc = SQLStatisticsW( (SQLHSTMT) data->stmt_res->hstmt, data->qualifier, data->qualifier_len, data->owner,
304
+ data->owner_len, data->table_name, data->table_name_len, (SQLUSMALLINT)data->unique, SQL_QUICK );
305
+ #endif
241
306
 
242
307
  data->stmt_res->is_executing = 0;
243
308
 
@@ -253,8 +318,13 @@ int _ruby_ibm_db_SQLTablePrivileges_helper(metadata_args *data) {
253
318
 
254
319
  data->stmt_res->is_executing = 1;
255
320
 
256
- rc = SQLTablePrivileges( (SQLHSTMT) data->stmt_res->hstmt, data->qualifier, SQL_NTS, data->owner,
257
- SQL_NTS, data->table_name, SQL_NTS );
321
+ #ifndef UNICODE_SUPPORT_VERSION
322
+ rc = SQLTablePrivileges( (SQLHSTMT) data->stmt_res->hstmt, data->qualifier, data->qualifier_len,
323
+ data->owner, data->owner_len, data->table_name, data->table_name_len );
324
+ #else
325
+ rc = SQLTablePrivilegesW( (SQLHSTMT) data->stmt_res->hstmt, data->qualifier, data->qualifier_len,
326
+ data->owner, data->owner_len, data->table_name, data->table_name_len );
327
+ #endif
258
328
 
259
329
  data->stmt_res->is_executing = 0;
260
330
 
@@ -270,8 +340,13 @@ int _ruby_ibm_db_SQLTables_helper(metadata_args *data) {
270
340
 
271
341
  data->stmt_res->is_executing = 1;
272
342
 
273
- rc = SQLTables( (SQLHSTMT) data->stmt_res->hstmt, data->qualifier, SQL_NTS, data->owner,
274
- SQL_NTS, data->table_name, SQL_NTS, data->table_type, SQL_NTS );
343
+ #ifndef UNICODE_SUPPORT_VERSION
344
+ rc = SQLTables( (SQLHSTMT) data->stmt_res->hstmt, data->qualifier, data->qualifier_len, data->owner,
345
+ data->owner_len, data->table_name, data->table_name_len, data->table_type, data->table_type_len );
346
+ #else
347
+ rc = SQLTablesW( (SQLHSTMT) data->stmt_res->hstmt, data->qualifier, data->qualifier_len, data->owner,
348
+ data->owner_len, data->table_name, data->table_name_len, data->table_type, data->table_type_len );
349
+ #endif
275
350
 
276
351
  data->stmt_res->is_executing = 0;
277
352
 
@@ -286,7 +361,11 @@ int _ruby_ibm_db_SQLExecDirect_helper(exec_cum_prepare_args *data) {
286
361
 
287
362
  data->stmt_res->is_executing = 1;
288
363
 
364
+ #ifndef UNICODE_SUPPORT_VERSION
289
365
  rc = SQLExecDirect( (SQLHSTMT) data->stmt_res->hstmt, data->stmt_string, (SQLINTEGER)data->stmt_string_len );
366
+ #else
367
+ rc = SQLExecDirectW( (SQLHSTMT) data->stmt_res->hstmt, data->stmt_string, (SQLINTEGER)data->stmt_string_len );
368
+ #endif
290
369
 
291
370
  data->stmt_res->is_executing = 0;
292
371
 
@@ -301,7 +380,11 @@ int _ruby_ibm_db_SQLPrepare_helper(exec_cum_prepare_args *data) {
301
380
 
302
381
  data->stmt_res->is_executing = 1;
303
382
 
383
+ #ifndef UNICODE_SUPPORT_VERSION
304
384
  rc = SQLPrepare( (SQLHSTMT) data->stmt_res->hstmt, data->stmt_string, (SQLINTEGER)data->stmt_string_len );
385
+ #else
386
+ rc = SQLPrepareW( (SQLHSTMT) data->stmt_res->hstmt, data->stmt_string, (SQLINTEGER)data->stmt_string_len );
387
+ #endif
305
388
 
306
389
  data->stmt_res->is_executing = 0;
307
390
 
@@ -533,29 +616,46 @@ int _ruby_ibm_db_SQLRowCount_helper(sql_row_count_args *data) {
533
616
  This function calls SQLGetInfo cli call to get general information about DBMS, which the app is connected to
534
617
  */
535
618
  int _ruby_ibm_db_SQLGetInfo_helper(get_info_args *data) {
619
+ #ifndef UNICODE_SUPPORT_VERSION
536
620
  return SQLGetInfo( data->conn_res->hdbc, data->infoType, data->infoValue, data->buff_length, data->out_length);
621
+ #else
622
+ return SQLGetInfoW( data->conn_res->hdbc, data->infoType, data->infoValue, data->buff_length, data->out_length);
623
+ #endif
537
624
  }
538
625
 
539
626
  /*
540
627
  This function calls SQLGetDiagRec cli call to get the current values of a diagnostic record that contains error
541
628
  */
542
629
  int _ruby_ibm_db_SQLGetDiagRec_helper(get_diagRec_args *data) {
630
+ #ifdef UNICODE_SUPPORT_VERSION
631
+ return SQLGetDiagRecW( data->hType, data->handle, data->recNum, data->SQLState, data->NativeErrorPtr,
632
+ data->msgText, data->buff_length, data->text_length_ptr );
633
+ #else
543
634
  return SQLGetDiagRec(data->hType, data->handle, data->recNum, data->SQLState, data->NativeErrorPtr,
544
635
  data->msgText, data->buff_length, data->text_length_ptr );
636
+ #endif
545
637
  }
546
638
 
547
639
  /*
548
640
  This function calls SQLSetStmtAttr cli call to set attributes related to a statement
549
641
  */
550
642
  int _ruby_ibm_db_SQLSetStmtAttr_helper(set_handle_attr_args *data) {
643
+ #ifndef UNICODE_SUPPORT_VERSION
551
644
  return SQLSetStmtAttr( (SQLHSTMT) *(data->handle), data->attribute, data->valuePtr, data->strLength );
645
+ #else
646
+ return SQLSetStmtAttrW( (SQLHSTMT) *(data->handle), data->attribute, data->valuePtr, data->strLength );
647
+ #endif
552
648
  }
553
649
 
554
650
  /*
555
651
  This function calls SQLSetConnectAttr cli call to set attributes that govern aspects of connections
556
652
  */
557
653
  int _ruby_ibm_db_SQLSetConnectAttr_helper(set_handle_attr_args *data) {
654
+ #ifndef UNICODE_SUPPORT_VERSION
558
655
  return SQLSetConnectAttr( (SQLHDBC) *(data->handle), data->attribute, data->valuePtr, data->strLength );
656
+ #else
657
+ return SQLSetConnectAttrW( (SQLHDBC) *(data->handle), data->attribute, data->valuePtr, data->strLength );
658
+ #endif
559
659
  }
560
660
 
561
661
  /*
@@ -567,6 +667,10 @@ int _ruby_ibm_db_SQLSetEnvAttr_helper(set_handle_attr_args *data) {
567
667
 
568
668
  /*
569
669
  This function calls SQLGetStmtAttr cli call to set an environment attribute
670
+
671
+ The unicode equivalent of SQLGetStmtAttr is not used because the attributes being retrieved currently are not of type char or binary (SQL_IS_INTEGER). If support for retrieving a string type is provided then use the SQLGetStmtAttrW function accordingly
672
+ In get_last_serial_id although we are retrieving a char type, it is converted back to an integer (atoi). The char to integer conversion function in unicode equivalent will be more complicated and is unnecessary for this case.
673
+
570
674
  */
571
675
  int _ruby_ibm_db_SQLGetStmtAttr_helper(get_handle_attr_args *data) {
572
676
  return SQLGetStmtAttr( (SQLHSTMT) *(data->handle), data->attribute, data->valuePtr,
@@ -577,8 +681,13 @@ int _ruby_ibm_db_SQLGetStmtAttr_helper(get_handle_attr_args *data) {
577
681
  This function calls SQLGetConnectAttr cli call to set an environment attribute
578
682
  */
579
683
  int _ruby_ibm_db_SQLGetConnectAttr_helper(get_handle_attr_args *data) {
684
+ #ifndef UNICODE_SUPPORT_VERSION
580
685
  return SQLGetConnectAttr( (SQLHDBC) *(data->handle), data->attribute, data->valuePtr,
581
686
  data->buff_length, data->out_length);
687
+ #else
688
+ return SQLGetConnectAttrW( (SQLHDBC) *(data->handle), data->attribute, data->valuePtr,
689
+ data->buff_length, data->out_length);
690
+ #endif
582
691
  }
583
692
 
584
693
  /*
@@ -31,7 +31,7 @@ typedef struct _param_cache_node {
31
31
  char *varname; /* bound variable name */
32
32
  SQLBIGINT ivalue; /* Temp storage value */
33
33
  SQLDOUBLE fvalue; /* Temp storage value */
34
- SQLCHAR *svalue; /* Temp storage value */
34
+ SQLPOINTER svalue; /* Temp storage value */
35
35
  struct _param_cache_node *next; /* Pointer to next node */
36
36
  } param_node;
37
37
 
@@ -49,8 +49,9 @@ typedef struct _conn_handle_struct {
49
49
 
50
50
  int errorType; /*Indicates Whether the error logged in ruby_error_msg is a statement error or connection error*/
51
51
 
52
- char *ruby_error_msg;
53
- char *ruby_error_state;
52
+ SQLPOINTER ruby_error_msg;
53
+ SQLPOINTER ruby_error_state;
54
+ SQLSMALLINT ruby_error_msg_len;
54
55
 
55
56
  } conn_handle;
56
57
 
@@ -59,7 +60,7 @@ typedef union {
59
60
  SQLDOUBLE d_val;
60
61
  SQLFLOAT f_val;
61
62
  SQLSMALLINT s_val;
62
- SQLCHAR *str_val;
63
+ SQLPOINTER str_val;
63
64
  } ibm_db_row_data_type;
64
65
 
65
66
  typedef struct {
@@ -68,7 +69,12 @@ typedef struct {
68
69
  } ibm_db_row_type;
69
70
 
70
71
  typedef struct _ibm_db_result_set_info_struct {
72
+ #ifdef UNICODE_SUPPORT_VERSION
73
+ SQLWCHAR *name;
74
+ long name_length;
75
+ #else
71
76
  SQLCHAR *name;
77
+ #endif
72
78
  SQLSMALLINT type;
73
79
  SQLUINTEGER size;
74
80
  SQLSMALLINT scale;
@@ -104,20 +110,27 @@ typedef struct _stmt_handle_struct {
104
110
  ibm_db_result_set_info *column_info;
105
111
  ibm_db_row_type *row_data;
106
112
 
107
- char *ruby_stmt_err_msg;
108
- char *ruby_stmt_err_state;
113
+ SQLPOINTER ruby_stmt_err_msg;
114
+ SQLPOINTER ruby_stmt_err_state;
115
+ SQLSMALLINT ruby_stmt_err_msg_len;
109
116
  } stmt_handle;
110
117
 
111
118
  /*
112
119
  Structure holding the data to be passed to SQLConnect or SQLDriverConnect CLI call
113
120
  */
114
121
  typedef struct _ibm_db_connect_args_struct {
115
- char *database;
116
- char *uid;
117
- char *password;
118
- long database_len;
119
- long uid_len;
120
- long password_len;
122
+ #ifdef UNICODE_SUPPORT_VERSION
123
+ SQLWCHAR *database;
124
+ SQLWCHAR *uid;
125
+ SQLWCHAR *password;
126
+ #else
127
+ SQLCHAR *database;
128
+ SQLCHAR *uid;
129
+ SQLCHAR *password;
130
+ #endif
131
+ SQLSMALLINT database_len;
132
+ SQLSMALLINT uid_len;
133
+ SQLSMALLINT password_len;
121
134
  int ctlg_conn; /*Indicates if the connection is a cataloged connection or not*/
122
135
  SQLHANDLE *hdbc;
123
136
  } connect_args;
@@ -158,12 +171,27 @@ typedef struct _ibm_db_describecol_args_struct {
158
171
  */
159
172
  typedef struct _ibm_db_metadata_args_struct {
160
173
  stmt_handle *stmt_res;
174
+ #ifdef UNICODE_SUPPORT_VERSION
175
+ SQLWCHAR *qualifier;
176
+ SQLWCHAR *owner;
177
+ SQLWCHAR *table_name;
178
+ SQLWCHAR *proc_name; /*Used for call SQLProcedureColumns*/
179
+ SQLWCHAR *column_name;
180
+ SQLWCHAR *table_type;
181
+ #else
161
182
  SQLCHAR *qualifier;
162
183
  SQLCHAR *owner;
163
184
  SQLCHAR *table_name;
164
185
  SQLCHAR *proc_name; /*Used for call SQLProcedureColumns*/
165
186
  SQLCHAR *column_name;
166
187
  SQLCHAR *table_type;
188
+ #endif
189
+ SQLSMALLINT qualifier_len;
190
+ SQLSMALLINT owner_len;
191
+ SQLSMALLINT table_name_len;
192
+ SQLSMALLINT proc_name_len; /*Used for call SQLProcedureColumns*/
193
+ SQLSMALLINT column_name_len;
194
+ SQLSMALLINT table_type_len;
167
195
  int scope; /*Used in SQLSpecialColumns To determine the scope of the unique row identifier*/
168
196
  int unique; /*Used in SQLStatistics to determine if only unique indexes are to be fetched or all*/
169
197
 
@@ -174,7 +202,11 @@ typedef struct _ibm_db_metadata_args_struct {
174
202
  */
175
203
  typedef struct _ibm_db_exec_direct_args_struct {
176
204
  stmt_handle *stmt_res;
205
+ #ifdef UNICODE_SUPPORT_VERSION
206
+ SQLWCHAR *stmt_string;
207
+ #else
177
208
  SQLCHAR *stmt_string;
209
+ #endif
178
210
  long stmt_string_len;
179
211
  } exec_cum_prepare_args;
180
212
 
@@ -240,7 +272,7 @@ typedef struct _ibm_db_get_data_args_struct {
240
272
  stmt_handle *stmt_res;
241
273
  SQLSMALLINT col_num;
242
274
  SQLSMALLINT targetType;
243
- SQLPOINTER *buff;
275
+ SQLPOINTER buff;
244
276
  SQLLEN buff_length;
245
277
  SQLLEN *out_length;
246
278
  } get_data_args;
@@ -336,9 +368,9 @@ typedef struct _ibm_db_get_diagRec_struct {
336
368
  SQLSMALLINT hType;
337
369
  SQLHANDLE handle;
338
370
  SQLSMALLINT recNum;
339
- SQLCHAR *SQLState;
371
+ SQLPOINTER SQLState;
372
+ SQLPOINTER msgText;
340
373
  SQLINTEGER *NativeErrorPtr;
341
- SQLCHAR *msgText;
342
374
  SQLSMALLINT buff_length;
343
375
  SQLSMALLINT *text_length_ptr;
344
376
  } get_diagRec_args;