ibm_db 2.0.0-mswin32 → 2.5.0-mswin32
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGES +5 -0
- data/README +8 -2
- data/ext/extconf.rb +2 -0
- data/ext/ibm_db.c +2288 -577
- data/ext/ruby_ibm_db.h +12 -4
- data/ext/ruby_ibm_db_cli.c +130 -21
- data/ext/ruby_ibm_db_cli.h +47 -15
- data/lib/active_record/connection_adapters/ibm_db_adapter.rb +1 -7
- data/lib/active_record/connection_adapters/ibm_db_pstmt.rb +3 -1
- data/lib/mswin32/ibm_db.so +0 -0
- metadata +2 -2
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
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
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 */
|
data/ext/ruby_ibm_db_cli.c
CHANGED
@@ -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
|
-
|
123
|
-
|
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
|
-
|
140
|
-
|
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
|
-
|
156
|
-
|
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
|
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
|
-
|
172
|
-
|
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
|
-
|
190
|
-
|
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
|
-
|
207
|
-
|
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
|
-
|
224
|
-
|
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
|
-
|
240
|
-
|
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
|
-
|
257
|
-
|
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
|
-
|
274
|
-
|
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
|
/*
|
data/ext/ruby_ibm_db_cli.h
CHANGED
@@ -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
|
-
|
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
|
-
|
53
|
-
|
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
|
-
|
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
|
-
|
108
|
-
|
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
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
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
|
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
|
-
|
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;
|