ruby-informix 0.7.0 → 0.7.1
Sign up to get free protection for your applications and to get access to all the features.
- data/Changelog +11 -0
- data/ext/informixc.c +498 -483
- data/ext/informixc.ec +93 -65
- metadata +2 -2
data/Changelog
CHANGED
@@ -1,3 +1,14 @@
|
|
1
|
+
0.7.1 04/02/2008
|
2
|
+
------------------
|
3
|
+
Bugs fixed:
|
4
|
+
* The name of Informix resources were not unique. This problem was
|
5
|
+
introduced in 0.7.0. It doesn't affect previous versions.
|
6
|
+
* The documentation insisted that Database#execute is an alias for
|
7
|
+
Database#immediate.
|
8
|
+
* Cursor for Database#columns was prepared and declared every time it was
|
9
|
+
called.
|
10
|
+
|
11
|
+
|
1
12
|
0.7.0 03/31/2008
|
2
13
|
------------------
|
3
14
|
New features:
|
data/ext/informixc.c
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
#include <sqlhdr.h>
|
2
2
|
#include <sqliapi.h>
|
3
3
|
#line 1 "informixc.ec"
|
4
|
-
/* $Id: informixc.ec,v 1.
|
4
|
+
/* $Id: informixc.ec,v 1.28 2008/04/02 19:28:06 santana Exp $ */
|
5
5
|
/*
|
6
|
-
* Copyright (c) 2006-2008, Gerardo Santana Gomez Garrido <gerardo.santana@gmail.com>
|
6
|
+
* Copyright (c) 2006-2008, Gerardo Santana Gomez Garrido <gerardo.santana@gmail.com>
|
7
7
|
* All rights reserved.
|
8
8
|
*
|
9
9
|
* Redistribution and use in source and binary forms, with or without
|
@@ -31,7 +31,7 @@
|
|
31
31
|
* POSSIBILITY OF SUCH DAMAGE.
|
32
32
|
*/
|
33
33
|
|
34
|
-
static const char rcsid[] = "$Id: informixc.ec,v 1.
|
34
|
+
static const char rcsid[] = "$Id: informixc.ec,v 1.28 2008/04/02 19:28:06 santana Exp $";
|
35
35
|
|
36
36
|
#include "ruby.h"
|
37
37
|
|
@@ -72,6 +72,13 @@ static VALUE sym_params;
|
|
72
72
|
|
73
73
|
#define IDSIZE 30
|
74
74
|
|
75
|
+
typedef struct {
|
76
|
+
char database_id[IDSIZE];
|
77
|
+
char cursor_id[IDSIZE];
|
78
|
+
char stmt_id[IDSIZE];
|
79
|
+
long idcount;
|
80
|
+
} database_t;
|
81
|
+
|
75
82
|
typedef struct {
|
76
83
|
short is_select, is_open;
|
77
84
|
struct sqlda daInput, *daOutput;
|
@@ -162,8 +169,8 @@ rbifx_ext_exception(VALUE exception_class)
|
|
162
169
|
/*
|
163
170
|
* EXEC SQL BEGIN DECLARE SECTION;
|
164
171
|
*/
|
165
|
-
#line
|
166
|
-
#line
|
172
|
+
#line 166 "informixc.ec"
|
173
|
+
#line 167 "informixc.ec"
|
167
174
|
int4 sql_code;
|
168
175
|
char sql_state[6];
|
169
176
|
char class_origin_val[256];
|
@@ -178,7 +185,7 @@ mint i;
|
|
178
185
|
/*
|
179
186
|
* EXEC SQL END DECLARE SECTION;
|
180
187
|
*/
|
181
|
-
#line
|
188
|
+
#line 181 "informixc.ec"
|
182
189
|
|
183
190
|
|
184
191
|
new_instance = rb_class_new_instance(0, 0, exception_class);
|
@@ -198,19 +205,19 @@ mint i;
|
|
198
205
|
/*
|
199
206
|
* EXEC SQL GET DIAGNOSTICS :exc_count = NUMBER;
|
200
207
|
*/
|
201
|
-
#line
|
208
|
+
#line 197 "informixc.ec"
|
202
209
|
{
|
203
|
-
#line
|
210
|
+
#line 197 "informixc.ec"
|
204
211
|
static ifx_hostvar_t _SQhtab[] =
|
205
212
|
{
|
206
213
|
{ 0, 1, 102, sizeof(exc_count), 0, 0, 0, 0 },
|
207
214
|
{ 0, 0, 0, 0, 0, 0, 0, 0 }
|
208
|
-
#line
|
215
|
+
#line 197 "informixc.ec"
|
209
216
|
};
|
210
217
|
_SQhtab[0].hostaddr = (char *)&exc_count;
|
211
|
-
#line
|
218
|
+
#line 197 "informixc.ec"
|
212
219
|
sqli_diag_get(ESQLINTVERSION, _SQhtab, -1);
|
213
|
-
#line
|
220
|
+
#line 197 "informixc.ec"
|
214
221
|
}
|
215
222
|
|
216
223
|
if (exc_count == 0) { /* Something went wrong */
|
@@ -241,9 +248,9 @@ mint i;
|
|
241
248
|
* :connection_name = CONNECTION_NAME
|
242
249
|
* ;
|
243
250
|
*/
|
244
|
-
#line
|
251
|
+
#line 215 "informixc.ec"
|
245
252
|
{
|
246
|
-
#line
|
253
|
+
#line 224 "informixc.ec"
|
247
254
|
static ifx_hostvar_t _SQhtab[] =
|
248
255
|
{
|
249
256
|
{ 0, 11, 103, sizeof(sql_code), 0, 0, 0, 0 },
|
@@ -255,7 +262,7 @@ mint i;
|
|
255
262
|
{ 0, 9, 100, 256, 0, 0, 0, 0 },
|
256
263
|
{ 0, 10, 100, 256, 0, 0, 0, 0 },
|
257
264
|
{ 0, 0, 0, 0, 0, 0, 0, 0 }
|
258
|
-
#line
|
265
|
+
#line 224 "informixc.ec"
|
259
266
|
};
|
260
267
|
_SQhtab[0].hostaddr = (char *)&sql_code;
|
261
268
|
_SQhtab[1].hostaddr = (sql_state);
|
@@ -265,9 +272,9 @@ mint i;
|
|
265
272
|
_SQhtab[5].hostaddr = (char *)&message_len;
|
266
273
|
_SQhtab[6].hostaddr = (server_name);
|
267
274
|
_SQhtab[7].hostaddr = (connection_name);
|
268
|
-
#line
|
275
|
+
#line 224 "informixc.ec"
|
269
276
|
sqli_diag_get(ESQLINTVERSION, _SQhtab, sql_exception_number);
|
270
|
-
#line
|
277
|
+
#line 224 "informixc.ec"
|
271
278
|
}
|
272
279
|
|
273
280
|
TRIM_BLANKS(class_origin_val);
|
@@ -344,13 +351,13 @@ rb_slobstat_initialize(VALUE self, VALUE slob)
|
|
344
351
|
/*
|
345
352
|
* EXEC SQL begin declare section;
|
346
353
|
*/
|
347
|
-
#line
|
348
|
-
#line
|
354
|
+
#line 297 "informixc.ec"
|
355
|
+
#line 298 "informixc.ec"
|
349
356
|
char *did;
|
350
357
|
/*
|
351
358
|
* EXEC SQL end declare section;
|
352
359
|
*/
|
353
|
-
#line
|
360
|
+
#line 299 "informixc.ec"
|
354
361
|
|
355
362
|
|
356
363
|
Data_Get_Struct(slob, slob_t, sb);
|
@@ -364,11 +371,11 @@ rb_slobstat_initialize(VALUE self, VALUE slob)
|
|
364
371
|
/*
|
365
372
|
* EXEC SQL set connection :did;
|
366
373
|
*/
|
367
|
-
#line
|
374
|
+
#line 309 "informixc.ec"
|
368
375
|
{
|
369
|
-
#line
|
376
|
+
#line 309 "informixc.ec"
|
370
377
|
sqli_connect_set(0, did, 0);
|
371
|
-
#line
|
378
|
+
#line 309 "informixc.ec"
|
372
379
|
}
|
373
380
|
if (SQLCODE < 0)
|
374
381
|
raise_ifx_extended();
|
@@ -515,24 +522,24 @@ slob_free(slob_t *slob)
|
|
515
522
|
/*
|
516
523
|
* EXEC SQL begin declare section;
|
517
524
|
*/
|
518
|
-
#line
|
519
|
-
#line
|
525
|
+
#line 452 "informixc.ec"
|
526
|
+
#line 453 "informixc.ec"
|
520
527
|
char *did;
|
521
528
|
/*
|
522
529
|
* EXEC SQL end declare section;
|
523
530
|
*/
|
524
|
-
#line
|
531
|
+
#line 454 "informixc.ec"
|
525
532
|
|
526
533
|
|
527
534
|
did = slob->database_id;
|
528
535
|
/*
|
529
536
|
* EXEC SQL set connection :did;
|
530
537
|
*/
|
531
|
-
#line
|
538
|
+
#line 457 "informixc.ec"
|
532
539
|
{
|
533
|
-
#line
|
540
|
+
#line 457 "informixc.ec"
|
534
541
|
sqli_connect_set(0, did, 0);
|
535
|
-
#line
|
542
|
+
#line 457 "informixc.ec"
|
536
543
|
}
|
537
544
|
if (SQLCODE >= 0)
|
538
545
|
ifx_lo_close(slob->fd);
|
@@ -570,13 +577,13 @@ rb_slob_initialize(int argc, VALUE *argv, VALUE self)
|
|
570
577
|
/*
|
571
578
|
* EXEC SQL begin declare section;
|
572
579
|
*/
|
573
|
-
#line
|
574
|
-
#line
|
580
|
+
#line 491 "informixc.ec"
|
581
|
+
#line 492 "informixc.ec"
|
575
582
|
char *did;
|
576
583
|
/*
|
577
584
|
* EXEC SQL end declare section;
|
578
585
|
*/
|
579
|
-
#line
|
586
|
+
#line 493 "informixc.ec"
|
580
587
|
|
581
588
|
|
582
589
|
rb_scan_args(argc, argv, "12", &db, &type, &options);
|
@@ -585,11 +592,11 @@ rb_slob_initialize(int argc, VALUE *argv, VALUE self)
|
|
585
592
|
/*
|
586
593
|
* EXEC SQL set connection :did;
|
587
594
|
*/
|
588
|
-
#line
|
595
|
+
#line 498 "informixc.ec"
|
589
596
|
{
|
590
|
-
#line
|
597
|
+
#line 498 "informixc.ec"
|
591
598
|
sqli_connect_set(0, did, 0);
|
592
|
-
#line
|
599
|
+
#line 498 "informixc.ec"
|
593
600
|
}
|
594
601
|
if (SQLCODE < 0)
|
595
602
|
raise_ifx_extended();
|
@@ -697,13 +704,13 @@ rb_slob_open(int argc, VALUE *argv, VALUE self)
|
|
697
704
|
/*
|
698
705
|
* EXEC SQL begin declare section;
|
699
706
|
*/
|
700
|
-
#line
|
701
|
-
#line
|
707
|
+
#line 602 "informixc.ec"
|
708
|
+
#line 603 "informixc.ec"
|
702
709
|
char *did;
|
703
710
|
/*
|
704
711
|
* EXEC SQL end declare section;
|
705
712
|
*/
|
706
|
-
#line
|
713
|
+
#line 604 "informixc.ec"
|
707
714
|
|
708
715
|
|
709
716
|
Data_Get_Struct(self, slob_t, slob);
|
@@ -715,11 +722,11 @@ rb_slob_open(int argc, VALUE *argv, VALUE self)
|
|
715
722
|
/*
|
716
723
|
* EXEC SQL set connection :did;
|
717
724
|
*/
|
718
|
-
#line
|
725
|
+
#line 612 "informixc.ec"
|
719
726
|
{
|
720
|
-
#line
|
727
|
+
#line 612 "informixc.ec"
|
721
728
|
sqli_connect_set(0, did, 0);
|
722
|
-
#line
|
729
|
+
#line 612 "informixc.ec"
|
723
730
|
}
|
724
731
|
if (SQLCODE < 0)
|
725
732
|
raise_ifx_extended();
|
@@ -750,24 +757,24 @@ rb_slob_close(VALUE self)
|
|
750
757
|
/*
|
751
758
|
* EXEC SQL begin declare section;
|
752
759
|
*/
|
753
|
-
#line
|
754
|
-
#line
|
760
|
+
#line 639 "informixc.ec"
|
761
|
+
#line 640 "informixc.ec"
|
755
762
|
char *did;
|
756
763
|
/*
|
757
764
|
* EXEC SQL end declare section;
|
758
765
|
*/
|
759
|
-
#line
|
766
|
+
#line 641 "informixc.ec"
|
760
767
|
|
761
768
|
|
762
769
|
did = slob->database_id;
|
763
770
|
/*
|
764
771
|
* EXEC SQL set connection :did;
|
765
772
|
*/
|
766
|
-
#line
|
773
|
+
#line 644 "informixc.ec"
|
767
774
|
{
|
768
|
-
#line
|
775
|
+
#line 644 "informixc.ec"
|
769
776
|
sqli_connect_set(0, did, 0);
|
770
|
-
#line
|
777
|
+
#line 644 "informixc.ec"
|
771
778
|
}
|
772
779
|
if (SQLCODE < 0)
|
773
780
|
return self;
|
@@ -798,13 +805,13 @@ rb_slob_read(VALUE self, VALUE nbytes)
|
|
798
805
|
/*
|
799
806
|
* EXEC SQL begin declare section;
|
800
807
|
*/
|
801
|
-
#line
|
802
|
-
#line
|
808
|
+
#line 671 "informixc.ec"
|
809
|
+
#line 672 "informixc.ec"
|
803
810
|
char *did;
|
804
811
|
/*
|
805
812
|
* EXEC SQL end declare section;
|
806
813
|
*/
|
807
|
-
#line
|
814
|
+
#line 673 "informixc.ec"
|
808
815
|
|
809
816
|
|
810
817
|
|
@@ -817,11 +824,11 @@ rb_slob_read(VALUE self, VALUE nbytes)
|
|
817
824
|
/*
|
818
825
|
* EXEC SQL set connection :did;
|
819
826
|
*/
|
820
|
-
#line
|
827
|
+
#line 682 "informixc.ec"
|
821
828
|
{
|
822
|
-
#line
|
829
|
+
#line 682 "informixc.ec"
|
823
830
|
sqli_connect_set(0, did, 0);
|
824
|
-
#line
|
831
|
+
#line 682 "informixc.ec"
|
825
832
|
}
|
826
833
|
if (SQLCODE < 0)
|
827
834
|
raise_ifx_extended();
|
@@ -861,13 +868,13 @@ rb_slob_write(VALUE self, VALUE data)
|
|
861
868
|
/*
|
862
869
|
* EXEC SQL begin declare section;
|
863
870
|
*/
|
864
|
-
#line
|
865
|
-
#line
|
871
|
+
#line 718 "informixc.ec"
|
872
|
+
#line 719 "informixc.ec"
|
866
873
|
char *did;
|
867
874
|
/*
|
868
875
|
* EXEC SQL end declare section;
|
869
876
|
*/
|
870
|
-
#line
|
877
|
+
#line 720 "informixc.ec"
|
871
878
|
|
872
879
|
|
873
880
|
Data_Get_Struct(self, slob_t, slob);
|
@@ -879,11 +886,11 @@ rb_slob_write(VALUE self, VALUE data)
|
|
879
886
|
/*
|
880
887
|
* EXEC SQL set connection :did;
|
881
888
|
*/
|
882
|
-
#line
|
889
|
+
#line 728 "informixc.ec"
|
883
890
|
{
|
884
|
-
#line
|
891
|
+
#line 728 "informixc.ec"
|
885
892
|
sqli_connect_set(0, did, 0);
|
886
|
-
#line
|
893
|
+
#line 728 "informixc.ec"
|
887
894
|
}
|
888
895
|
if (SQLCODE < 0)
|
889
896
|
raise_ifx_extended();
|
@@ -945,13 +952,13 @@ rb_slob_seek(VALUE self, VALUE offset, VALUE whence)
|
|
945
952
|
/*
|
946
953
|
* EXEC SQL begin declare section;
|
947
954
|
*/
|
948
|
-
#line
|
949
|
-
#line
|
955
|
+
#line 786 "informixc.ec"
|
956
|
+
#line 787 "informixc.ec"
|
950
957
|
char *did;
|
951
958
|
/*
|
952
959
|
* EXEC SQL end declare section;
|
953
960
|
*/
|
954
|
-
#line
|
961
|
+
#line 788 "informixc.ec"
|
955
962
|
|
956
963
|
|
957
964
|
Data_Get_Struct(self, slob_t, slob);
|
@@ -963,11 +970,11 @@ rb_slob_seek(VALUE self, VALUE offset, VALUE whence)
|
|
963
970
|
/*
|
964
971
|
* EXEC SQL set connection :did;
|
965
972
|
*/
|
966
|
-
#line
|
973
|
+
#line 796 "informixc.ec"
|
967
974
|
{
|
968
|
-
#line
|
975
|
+
#line 796 "informixc.ec"
|
969
976
|
sqli_connect_set(0, did, 0);
|
970
|
-
#line
|
977
|
+
#line 796 "informixc.ec"
|
971
978
|
}
|
972
979
|
if (SQLCODE < 0)
|
973
980
|
raise_ifx_extended();
|
@@ -1023,13 +1030,13 @@ rb_slob_tell(VALUE self)
|
|
1023
1030
|
/*
|
1024
1031
|
* EXEC SQL begin declare section;
|
1025
1032
|
*/
|
1026
|
-
#line
|
1027
|
-
#line
|
1033
|
+
#line 848 "informixc.ec"
|
1034
|
+
#line 849 "informixc.ec"
|
1028
1035
|
char *did;
|
1029
1036
|
/*
|
1030
1037
|
* EXEC SQL end declare section;
|
1031
1038
|
*/
|
1032
|
-
#line
|
1039
|
+
#line 850 "informixc.ec"
|
1033
1040
|
|
1034
1041
|
|
1035
1042
|
Data_Get_Struct(self, slob_t, slob);
|
@@ -1041,11 +1048,11 @@ rb_slob_tell(VALUE self)
|
|
1041
1048
|
/*
|
1042
1049
|
* EXEC SQL set connection :did;
|
1043
1050
|
*/
|
1044
|
-
#line
|
1051
|
+
#line 858 "informixc.ec"
|
1045
1052
|
{
|
1046
|
-
#line
|
1053
|
+
#line 858 "informixc.ec"
|
1047
1054
|
sqli_connect_set(0, did, 0);
|
1048
|
-
#line
|
1055
|
+
#line 858 "informixc.ec"
|
1049
1056
|
}
|
1050
1057
|
if (SQLCODE < 0)
|
1051
1058
|
raise_ifx_extended();
|
@@ -1076,13 +1083,13 @@ rb_slob_truncate(VALUE self, VALUE offset)
|
|
1076
1083
|
/*
|
1077
1084
|
* EXEC SQL begin declare section;
|
1078
1085
|
*/
|
1079
|
-
#line
|
1080
|
-
#line
|
1086
|
+
#line 885 "informixc.ec"
|
1087
|
+
#line 886 "informixc.ec"
|
1081
1088
|
char *did;
|
1082
1089
|
/*
|
1083
1090
|
* EXEC SQL end declare section;
|
1084
1091
|
*/
|
1085
|
-
#line
|
1092
|
+
#line 887 "informixc.ec"
|
1086
1093
|
|
1087
1094
|
|
1088
1095
|
Data_Get_Struct(self, slob_t, slob);
|
@@ -1094,11 +1101,11 @@ rb_slob_truncate(VALUE self, VALUE offset)
|
|
1094
1101
|
/*
|
1095
1102
|
* EXEC SQL set connection :did;
|
1096
1103
|
*/
|
1097
|
-
#line
|
1104
|
+
#line 895 "informixc.ec"
|
1098
1105
|
{
|
1099
|
-
#line
|
1106
|
+
#line 895 "informixc.ec"
|
1100
1107
|
sqli_connect_set(0, did, 0);
|
1101
|
-
#line
|
1108
|
+
#line 895 "informixc.ec"
|
1102
1109
|
}
|
1103
1110
|
if (SQLCODE < 0)
|
1104
1111
|
raise_ifx_extended();
|
@@ -1148,13 +1155,13 @@ rb_slob_lock(VALUE self, VALUE offset, VALUE whence, VALUE range, VALUE mode)
|
|
1148
1155
|
/*
|
1149
1156
|
* EXEC SQL begin declare section;
|
1150
1157
|
*/
|
1151
|
-
#line
|
1152
|
-
#line
|
1158
|
+
#line 941 "informixc.ec"
|
1159
|
+
#line 942 "informixc.ec"
|
1153
1160
|
char *did;
|
1154
1161
|
/*
|
1155
1162
|
* EXEC SQL end declare section;
|
1156
1163
|
*/
|
1157
|
-
#line
|
1164
|
+
#line 943 "informixc.ec"
|
1158
1165
|
|
1159
1166
|
|
1160
1167
|
Data_Get_Struct(self, slob_t, slob);
|
@@ -1166,11 +1173,11 @@ rb_slob_lock(VALUE self, VALUE offset, VALUE whence, VALUE range, VALUE mode)
|
|
1166
1173
|
/*
|
1167
1174
|
* EXEC SQL set connection :did;
|
1168
1175
|
*/
|
1169
|
-
#line
|
1176
|
+
#line 951 "informixc.ec"
|
1170
1177
|
{
|
1171
|
-
#line
|
1178
|
+
#line 951 "informixc.ec"
|
1172
1179
|
sqli_connect_set(0, did, 0);
|
1173
|
-
#line
|
1180
|
+
#line 951 "informixc.ec"
|
1174
1181
|
}
|
1175
1182
|
if (SQLCODE < 0)
|
1176
1183
|
raise_ifx_extended();
|
@@ -1208,13 +1215,13 @@ rb_slob_unlock(VALUE self, VALUE offset, VALUE whence, VALUE range)
|
|
1208
1215
|
/*
|
1209
1216
|
* EXEC SQL begin declare section;
|
1210
1217
|
*/
|
1211
|
-
#line
|
1212
|
-
#line
|
1218
|
+
#line 985 "informixc.ec"
|
1219
|
+
#line 986 "informixc.ec"
|
1213
1220
|
char *did;
|
1214
1221
|
/*
|
1215
1222
|
* EXEC SQL end declare section;
|
1216
1223
|
*/
|
1217
|
-
#line
|
1224
|
+
#line 987 "informixc.ec"
|
1218
1225
|
|
1219
1226
|
|
1220
1227
|
Data_Get_Struct(self, slob_t, slob);
|
@@ -1226,11 +1233,11 @@ rb_slob_unlock(VALUE self, VALUE offset, VALUE whence, VALUE range)
|
|
1226
1233
|
/*
|
1227
1234
|
* EXEC SQL set connection :did;
|
1228
1235
|
*/
|
1229
|
-
#line
|
1236
|
+
#line 995 "informixc.ec"
|
1230
1237
|
{
|
1231
|
-
#line
|
1238
|
+
#line 995 "informixc.ec"
|
1232
1239
|
sqli_connect_set(0, did, 0);
|
1233
|
-
#line
|
1240
|
+
#line 995 "informixc.ec"
|
1234
1241
|
}
|
1235
1242
|
if (SQLCODE < 0)
|
1236
1243
|
raise_ifx_extended();
|
@@ -1265,13 +1272,13 @@ slob_specget(VALUE self, slob_option_t option)
|
|
1265
1272
|
/*
|
1266
1273
|
* EXEC SQL begin declare section;
|
1267
1274
|
*/
|
1268
|
-
#line
|
1269
|
-
#line
|
1275
|
+
#line 1026 "informixc.ec"
|
1276
|
+
#line 1027 "informixc.ec"
|
1270
1277
|
char *did;
|
1271
1278
|
/*
|
1272
1279
|
* EXEC SQL end declare section;
|
1273
1280
|
*/
|
1274
|
-
#line
|
1281
|
+
#line 1028 "informixc.ec"
|
1275
1282
|
|
1276
1283
|
|
1277
1284
|
Data_Get_Struct(self, slob_t, slob);
|
@@ -1283,11 +1290,11 @@ slob_specget(VALUE self, slob_option_t option)
|
|
1283
1290
|
/*
|
1284
1291
|
* EXEC SQL set connection :did;
|
1285
1292
|
*/
|
1286
|
-
#line
|
1293
|
+
#line 1036 "informixc.ec"
|
1287
1294
|
{
|
1288
|
-
#line
|
1295
|
+
#line 1036 "informixc.ec"
|
1289
1296
|
sqli_connect_set(0, did, 0);
|
1290
|
-
#line
|
1297
|
+
#line 1036 "informixc.ec"
|
1291
1298
|
}
|
1292
1299
|
if (SQLCODE < 0)
|
1293
1300
|
raise_ifx_extended();
|
@@ -1351,13 +1358,13 @@ slob_specset(VALUE self, slob_option_t option, VALUE value)
|
|
1351
1358
|
/*
|
1352
1359
|
* EXEC SQL begin declare section;
|
1353
1360
|
*/
|
1354
|
-
#line
|
1355
|
-
#line
|
1361
|
+
#line 1096 "informixc.ec"
|
1362
|
+
#line 1097 "informixc.ec"
|
1356
1363
|
char *did;
|
1357
1364
|
/*
|
1358
1365
|
* EXEC SQL end declare section;
|
1359
1366
|
*/
|
1360
|
-
#line
|
1367
|
+
#line 1098 "informixc.ec"
|
1361
1368
|
|
1362
1369
|
|
1363
1370
|
Data_Get_Struct(self, slob_t, slob);
|
@@ -1369,11 +1376,11 @@ slob_specset(VALUE self, slob_option_t option, VALUE value)
|
|
1369
1376
|
/*
|
1370
1377
|
* EXEC SQL set connection :did;
|
1371
1378
|
*/
|
1372
|
-
#line
|
1379
|
+
#line 1106 "informixc.ec"
|
1373
1380
|
{
|
1374
|
-
#line
|
1381
|
+
#line 1106 "informixc.ec"
|
1375
1382
|
sqli_connect_set(0, did, 0);
|
1376
|
-
#line
|
1383
|
+
#line 1106 "informixc.ec"
|
1377
1384
|
}
|
1378
1385
|
if (SQLCODE < 0)
|
1379
1386
|
raise_ifx_extended();
|
@@ -1509,13 +1516,13 @@ slob_stat(VALUE self, slob_stat_t stat)
|
|
1509
1516
|
/*
|
1510
1517
|
* EXEC SQL begin declare section;
|
1511
1518
|
*/
|
1512
|
-
#line
|
1513
|
-
#line
|
1519
|
+
#line 1238 "informixc.ec"
|
1520
|
+
#line 1239 "informixc.ec"
|
1514
1521
|
char *did;
|
1515
1522
|
/*
|
1516
1523
|
* EXEC SQL end declare section;
|
1517
1524
|
*/
|
1518
|
-
#line
|
1525
|
+
#line 1240 "informixc.ec"
|
1519
1526
|
|
1520
1527
|
|
1521
1528
|
Data_Get_Struct(self, slob_t, slob);
|
@@ -1528,11 +1535,11 @@ slob_stat(VALUE self, slob_stat_t stat)
|
|
1528
1535
|
/*
|
1529
1536
|
* EXEC SQL set connection :did;
|
1530
1537
|
*/
|
1531
|
-
#line
|
1538
|
+
#line 1249 "informixc.ec"
|
1532
1539
|
{
|
1533
|
-
#line
|
1540
|
+
#line 1249 "informixc.ec"
|
1534
1541
|
sqli_connect_set(0, did, 0);
|
1535
|
-
#line
|
1542
|
+
#line 1249 "informixc.ec"
|
1536
1543
|
}
|
1537
1544
|
if (SQLCODE < 0)
|
1538
1545
|
raise_ifx_extended();
|
@@ -2220,27 +2227,29 @@ make_result(cursor_t *c, VALUE record)
|
|
2220
2227
|
static void
|
2221
2228
|
database_free(void *p)
|
2222
2229
|
{
|
2230
|
+
database_t *dbt;
|
2223
2231
|
/*
|
2224
2232
|
* EXEC SQL begin declare section;
|
2225
2233
|
*/
|
2226
|
-
#line
|
2227
|
-
#line
|
2228
|
-
char *
|
2234
|
+
#line 1937 "informixc.ec"
|
2235
|
+
#line 1938 "informixc.ec"
|
2236
|
+
char *id;
|
2229
2237
|
/*
|
2230
2238
|
* EXEC SQL end declare section;
|
2231
2239
|
*/
|
2232
|
-
#line
|
2240
|
+
#line 1939 "informixc.ec"
|
2233
2241
|
|
2234
2242
|
|
2235
|
-
|
2243
|
+
dbt = p;
|
2244
|
+
id = dbt->database_id;
|
2236
2245
|
/*
|
2237
|
-
* EXEC SQL disconnect :
|
2246
|
+
* EXEC SQL disconnect :id;
|
2238
2247
|
*/
|
2239
|
-
#line
|
2248
|
+
#line 1943 "informixc.ec"
|
2240
2249
|
{
|
2241
|
-
#line
|
2242
|
-
sqli_connect_close(0,
|
2243
|
-
#line
|
2250
|
+
#line 1943 "informixc.ec"
|
2251
|
+
sqli_connect_close(0, id, 0, 0);
|
2252
|
+
#line 1943 "informixc.ec"
|
2244
2253
|
}
|
2245
2254
|
xfree(p);
|
2246
2255
|
}
|
@@ -2248,11 +2257,12 @@ database_free(void *p)
|
|
2248
2257
|
static VALUE
|
2249
2258
|
database_alloc(VALUE klass)
|
2250
2259
|
{
|
2251
|
-
|
2260
|
+
database_t *dbt;
|
2252
2261
|
|
2253
|
-
|
2254
|
-
|
2255
|
-
|
2262
|
+
dbt = ALLOC(database_t);
|
2263
|
+
dbt->database_id[0] = dbt->cursor_id[0] = dbt->stmt_id[0] = 0;
|
2264
|
+
dbt->idcount = 0;
|
2265
|
+
return Data_Wrap_Struct(klass, 0, database_free, dbt);
|
2256
2266
|
}
|
2257
2267
|
|
2258
2268
|
/* :nodoc: */
|
@@ -2261,13 +2271,15 @@ rb_database_initialize(int argc, VALUE *argv, VALUE self)
|
|
2261
2271
|
{
|
2262
2272
|
VALUE arg[3], version;
|
2263
2273
|
VALUE server_type, major, minor, os, level, full;
|
2274
|
+
database_t *dbt;
|
2264
2275
|
|
2265
2276
|
/*
|
2266
2277
|
* EXEC SQL begin declare section;
|
2267
2278
|
*/
|
2268
|
-
#line
|
2269
|
-
#line
|
2270
|
-
char *dbname, *user = NULL, *pass = NULL
|
2279
|
+
#line 1966 "informixc.ec"
|
2280
|
+
#line 1967 "informixc.ec"
|
2281
|
+
char *dbname, *user = NULL, *pass = NULL;
|
2282
|
+
char *did, *cid, *sid;
|
2271
2283
|
struct version_t
|
2272
2284
|
{
|
2273
2285
|
char server_type[41], major[3], minor[3], os[3], level[3];
|
@@ -2276,7 +2288,7 @@ struct version_t
|
|
2276
2288
|
/*
|
2277
2289
|
* EXEC SQL end declare section;
|
2278
2290
|
*/
|
2279
|
-
#line
|
2291
|
+
#line 1973 "informixc.ec"
|
2280
2292
|
|
2281
2293
|
|
2282
2294
|
rb_scan_args(argc, argv, "12", &arg[0], &arg[1], &arg[2]);
|
@@ -2284,10 +2296,14 @@ struct version_t
|
|
2284
2296
|
if (NIL_P(arg[0]))
|
2285
2297
|
rb_raise(rb_eProgrammingError, "A database name must be specified");
|
2286
2298
|
|
2287
|
-
Data_Get_Struct(self,
|
2299
|
+
Data_Get_Struct(self, database_t, dbt);
|
2288
2300
|
|
2289
2301
|
dbname = StringValueCStr(arg[0]);
|
2290
|
-
snprintf(
|
2302
|
+
snprintf(dbt->database_id, IDSIZE, "DB%lX", self);
|
2303
|
+
snprintf(dbt->cursor_id, IDSIZE, "CUR%lX", dbt->idcount);
|
2304
|
+
snprintf(dbt->stmt_id, IDSIZE, "STMT%lX", dbt->idcount);
|
2305
|
+
++dbt->idcount;
|
2306
|
+
did = dbt->database_id;
|
2291
2307
|
|
2292
2308
|
if (!NIL_P(arg[1]))
|
2293
2309
|
user = StringValueCStr(arg[1]);
|
@@ -2300,24 +2316,58 @@ struct version_t
|
|
2300
2316
|
* EXEC SQL connect to :dbname as :did user :user
|
2301
2317
|
* using :pass with concurrent transaction;
|
2302
2318
|
*/
|
2303
|
-
#line
|
2319
|
+
#line 1996 "informixc.ec"
|
2304
2320
|
{
|
2305
|
-
#line
|
2321
|
+
#line 1997 "informixc.ec"
|
2306
2322
|
ifx_conn_t *_sqiconn;
|
2307
2323
|
_sqiconn = (ifx_conn_t *)ifx_alloc_conn_user(user, pass);
|
2308
2324
|
sqli_connect_open(ESQLINTVERSION, 0, dbname, did, _sqiconn, 1);
|
2309
2325
|
ifx_free_conn_user(&_sqiconn);
|
2310
|
-
#line
|
2326
|
+
#line 1997 "informixc.ec"
|
2311
2327
|
}
|
2312
2328
|
else
|
2313
2329
|
/*
|
2314
2330
|
* EXEC SQL connect to :dbname as :did with concurrent transaction;
|
2315
2331
|
*/
|
2316
|
-
#line
|
2332
|
+
#line 1999 "informixc.ec"
|
2317
2333
|
{
|
2318
|
-
#line
|
2334
|
+
#line 1999 "informixc.ec"
|
2319
2335
|
sqli_connect_open(ESQLINTVERSION, 0, dbname, did, (ifx_conn_t *)0, 1);
|
2320
|
-
#line
|
2336
|
+
#line 1999 "informixc.ec"
|
2337
|
+
}
|
2338
|
+
|
2339
|
+
if (SQLCODE < 0)
|
2340
|
+
raise_ifx_extended();
|
2341
|
+
|
2342
|
+
cid = dbt->cursor_id;
|
2343
|
+
sid = dbt->stmt_id;
|
2344
|
+
|
2345
|
+
/*
|
2346
|
+
* EXEC SQL prepare :sid from
|
2347
|
+
* 'select colname, coltype, collength, extended_id,
|
2348
|
+
* type, default, c.colno
|
2349
|
+
* from syscolumns c, outer sysdefaults d
|
2350
|
+
* where c.tabid = ? and c.tabid = d.tabid and c.colno = d.colno
|
2351
|
+
* order by c.colno';
|
2352
|
+
*/
|
2353
|
+
#line 2007 "informixc.ec"
|
2354
|
+
{
|
2355
|
+
#line 2012 "informixc.ec"
|
2356
|
+
sqli_prep(ESQLINTVERSION, sid, "select colname, coltype, collength, extended_id, type, default, c.colno from syscolumns c, outer sysdefaults d where c.tabid = ? and c.tabid = d.tabid and c.colno = d.colno order by c.colno",(ifx_literal_t *)0, (ifx_namelist_t *)0, 2, 0, 0 );
|
2357
|
+
#line 2012 "informixc.ec"
|
2358
|
+
}
|
2359
|
+
|
2360
|
+
if (SQLCODE < 0)
|
2361
|
+
raise_ifx_extended();
|
2362
|
+
|
2363
|
+
/*
|
2364
|
+
* EXEC SQL declare :cid cursor for :sid;
|
2365
|
+
*/
|
2366
|
+
#line 2017 "informixc.ec"
|
2367
|
+
{
|
2368
|
+
#line 2017 "informixc.ec"
|
2369
|
+
sqli_curs_decl_dynm(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, cid, 0), cid, sqli_curs_locate(ESQLINTVERSION, sid, 1), 0, 0);
|
2370
|
+
#line 2017 "informixc.ec"
|
2321
2371
|
}
|
2322
2372
|
|
2323
2373
|
if (SQLCODE < 0)
|
@@ -2332,17 +2382,17 @@ struct version_t
|
|
2332
2382
|
* dbinfo('version', 'full')
|
2333
2383
|
* into :c_version from systables where tabid = 1;
|
2334
2384
|
*/
|
2335
|
-
#line
|
2385
|
+
#line 2022 "informixc.ec"
|
2336
2386
|
{
|
2337
|
-
#line
|
2387
|
+
#line 2028 "informixc.ec"
|
2338
2388
|
static const char *sqlcmdtxt[] =
|
2339
|
-
#line
|
2389
|
+
#line 2028 "informixc.ec"
|
2340
2390
|
{
|
2341
|
-
#line
|
2391
|
+
#line 2028 "informixc.ec"
|
2342
2392
|
"select dbinfo ( 'version' , 'server-type' ) , dbinfo ( 'version' , 'major' ) , dbinfo ( 'version' , 'minor' ) , dbinfo ( 'version' , 'os' ) , dbinfo ( 'version' , 'level' ) , dbinfo ( 'version' , 'full' ) from systables where tabid = 1",
|
2343
2393
|
0
|
2344
2394
|
};
|
2345
|
-
#line
|
2395
|
+
#line 2028 "informixc.ec"
|
2346
2396
|
static ifx_cursor_t _SQ0 = {0};
|
2347
2397
|
static ifx_sqlvar_t _sqobind[] =
|
2348
2398
|
{
|
@@ -2352,23 +2402,23 @@ static ifx_cursor_t _SQ0 = {0};
|
|
2352
2402
|
{ 114, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
2353
2403
|
{ 114, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
2354
2404
|
{ 114, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
2355
|
-
#line
|
2405
|
+
#line 2028 "informixc.ec"
|
2356
2406
|
};
|
2357
|
-
#line
|
2407
|
+
#line 2028 "informixc.ec"
|
2358
2408
|
_sqobind[0].sqldata = (c_version).server_type;
|
2359
|
-
#line
|
2409
|
+
#line 2028 "informixc.ec"
|
2360
2410
|
_sqobind[1].sqldata = (c_version).major;
|
2361
|
-
#line
|
2411
|
+
#line 2028 "informixc.ec"
|
2362
2412
|
_sqobind[2].sqldata = (c_version).minor;
|
2363
|
-
#line
|
2413
|
+
#line 2028 "informixc.ec"
|
2364
2414
|
_sqobind[3].sqldata = (c_version).os;
|
2365
|
-
#line
|
2415
|
+
#line 2028 "informixc.ec"
|
2366
2416
|
_sqobind[4].sqldata = (c_version).level;
|
2367
|
-
#line
|
2417
|
+
#line 2028 "informixc.ec"
|
2368
2418
|
_sqobind[5].sqldata = (c_version).full;
|
2369
|
-
#line
|
2419
|
+
#line 2028 "informixc.ec"
|
2370
2420
|
sqli_slct(ESQLINTVERSION, &_SQ0,sqlcmdtxt,0,(ifx_sqlvar_t *)0,6,_sqobind,0,(ifx_literal_t *)0,(ifx_namelist_t *)0,0);
|
2371
|
-
#line
|
2421
|
+
#line 2028 "informixc.ec"
|
2372
2422
|
}
|
2373
2423
|
|
2374
2424
|
|
@@ -2391,53 +2441,42 @@ static ifx_cursor_t _SQ0 = {0};
|
|
2391
2441
|
* call-seq:
|
2392
2442
|
* db.close => db
|
2393
2443
|
*
|
2394
|
-
* Disconnects <i>db</i> and returns
|
2444
|
+
* Disconnects <i>db</i> and returns nil.
|
2395
2445
|
*/
|
2396
2446
|
static VALUE
|
2397
2447
|
rb_database_close(VALUE self)
|
2398
2448
|
{
|
2449
|
+
database_t *dbt;
|
2399
2450
|
/*
|
2400
2451
|
* EXEC SQL begin declare section;
|
2401
2452
|
*/
|
2402
|
-
#line
|
2403
|
-
#line
|
2404
|
-
char *
|
2453
|
+
#line 2056 "informixc.ec"
|
2454
|
+
#line 2057 "informixc.ec"
|
2455
|
+
char *id;
|
2405
2456
|
/*
|
2406
2457
|
* EXEC SQL end declare section;
|
2407
2458
|
*/
|
2408
|
-
#line
|
2459
|
+
#line 2058 "informixc.ec"
|
2409
2460
|
|
2410
2461
|
|
2411
|
-
Data_Get_Struct(self,
|
2412
|
-
|
2413
|
-
if (*did)
|
2414
|
-
/*
|
2415
|
-
* EXEC SQL free :did;
|
2416
|
-
*/
|
2417
|
-
#line 2028 "informixc.ec"
|
2418
|
-
{
|
2419
|
-
#line 2028 "informixc.ec"
|
2420
|
-
sqli_curs_free(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, did, 258));
|
2421
|
-
#line 2028 "informixc.ec"
|
2422
|
-
}
|
2423
|
-
did -= IDSIZE;
|
2462
|
+
Data_Get_Struct(self, database_t, dbt);
|
2463
|
+
id = dbt->database_id;
|
2424
2464
|
/*
|
2425
|
-
* EXEC SQL disconnect :
|
2465
|
+
* EXEC SQL disconnect :id;
|
2426
2466
|
*/
|
2427
|
-
#line
|
2467
|
+
#line 2062 "informixc.ec"
|
2428
2468
|
{
|
2429
|
-
#line
|
2430
|
-
sqli_connect_close(0,
|
2431
|
-
#line
|
2469
|
+
#line 2062 "informixc.ec"
|
2470
|
+
sqli_connect_close(0, id, 0, 0);
|
2471
|
+
#line 2062 "informixc.ec"
|
2432
2472
|
}
|
2433
2473
|
|
2434
|
-
return
|
2474
|
+
return Qnil;
|
2435
2475
|
}
|
2436
2476
|
|
2437
2477
|
/*
|
2438
2478
|
* call-seq:
|
2439
2479
|
* db.immediate(query) => fixnum
|
2440
|
-
* db.execute(query) => fixnum
|
2441
2480
|
*
|
2442
2481
|
* Executes <i>query</i> and returns the number of rows affected.
|
2443
2482
|
* <i>query</i> must not return rows. Executes efficiently any
|
@@ -2457,29 +2496,31 @@ rb_database_close(VALUE self)
|
|
2457
2496
|
static VALUE
|
2458
2497
|
rb_database_immediate(VALUE self, VALUE arg)
|
2459
2498
|
{
|
2499
|
+
database_t *dbt;
|
2460
2500
|
/*
|
2461
2501
|
* EXEC SQL begin declare section;
|
2462
2502
|
*/
|
2463
|
-
#line
|
2464
|
-
#line
|
2503
|
+
#line 2090 "informixc.ec"
|
2504
|
+
#line 2091 "informixc.ec"
|
2465
2505
|
char *query, *did;
|
2466
2506
|
/*
|
2467
2507
|
* EXEC SQL end declare section;
|
2468
2508
|
*/
|
2469
|
-
#line
|
2470
|
-
|
2509
|
+
#line 2092 "informixc.ec"
|
2471
2510
|
|
2472
|
-
Data_Get_Struct(self, char, did);
|
2473
2511
|
|
2512
|
+
Data_Get_Struct(self, database_t, dbt);
|
2513
|
+
did = dbt->database_id;
|
2474
2514
|
/*
|
2475
2515
|
* EXEC SQL set connection :did;
|
2476
2516
|
*/
|
2477
|
-
#line
|
2517
|
+
#line 2096 "informixc.ec"
|
2478
2518
|
{
|
2479
|
-
#line
|
2519
|
+
#line 2096 "informixc.ec"
|
2480
2520
|
sqli_connect_set(0, did, 0);
|
2481
|
-
#line
|
2521
|
+
#line 2096 "informixc.ec"
|
2482
2522
|
}
|
2523
|
+
|
2483
2524
|
if (SQLCODE < 0)
|
2484
2525
|
raise_ifx_extended();
|
2485
2526
|
|
@@ -2487,11 +2528,11 @@ rb_database_immediate(VALUE self, VALUE arg)
|
|
2487
2528
|
/*
|
2488
2529
|
* EXEC SQL execute immediate :query;
|
2489
2530
|
*/
|
2490
|
-
#line
|
2531
|
+
#line 2102 "informixc.ec"
|
2491
2532
|
{
|
2492
|
-
#line
|
2533
|
+
#line 2102 "informixc.ec"
|
2493
2534
|
sqli_exec_immed(query);
|
2494
|
-
#line
|
2535
|
+
#line 2102 "informixc.ec"
|
2495
2536
|
}
|
2496
2537
|
if (SQLCODE < 0)
|
2497
2538
|
raise_ifx_extended();
|
@@ -2508,41 +2549,44 @@ rb_database_immediate(VALUE self, VALUE arg)
|
|
2508
2549
|
static VALUE
|
2509
2550
|
rb_database_rollback(VALUE self)
|
2510
2551
|
{
|
2552
|
+
database_t *dbt;
|
2511
2553
|
/*
|
2512
2554
|
* EXEC SQL begin declare section;
|
2513
2555
|
*/
|
2514
|
-
#line
|
2515
|
-
#line
|
2556
|
+
#line 2119 "informixc.ec"
|
2557
|
+
#line 2120 "informixc.ec"
|
2516
2558
|
char *did;
|
2517
2559
|
/*
|
2518
2560
|
* EXEC SQL end declare section;
|
2519
2561
|
*/
|
2520
|
-
#line
|
2521
|
-
|
2562
|
+
#line 2121 "informixc.ec"
|
2522
2563
|
|
2523
|
-
Data_Get_Struct(self, char, did);
|
2524
2564
|
|
2565
|
+
Data_Get_Struct(self, database_t, dbt);
|
2566
|
+
did = dbt->database_id;
|
2525
2567
|
/*
|
2526
2568
|
* EXEC SQL set connection :did;
|
2527
2569
|
*/
|
2528
|
-
#line
|
2570
|
+
#line 2125 "informixc.ec"
|
2529
2571
|
{
|
2530
|
-
#line
|
2572
|
+
#line 2125 "informixc.ec"
|
2531
2573
|
sqli_connect_set(0, did, 0);
|
2532
|
-
#line
|
2574
|
+
#line 2125 "informixc.ec"
|
2533
2575
|
}
|
2576
|
+
|
2534
2577
|
if (SQLCODE < 0)
|
2535
2578
|
raise_ifx_extended();
|
2536
2579
|
|
2537
2580
|
/*
|
2538
2581
|
* EXEC SQL rollback;
|
2539
2582
|
*/
|
2540
|
-
#line
|
2583
|
+
#line 2130 "informixc.ec"
|
2541
2584
|
{
|
2542
|
-
#line
|
2585
|
+
#line 2130 "informixc.ec"
|
2543
2586
|
sqli_trans_rollback();
|
2544
|
-
#line
|
2587
|
+
#line 2130 "informixc.ec"
|
2545
2588
|
}
|
2589
|
+
|
2546
2590
|
return self;
|
2547
2591
|
}
|
2548
2592
|
|
@@ -2555,41 +2599,44 @@ rb_database_rollback(VALUE self)
|
|
2555
2599
|
static VALUE
|
2556
2600
|
rb_database_commit(VALUE self)
|
2557
2601
|
{
|
2602
|
+
database_t *dbt;
|
2558
2603
|
/*
|
2559
2604
|
* EXEC SQL begin declare section;
|
2560
2605
|
*/
|
2561
|
-
#line
|
2562
|
-
#line
|
2606
|
+
#line 2145 "informixc.ec"
|
2607
|
+
#line 2146 "informixc.ec"
|
2563
2608
|
char *did;
|
2564
2609
|
/*
|
2565
2610
|
* EXEC SQL end declare section;
|
2566
2611
|
*/
|
2567
|
-
#line
|
2568
|
-
|
2612
|
+
#line 2147 "informixc.ec"
|
2569
2613
|
|
2570
|
-
Data_Get_Struct(self, char, did);
|
2571
2614
|
|
2615
|
+
Data_Get_Struct(self, database_t, dbt);
|
2616
|
+
did = dbt->database_id;
|
2572
2617
|
/*
|
2573
2618
|
* EXEC SQL set connection :did;
|
2574
2619
|
*/
|
2575
|
-
#line
|
2620
|
+
#line 2151 "informixc.ec"
|
2576
2621
|
{
|
2577
|
-
#line
|
2622
|
+
#line 2151 "informixc.ec"
|
2578
2623
|
sqli_connect_set(0, did, 0);
|
2579
|
-
#line
|
2624
|
+
#line 2151 "informixc.ec"
|
2580
2625
|
}
|
2626
|
+
|
2581
2627
|
if (SQLCODE < 0)
|
2582
2628
|
raise_ifx_extended();
|
2583
2629
|
|
2584
2630
|
/*
|
2585
2631
|
* EXEC SQL commit;
|
2586
2632
|
*/
|
2587
|
-
#line
|
2633
|
+
#line 2156 "informixc.ec"
|
2588
2634
|
{
|
2589
|
-
#line
|
2635
|
+
#line 2156 "informixc.ec"
|
2590
2636
|
sqli_trans_commit();
|
2591
|
-
#line
|
2637
|
+
#line 2156 "informixc.ec"
|
2592
2638
|
}
|
2639
|
+
|
2593
2640
|
return self;
|
2594
2641
|
}
|
2595
2642
|
|
@@ -2628,63 +2675,67 @@ static VALUE
|
|
2628
2675
|
rb_database_transaction(VALUE self)
|
2629
2676
|
{
|
2630
2677
|
VALUE ret;
|
2678
|
+
database_t *dbt;
|
2631
2679
|
/*
|
2632
2680
|
* EXEC SQL begin declare section;
|
2633
2681
|
*/
|
2634
|
-
#line
|
2635
|
-
#line
|
2682
|
+
#line 2197 "informixc.ec"
|
2683
|
+
#line 2198 "informixc.ec"
|
2636
2684
|
char *did;
|
2637
2685
|
/*
|
2638
2686
|
* EXEC SQL end declare section;
|
2639
2687
|
*/
|
2640
|
-
#line
|
2688
|
+
#line 2199 "informixc.ec"
|
2641
2689
|
|
2642
2690
|
|
2643
|
-
Data_Get_Struct(self,
|
2644
|
-
|
2691
|
+
Data_Get_Struct(self, database_t, dbt);
|
2692
|
+
did = dbt->database_id;
|
2645
2693
|
/*
|
2646
2694
|
* EXEC SQL set connection :did;
|
2647
2695
|
*/
|
2648
|
-
#line
|
2696
|
+
#line 2203 "informixc.ec"
|
2649
2697
|
{
|
2650
|
-
#line
|
2698
|
+
#line 2203 "informixc.ec"
|
2651
2699
|
sqli_connect_set(0, did, 0);
|
2652
|
-
#line
|
2700
|
+
#line 2203 "informixc.ec"
|
2653
2701
|
}
|
2702
|
+
|
2654
2703
|
if (SQLCODE < 0)
|
2655
2704
|
raise_ifx_extended();
|
2656
2705
|
|
2657
2706
|
/*
|
2658
2707
|
* EXEC SQL commit;
|
2659
2708
|
*/
|
2660
|
-
#line
|
2709
|
+
#line 2208 "informixc.ec"
|
2661
2710
|
{
|
2662
|
-
#line
|
2711
|
+
#line 2208 "informixc.ec"
|
2663
2712
|
sqli_trans_commit();
|
2664
|
-
#line
|
2713
|
+
#line 2208 "informixc.ec"
|
2665
2714
|
}
|
2666
|
-
|
2667
2715
|
/*
|
2668
2716
|
* EXEC SQL begin work;
|
2669
2717
|
*/
|
2670
|
-
#line
|
2718
|
+
#line 2209 "informixc.ec"
|
2671
2719
|
{
|
2672
|
-
#line
|
2720
|
+
#line 2209 "informixc.ec"
|
2673
2721
|
sqli_trans_begin2((mint)1);
|
2674
|
-
#line
|
2722
|
+
#line 2209 "informixc.ec"
|
2675
2723
|
}
|
2676
2724
|
ret = rb_rescue(rb_yield, self, database_transfail, self);
|
2725
|
+
|
2677
2726
|
if (ret == Qundef)
|
2678
2727
|
rb_raise(rb_eOperationalError, "Transaction rolled back");
|
2728
|
+
|
2679
2729
|
/*
|
2680
2730
|
* EXEC SQL commit;
|
2681
2731
|
*/
|
2682
|
-
#line
|
2732
|
+
#line 2215 "informixc.ec"
|
2683
2733
|
{
|
2684
|
-
#line
|
2734
|
+
#line 2215 "informixc.ec"
|
2685
2735
|
sqli_trans_commit();
|
2686
|
-
#line
|
2736
|
+
#line 2215 "informixc.ec"
|
2687
2737
|
}
|
2738
|
+
|
2688
2739
|
return self;
|
2689
2740
|
}
|
2690
2741
|
|
@@ -2711,11 +2762,12 @@ rb_database_columns(VALUE self, VALUE tablename)
|
|
2711
2762
|
"YEAR", "MONTH", "DAY", "HOUR", "MINUTE", "SECOND"
|
2712
2763
|
};
|
2713
2764
|
|
2765
|
+
database_t *dbt;
|
2714
2766
|
/*
|
2715
2767
|
* EXEC SQL begin declare section;
|
2716
2768
|
*/
|
2717
|
-
#line
|
2718
|
-
#line
|
2769
|
+
#line 2244 "informixc.ec"
|
2770
|
+
#line 2245 "informixc.ec"
|
2719
2771
|
char *did, *cid;
|
2720
2772
|
char *tabname;
|
2721
2773
|
int tabid, xid;
|
@@ -2726,20 +2778,21 @@ short coltype, collength;
|
|
2726
2778
|
/*
|
2727
2779
|
* EXEC SQL end declare section;
|
2728
2780
|
*/
|
2729
|
-
#line
|
2781
|
+
#line 2252 "informixc.ec"
|
2730
2782
|
|
2731
2783
|
|
2732
|
-
Data_Get_Struct(self,
|
2733
|
-
|
2784
|
+
Data_Get_Struct(self, database_t, dbt);
|
2785
|
+
did = dbt->database_id;
|
2734
2786
|
/*
|
2735
2787
|
* EXEC SQL set connection :did;
|
2736
2788
|
*/
|
2737
|
-
#line
|
2789
|
+
#line 2256 "informixc.ec"
|
2738
2790
|
{
|
2739
|
-
#line
|
2791
|
+
#line 2256 "informixc.ec"
|
2740
2792
|
sqli_connect_set(0, did, 0);
|
2741
|
-
#line
|
2793
|
+
#line 2256 "informixc.ec"
|
2742
2794
|
}
|
2795
|
+
|
2743
2796
|
if (SQLCODE < 0)
|
2744
2797
|
raise_ifx_extended();
|
2745
2798
|
|
@@ -2748,107 +2801,60 @@ short coltype, collength;
|
|
2748
2801
|
/*
|
2749
2802
|
* EXEC SQL select tabid into :tabid from systables where tabname = :tabname;
|
2750
2803
|
*/
|
2751
|
-
#line
|
2804
|
+
#line 2263 "informixc.ec"
|
2752
2805
|
{
|
2753
|
-
#line
|
2806
|
+
#line 2263 "informixc.ec"
|
2754
2807
|
static const char *sqlcmdtxt[] =
|
2755
|
-
#line
|
2808
|
+
#line 2263 "informixc.ec"
|
2756
2809
|
{
|
2757
|
-
#line
|
2810
|
+
#line 2263 "informixc.ec"
|
2758
2811
|
"select tabid from systables where tabname = ?",
|
2759
2812
|
0
|
2760
2813
|
};
|
2761
|
-
#line
|
2814
|
+
#line 2263 "informixc.ec"
|
2762
2815
|
static ifx_cursor_t _SQ0 = {0};
|
2763
2816
|
static ifx_sqlvar_t _sqibind[] =
|
2764
2817
|
{
|
2765
2818
|
{ 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
2766
|
-
#line
|
2819
|
+
#line 2263 "informixc.ec"
|
2767
2820
|
};
|
2768
2821
|
static ifx_sqlvar_t _sqobind[] =
|
2769
2822
|
{
|
2770
2823
|
{ 102, sizeof(tabid), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
2771
|
-
#line
|
2824
|
+
#line 2263 "informixc.ec"
|
2772
2825
|
};
|
2773
|
-
#line
|
2826
|
+
#line 2263 "informixc.ec"
|
2774
2827
|
_sqibind[0].sqldata = tabname;
|
2775
|
-
#line
|
2828
|
+
#line 2263 "informixc.ec"
|
2776
2829
|
_sqobind[0].sqldata = (char *) &tabid;
|
2777
|
-
#line
|
2830
|
+
#line 2263 "informixc.ec"
|
2778
2831
|
sqli_slct(ESQLINTVERSION, &_SQ0,sqlcmdtxt,1,_sqibind,1,_sqobind,0,(ifx_literal_t *)0,(ifx_namelist_t *)0,0);
|
2779
|
-
#line
|
2832
|
+
#line 2263 "informixc.ec"
|
2780
2833
|
}
|
2781
2834
|
|
2782
2835
|
if (SQLCODE == SQLNOTFOUND)
|
2783
2836
|
rb_raise(rb_eProgrammingError, "Table '%s' doesn't exist", tabname);
|
2784
2837
|
|
2785
2838
|
result = rb_ary_new();
|
2786
|
-
|
2787
|
-
cid = did + IDSIZE;
|
2788
|
-
|
2789
|
-
if (!*cid) {
|
2790
|
-
/*
|
2791
|
-
* EXEC SQL begin declare section;
|
2792
|
-
*/
|
2793
|
-
#line 2228 "informixc.ec"
|
2794
|
-
#line 2229 "informixc.ec"
|
2795
|
-
char sid[IDSIZE];
|
2796
|
-
/*
|
2797
|
-
* EXEC SQL end declare section;
|
2798
|
-
*/
|
2799
|
-
#line 2230 "informixc.ec"
|
2800
|
-
|
2801
|
-
|
2802
|
-
snprintf(sid, IDSIZE, "COLS%lX", self);
|
2803
|
-
snprintf(cid, IDSIZE, "COLC%lX", self);
|
2804
|
-
|
2805
|
-
/*
|
2806
|
-
* EXEC SQL prepare :sid from
|
2807
|
-
* 'select colname, coltype, collength, extended_id,
|
2808
|
-
* type, default, c.colno
|
2809
|
-
* from syscolumns c, outer sysdefaults d
|
2810
|
-
* where c.tabid = ? and c.tabid = d.tabid
|
2811
|
-
* and c.colno = d.colno
|
2812
|
-
* order by c.colno';
|
2813
|
-
*/
|
2814
|
-
#line 2235 "informixc.ec"
|
2815
|
-
{
|
2816
|
-
#line 2241 "informixc.ec"
|
2817
|
-
sqli_prep(ESQLINTVERSION, sid, "select colname, coltype, collength, extended_id, type, default, c.colno from syscolumns c, outer sysdefaults d where c.tabid = ? and c.tabid = d.tabid and c.colno = d.colno order by c.colno",(ifx_literal_t *)0, (ifx_namelist_t *)0, 2, 0, 0 );
|
2818
|
-
#line 2241 "informixc.ec"
|
2819
|
-
}
|
2820
|
-
/*
|
2821
|
-
* EXEC SQL declare :cid cursor for :sid;
|
2822
|
-
*/
|
2823
|
-
#line 2242 "informixc.ec"
|
2824
|
-
{
|
2825
|
-
#line 2242 "informixc.ec"
|
2826
|
-
sqli_curs_decl_dynm(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, cid, 0), cid, sqli_curs_locate(ESQLINTVERSION, sid, 1), 0, 0);
|
2827
|
-
#line 2242 "informixc.ec"
|
2828
|
-
}
|
2829
|
-
if (SQLCODE < 0) {
|
2830
|
-
cid[0] = 0;
|
2831
|
-
raise_ifx_extended();
|
2832
|
-
}
|
2833
|
-
}
|
2834
|
-
|
2839
|
+
cid = dbt->cursor_id;
|
2835
2840
|
/*
|
2836
2841
|
* EXEC SQL open :cid using :tabid;
|
2837
2842
|
*/
|
2838
|
-
#line
|
2843
|
+
#line 2270 "informixc.ec"
|
2839
2844
|
{
|
2840
|
-
#line
|
2845
|
+
#line 2270 "informixc.ec"
|
2841
2846
|
static ifx_sqlvar_t _sqibind[] =
|
2842
2847
|
{
|
2843
2848
|
{ 102, sizeof(tabid), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
2844
|
-
#line
|
2849
|
+
#line 2270 "informixc.ec"
|
2845
2850
|
};
|
2846
2851
|
static ifx_sqlda_t _SD0 = { 1, _sqibind, {0}, 1, 0 };
|
2847
|
-
#line
|
2852
|
+
#line 2270 "informixc.ec"
|
2848
2853
|
_sqibind[0].sqldata = (char *) &tabid;
|
2849
2854
|
sqli_curs_open(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, cid, 256), &_SD0, (char *)0, (struct value *)0, 1, 0);
|
2850
|
-
#line
|
2855
|
+
#line 2270 "informixc.ec"
|
2851
2856
|
}
|
2857
|
+
|
2852
2858
|
if (SQLCODE < 0)
|
2853
2859
|
raise_ifx_extended();
|
2854
2860
|
|
@@ -2857,9 +2863,9 @@ static ifx_cursor_t _SQ0 = {0};
|
|
2857
2863
|
* EXEC SQL fetch :cid into :colname, :coltype, :collength, :xid,
|
2858
2864
|
* :deftype, :defvalue;
|
2859
2865
|
*/
|
2860
|
-
#line
|
2866
|
+
#line 2276 "informixc.ec"
|
2861
2867
|
{
|
2862
|
-
#line
|
2868
|
+
#line 2277 "informixc.ec"
|
2863
2869
|
static ifx_sqlvar_t _sqobind[] =
|
2864
2870
|
{
|
2865
2871
|
{ 114, 129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
@@ -2868,24 +2874,24 @@ static ifx_cursor_t _SQ0 = {0};
|
|
2868
2874
|
{ 102, sizeof(xid), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
2869
2875
|
{ 100, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
2870
2876
|
{ 114, 257, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
2871
|
-
#line
|
2877
|
+
#line 2277 "informixc.ec"
|
2872
2878
|
};
|
2873
2879
|
static ifx_sqlda_t _SD0 = { 6, _sqobind, {0}, 6, 0 };
|
2874
2880
|
static _FetchSpec _FS1 = { 0, 1, 0 };
|
2875
|
-
#line
|
2881
|
+
#line 2277 "informixc.ec"
|
2876
2882
|
_sqobind[0].sqldata = colname;
|
2877
|
-
#line
|
2883
|
+
#line 2277 "informixc.ec"
|
2878
2884
|
_sqobind[1].sqldata = (char *) &coltype;
|
2879
|
-
#line
|
2885
|
+
#line 2277 "informixc.ec"
|
2880
2886
|
_sqobind[2].sqldata = (char *) &collength;
|
2881
|
-
#line
|
2887
|
+
#line 2277 "informixc.ec"
|
2882
2888
|
_sqobind[3].sqldata = (char *) &xid;
|
2883
|
-
#line
|
2889
|
+
#line 2277 "informixc.ec"
|
2884
2890
|
_sqobind[4].sqldata = deftype;
|
2885
|
-
#line
|
2891
|
+
#line 2277 "informixc.ec"
|
2886
2892
|
_sqobind[5].sqldata = defvalue;
|
2887
2893
|
sqli_curs_fetch(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, cid, 256), (ifx_sqlda_t *)0, &_SD0, (char *)0, &_FS1);
|
2888
|
-
#line
|
2894
|
+
#line 2277 "informixc.ec"
|
2889
2895
|
}
|
2890
2896
|
if (SQLCODE < 0)
|
2891
2897
|
raise_ifx_extended();
|
@@ -2983,11 +2989,11 @@ static ifx_cursor_t _SQ0 = {0};
|
|
2983
2989
|
/*
|
2984
2990
|
* EXEC SQL close :cid;
|
2985
2991
|
*/
|
2986
|
-
#line
|
2992
|
+
#line 2371 "informixc.ec"
|
2987
2993
|
{
|
2988
|
-
#line
|
2994
|
+
#line 2371 "informixc.ec"
|
2989
2995
|
sqli_curs_close(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, cid, 256));
|
2990
|
-
#line
|
2996
|
+
#line 2371 "informixc.ec"
|
2991
2997
|
}
|
2992
2998
|
|
2993
2999
|
return result;
|
@@ -3013,13 +3019,13 @@ st_free(cursor_t *c)
|
|
3013
3019
|
/*
|
3014
3020
|
* EXEC SQL begin declare section;
|
3015
3021
|
*/
|
3016
|
-
#line
|
3017
|
-
#line
|
3022
|
+
#line 2393 "informixc.ec"
|
3023
|
+
#line 2394 "informixc.ec"
|
3018
3024
|
char *sid, *did;
|
3019
3025
|
/*
|
3020
3026
|
* EXEC SQL end declare section;
|
3021
3027
|
*/
|
3022
|
-
#line
|
3028
|
+
#line 2395 "informixc.ec"
|
3023
3029
|
|
3024
3030
|
|
3025
3031
|
free_input_slots(c);
|
@@ -3029,11 +3035,11 @@ st_free(cursor_t *c)
|
|
3029
3035
|
/*
|
3030
3036
|
* EXEC SQL set connection :did;
|
3031
3037
|
*/
|
3032
|
-
#line
|
3038
|
+
#line 2401 "informixc.ec"
|
3033
3039
|
{
|
3034
|
-
#line
|
3040
|
+
#line 2401 "informixc.ec"
|
3035
3041
|
sqli_connect_set(0, did, 0);
|
3036
|
-
#line
|
3042
|
+
#line 2401 "informixc.ec"
|
3037
3043
|
}
|
3038
3044
|
if (SQLCODE < 0)
|
3039
3045
|
return;
|
@@ -3042,11 +3048,11 @@ st_free(cursor_t *c)
|
|
3042
3048
|
/*
|
3043
3049
|
* EXEC SQL free :sid;
|
3044
3050
|
*/
|
3045
|
-
#line
|
3051
|
+
#line 2406 "informixc.ec"
|
3046
3052
|
{
|
3047
|
-
#line
|
3053
|
+
#line 2406 "informixc.ec"
|
3048
3054
|
sqli_curs_free(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, sid, 258));
|
3049
|
-
#line
|
3055
|
+
#line 2406 "informixc.ec"
|
3050
3056
|
}
|
3051
3057
|
}
|
3052
3058
|
|
@@ -3073,27 +3079,29 @@ rb_statement_initialize(VALUE self, VALUE db, VALUE query)
|
|
3073
3079
|
{
|
3074
3080
|
struct sqlda *output;
|
3075
3081
|
cursor_t *c;
|
3082
|
+
database_t *dbt;
|
3076
3083
|
/*
|
3077
3084
|
* EXEC SQL begin declare section;
|
3078
3085
|
*/
|
3079
|
-
#line
|
3080
|
-
#line
|
3086
|
+
#line 2433 "informixc.ec"
|
3087
|
+
#line 2434 "informixc.ec"
|
3081
3088
|
char *c_query, *sid, *did;
|
3082
3089
|
/*
|
3083
3090
|
* EXEC SQL end declare section;
|
3084
3091
|
*/
|
3085
|
-
#line
|
3092
|
+
#line 2435 "informixc.ec"
|
3086
3093
|
|
3087
3094
|
|
3088
|
-
Data_Get_Struct(db,
|
3095
|
+
Data_Get_Struct(db, database_t, dbt);
|
3096
|
+
did = dbt->database_id;
|
3089
3097
|
/*
|
3090
3098
|
* EXEC SQL set connection :did;
|
3091
3099
|
*/
|
3092
|
-
#line
|
3100
|
+
#line 2439 "informixc.ec"
|
3093
3101
|
{
|
3094
|
-
#line
|
3102
|
+
#line 2439 "informixc.ec"
|
3095
3103
|
sqli_connect_set(0, did, 0);
|
3096
|
-
#line
|
3104
|
+
#line 2439 "informixc.ec"
|
3097
3105
|
}
|
3098
3106
|
if (SQLCODE < 0)
|
3099
3107
|
raise_ifx_extended();
|
@@ -3102,18 +3110,18 @@ rb_statement_initialize(VALUE self, VALUE db, VALUE query)
|
|
3102
3110
|
c->db = db;
|
3103
3111
|
c->database_id = did;
|
3104
3112
|
output = c->daOutput;
|
3105
|
-
snprintf(c->stmt_id, sizeof(c->stmt_id), "STMT%lX",
|
3113
|
+
snprintf(c->stmt_id, sizeof(c->stmt_id), "STMT%lX", dbt->idcount++);
|
3106
3114
|
sid = c->stmt_id;
|
3107
3115
|
c_query = StringValueCStr(query);
|
3108
3116
|
|
3109
3117
|
/*
|
3110
3118
|
* EXEC SQL prepare :sid from :c_query;
|
3111
3119
|
*/
|
3112
|
-
#line
|
3120
|
+
#line 2451 "informixc.ec"
|
3113
3121
|
{
|
3114
|
-
#line
|
3122
|
+
#line 2451 "informixc.ec"
|
3115
3123
|
sqli_prep(ESQLINTVERSION, sid, c_query,(ifx_literal_t *)0, (ifx_namelist_t *)0, -1, 0, 0 );
|
3116
|
-
#line
|
3124
|
+
#line 2451 "informixc.ec"
|
3117
3125
|
}
|
3118
3126
|
if (SQLCODE < 0)
|
3119
3127
|
raise_ifx_extended();
|
@@ -3122,11 +3130,11 @@ rb_statement_initialize(VALUE self, VALUE db, VALUE query)
|
|
3122
3130
|
/*
|
3123
3131
|
* EXEC SQL describe :sid into output;
|
3124
3132
|
*/
|
3125
|
-
#line
|
3133
|
+
#line 2456 "informixc.ec"
|
3126
3134
|
{
|
3127
|
-
#line
|
3135
|
+
#line 2456 "informixc.ec"
|
3128
3136
|
sqli_describe_stmt(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, sid, 257), &output, 0);
|
3129
|
-
#line
|
3137
|
+
#line 2456 "informixc.ec"
|
3130
3138
|
}
|
3131
3139
|
c->daOutput = output;
|
3132
3140
|
|
@@ -3173,13 +3181,13 @@ rb_statement_call(int argc, VALUE *argv, VALUE self)
|
|
3173
3181
|
/*
|
3174
3182
|
* EXEC SQL begin declare section;
|
3175
3183
|
*/
|
3176
|
-
#line
|
3177
|
-
#line
|
3184
|
+
#line 2499 "informixc.ec"
|
3185
|
+
#line 2500 "informixc.ec"
|
3178
3186
|
char *sid, *did;
|
3179
3187
|
/*
|
3180
3188
|
* EXEC SQL end declare section;
|
3181
3189
|
*/
|
3182
|
-
#line
|
3190
|
+
#line 2501 "informixc.ec"
|
3183
3191
|
|
3184
3192
|
|
3185
3193
|
Data_Get_Struct(self, cursor_t, c);
|
@@ -3188,11 +3196,11 @@ rb_statement_call(int argc, VALUE *argv, VALUE self)
|
|
3188
3196
|
/*
|
3189
3197
|
* EXEC SQL set connection :did;
|
3190
3198
|
*/
|
3191
|
-
#line
|
3199
|
+
#line 2506 "informixc.ec"
|
3192
3200
|
{
|
3193
|
-
#line
|
3201
|
+
#line 2506 "informixc.ec"
|
3194
3202
|
sqli_connect_set(0, did, 0);
|
3195
|
-
#line
|
3203
|
+
#line 2506 "informixc.ec"
|
3196
3204
|
}
|
3197
3205
|
if (SQLCODE < 0)
|
3198
3206
|
raise_ifx_extended();
|
@@ -3212,11 +3220,11 @@ rb_statement_call(int argc, VALUE *argv, VALUE self)
|
|
3212
3220
|
* EXEC SQL execute :sid into descriptor output
|
3213
3221
|
* using descriptor input;
|
3214
3222
|
*/
|
3215
|
-
#line
|
3223
|
+
#line 2521 "informixc.ec"
|
3216
3224
|
{
|
3217
|
-
#line
|
3225
|
+
#line 2522 "informixc.ec"
|
3218
3226
|
sqli_exec(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, sid, 257), input, (char *)0, (struct value *)0, output, (char *)0, (struct value *)0, 0);
|
3219
|
-
#line
|
3227
|
+
#line 2522 "informixc.ec"
|
3220
3228
|
}
|
3221
3229
|
clean_input_slots(c);
|
3222
3230
|
}
|
@@ -3224,11 +3232,11 @@ rb_statement_call(int argc, VALUE *argv, VALUE self)
|
|
3224
3232
|
/*
|
3225
3233
|
* EXEC SQL execute :sid into descriptor output;
|
3226
3234
|
*/
|
3227
|
-
#line
|
3235
|
+
#line 2526 "informixc.ec"
|
3228
3236
|
{
|
3229
|
-
#line
|
3237
|
+
#line 2526 "informixc.ec"
|
3230
3238
|
sqli_exec(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, sid, 257), (ifx_sqlda_t *)0, (char *)0, (struct value *)0, output, (char *)0, (struct value *)0, 0);
|
3231
|
-
#line
|
3239
|
+
#line 2526 "informixc.ec"
|
3232
3240
|
}
|
3233
3241
|
|
3234
3242
|
if (SQLCODE < 0)
|
@@ -3244,11 +3252,11 @@ rb_statement_call(int argc, VALUE *argv, VALUE self)
|
|
3244
3252
|
/*
|
3245
3253
|
* EXEC SQL execute :sid using descriptor input;
|
3246
3254
|
*/
|
3247
|
-
#line
|
3255
|
+
#line 2538 "informixc.ec"
|
3248
3256
|
{
|
3249
|
-
#line
|
3257
|
+
#line 2538 "informixc.ec"
|
3250
3258
|
sqli_exec(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, sid, 257), input, (char *)0, (struct value *)0, (ifx_sqlda_t *)0, (char *)0, (struct value *)0, 0);
|
3251
|
-
#line
|
3259
|
+
#line 2538 "informixc.ec"
|
3252
3260
|
}
|
3253
3261
|
clean_input_slots(c);
|
3254
3262
|
}
|
@@ -3256,11 +3264,11 @@ rb_statement_call(int argc, VALUE *argv, VALUE self)
|
|
3256
3264
|
/*
|
3257
3265
|
* EXEC SQL execute :sid;
|
3258
3266
|
*/
|
3259
|
-
#line
|
3267
|
+
#line 2542 "informixc.ec"
|
3260
3268
|
{
|
3261
|
-
#line
|
3269
|
+
#line 2542 "informixc.ec"
|
3262
3270
|
sqli_exec(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, sid, 257), (ifx_sqlda_t *)0, (char *)0, (struct value *)0, (ifx_sqlda_t *)0, (char *)0, (struct value *)0, 0);
|
3263
|
-
#line
|
3271
|
+
#line 2542 "informixc.ec"
|
3264
3272
|
}
|
3265
3273
|
}
|
3266
3274
|
if (SQLCODE < 0)
|
@@ -3322,13 +3330,13 @@ fetch(VALUE self, VALUE type, VALUE bang)
|
|
3322
3330
|
/*
|
3323
3331
|
* EXEC SQL begin declare section;
|
3324
3332
|
*/
|
3325
|
-
#line
|
3326
|
-
#line
|
3333
|
+
#line 2600 "informixc.ec"
|
3334
|
+
#line 2601 "informixc.ec"
|
3327
3335
|
char *cid, *did;
|
3328
3336
|
/*
|
3329
3337
|
* EXEC SQL end declare section;
|
3330
3338
|
*/
|
3331
|
-
#line
|
3339
|
+
#line 2602 "informixc.ec"
|
3332
3340
|
|
3333
3341
|
short c_bang;
|
3334
3342
|
cursor_t *c;
|
@@ -3343,11 +3351,11 @@ fetch(VALUE self, VALUE type, VALUE bang)
|
|
3343
3351
|
/*
|
3344
3352
|
* EXEC SQL set connection :did;
|
3345
3353
|
*/
|
3346
|
-
#line
|
3354
|
+
#line 2613 "informixc.ec"
|
3347
3355
|
{
|
3348
|
-
#line
|
3356
|
+
#line 2613 "informixc.ec"
|
3349
3357
|
sqli_connect_set(0, did, 0);
|
3350
|
-
#line
|
3358
|
+
#line 2613 "informixc.ec"
|
3351
3359
|
}
|
3352
3360
|
if (SQLCODE < 0)
|
3353
3361
|
raise_ifx_extended();
|
@@ -3358,12 +3366,12 @@ fetch(VALUE self, VALUE type, VALUE bang)
|
|
3358
3366
|
/*
|
3359
3367
|
* EXEC SQL fetch :cid using descriptor output;
|
3360
3368
|
*/
|
3361
|
-
#line
|
3369
|
+
#line 2620 "informixc.ec"
|
3362
3370
|
{
|
3363
|
-
#line
|
3371
|
+
#line 2620 "informixc.ec"
|
3364
3372
|
static _FetchSpec _FS0 = { 0, 1, 0 };
|
3365
3373
|
sqli_curs_fetch(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, cid, 256), (ifx_sqlda_t *)0, output, (char *)0, &_FS0);
|
3366
|
-
#line
|
3374
|
+
#line 2620 "informixc.ec"
|
3367
3375
|
}
|
3368
3376
|
if (SQLCODE < 0)
|
3369
3377
|
raise_ifx_extended();
|
@@ -3385,13 +3393,13 @@ fetch_many(VALUE self, VALUE n, VALUE type)
|
|
3385
3393
|
/*
|
3386
3394
|
* EXEC SQL begin declare section;
|
3387
3395
|
*/
|
3388
|
-
#line
|
3389
|
-
#line
|
3396
|
+
#line 2638 "informixc.ec"
|
3397
|
+
#line 2639 "informixc.ec"
|
3390
3398
|
char *cid, *did;
|
3391
3399
|
/*
|
3392
3400
|
* EXEC SQL end declare section;
|
3393
3401
|
*/
|
3394
|
-
#line
|
3402
|
+
#line 2640 "informixc.ec"
|
3395
3403
|
|
3396
3404
|
cursor_t *c;
|
3397
3405
|
struct sqlda *output;
|
@@ -3407,11 +3415,11 @@ fetch_many(VALUE self, VALUE n, VALUE type)
|
|
3407
3415
|
/*
|
3408
3416
|
* EXEC SQL set connection :did;
|
3409
3417
|
*/
|
3410
|
-
#line
|
3418
|
+
#line 2652 "informixc.ec"
|
3411
3419
|
{
|
3412
|
-
#line
|
3420
|
+
#line 2652 "informixc.ec"
|
3413
3421
|
sqli_connect_set(0, did, 0);
|
3414
|
-
#line
|
3422
|
+
#line 2652 "informixc.ec"
|
3415
3423
|
}
|
3416
3424
|
if (SQLCODE < 0)
|
3417
3425
|
raise_ifx_extended();
|
@@ -3431,12 +3439,12 @@ fetch_many(VALUE self, VALUE n, VALUE type)
|
|
3431
3439
|
/*
|
3432
3440
|
* EXEC SQL fetch :cid using descriptor output;
|
3433
3441
|
*/
|
3434
|
-
#line
|
3442
|
+
#line 2668 "informixc.ec"
|
3435
3443
|
{
|
3436
|
-
#line
|
3444
|
+
#line 2668 "informixc.ec"
|
3437
3445
|
static _FetchSpec _FS0 = { 0, 1, 0 };
|
3438
3446
|
sqli_curs_fetch(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, cid, 256), (ifx_sqlda_t *)0, output, (char *)0, &_FS0);
|
3439
|
-
#line
|
3447
|
+
#line 2668 "informixc.ec"
|
3440
3448
|
}
|
3441
3449
|
if (SQLCODE < 0)
|
3442
3450
|
raise_ifx_extended();
|
@@ -3465,13 +3473,13 @@ each(VALUE self, VALUE type, VALUE bang)
|
|
3465
3473
|
/*
|
3466
3474
|
* EXEC SQL begin declare section;
|
3467
3475
|
*/
|
3468
|
-
#line
|
3469
|
-
#line
|
3476
|
+
#line 2693 "informixc.ec"
|
3477
|
+
#line 2694 "informixc.ec"
|
3470
3478
|
char *cid, *did;
|
3471
3479
|
/*
|
3472
3480
|
* EXEC SQL end declare section;
|
3473
3481
|
*/
|
3474
|
-
#line
|
3482
|
+
#line 2695 "informixc.ec"
|
3475
3483
|
|
3476
3484
|
short c_bang;
|
3477
3485
|
struct sqlda *output;
|
@@ -3485,11 +3493,11 @@ each(VALUE self, VALUE type, VALUE bang)
|
|
3485
3493
|
/*
|
3486
3494
|
* EXEC SQL set connection :did;
|
3487
3495
|
*/
|
3488
|
-
#line
|
3496
|
+
#line 2705 "informixc.ec"
|
3489
3497
|
{
|
3490
|
-
#line
|
3498
|
+
#line 2705 "informixc.ec"
|
3491
3499
|
sqli_connect_set(0, did, 0);
|
3492
|
-
#line
|
3500
|
+
#line 2705 "informixc.ec"
|
3493
3501
|
}
|
3494
3502
|
if (SQLCODE < 0)
|
3495
3503
|
raise_ifx_extended();
|
@@ -3501,12 +3509,12 @@ each(VALUE self, VALUE type, VALUE bang)
|
|
3501
3509
|
/*
|
3502
3510
|
* EXEC SQL fetch :cid using descriptor output;
|
3503
3511
|
*/
|
3504
|
-
#line
|
3512
|
+
#line 2713 "informixc.ec"
|
3505
3513
|
{
|
3506
|
-
#line
|
3514
|
+
#line 2713 "informixc.ec"
|
3507
3515
|
static _FetchSpec _FS0 = { 0, 1, 0 };
|
3508
3516
|
sqli_curs_fetch(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, cid, 256), (ifx_sqlda_t *)0, output, (char *)0, &_FS0);
|
3509
|
-
#line
|
3517
|
+
#line 2713 "informixc.ec"
|
3510
3518
|
}
|
3511
3519
|
if (SQLCODE < 0)
|
3512
3520
|
raise_ifx_extended();
|
@@ -3568,13 +3576,13 @@ rb_inscur_put(int argc, VALUE *argv, VALUE self)
|
|
3568
3576
|
/*
|
3569
3577
|
* EXEC SQL begin declare section;
|
3570
3578
|
*/
|
3571
|
-
#line
|
3572
|
-
#line
|
3579
|
+
#line 2771 "informixc.ec"
|
3580
|
+
#line 2772 "informixc.ec"
|
3573
3581
|
char *cid, *did;
|
3574
3582
|
/*
|
3575
3583
|
* EXEC SQL end declare section;
|
3576
3584
|
*/
|
3577
|
-
#line
|
3585
|
+
#line 2773 "informixc.ec"
|
3578
3586
|
|
3579
3587
|
|
3580
3588
|
Data_Get_Struct(self, cursor_t, c);
|
@@ -3585,11 +3593,11 @@ rb_inscur_put(int argc, VALUE *argv, VALUE self)
|
|
3585
3593
|
/*
|
3586
3594
|
* EXEC SQL set connection :did;
|
3587
3595
|
*/
|
3588
|
-
#line
|
3596
|
+
#line 2780 "informixc.ec"
|
3589
3597
|
{
|
3590
|
-
#line
|
3598
|
+
#line 2780 "informixc.ec"
|
3591
3599
|
sqli_connect_set(0, did, 0);
|
3592
|
-
#line
|
3600
|
+
#line 2780 "informixc.ec"
|
3593
3601
|
}
|
3594
3602
|
if (SQLCODE < 0)
|
3595
3603
|
raise_ifx_extended();
|
@@ -3605,11 +3613,11 @@ rb_inscur_put(int argc, VALUE *argv, VALUE self)
|
|
3605
3613
|
/*
|
3606
3614
|
* EXEC SQL put :cid using descriptor input;
|
3607
3615
|
*/
|
3608
|
-
#line
|
3616
|
+
#line 2792 "informixc.ec"
|
3609
3617
|
{
|
3610
|
-
#line
|
3618
|
+
#line 2792 "informixc.ec"
|
3611
3619
|
sqli_curs_put(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, cid, 256), input, (char *)0);
|
3612
|
-
#line
|
3620
|
+
#line 2792 "informixc.ec"
|
3613
3621
|
}
|
3614
3622
|
clean_input_slots(c);
|
3615
3623
|
if (SQLCODE < 0)
|
@@ -3634,13 +3642,13 @@ rb_inscur_flush(VALUE self)
|
|
3634
3642
|
/*
|
3635
3643
|
* EXEC SQL begin declare section;
|
3636
3644
|
*/
|
3637
|
-
#line
|
3638
|
-
#line
|
3645
|
+
#line 2813 "informixc.ec"
|
3646
|
+
#line 2814 "informixc.ec"
|
3639
3647
|
char *cid, *did;
|
3640
3648
|
/*
|
3641
3649
|
* EXEC SQL end declare section;
|
3642
3650
|
*/
|
3643
|
-
#line
|
3651
|
+
#line 2815 "informixc.ec"
|
3644
3652
|
|
3645
3653
|
|
3646
3654
|
Data_Get_Struct(self, cursor_t, c);
|
@@ -3651,11 +3659,11 @@ rb_inscur_flush(VALUE self)
|
|
3651
3659
|
/*
|
3652
3660
|
* EXEC SQL set connection :did;
|
3653
3661
|
*/
|
3654
|
-
#line
|
3662
|
+
#line 2822 "informixc.ec"
|
3655
3663
|
{
|
3656
|
-
#line
|
3664
|
+
#line 2822 "informixc.ec"
|
3657
3665
|
sqli_connect_set(0, did, 0);
|
3658
|
-
#line
|
3666
|
+
#line 2822 "informixc.ec"
|
3659
3667
|
}
|
3660
3668
|
if (SQLCODE < 0)
|
3661
3669
|
raise_ifx_extended();
|
@@ -3664,11 +3672,11 @@ rb_inscur_flush(VALUE self)
|
|
3664
3672
|
/*
|
3665
3673
|
* EXEC SQL flush :cid;
|
3666
3674
|
*/
|
3667
|
-
#line
|
3675
|
+
#line 2827 "informixc.ec"
|
3668
3676
|
{
|
3669
|
-
#line
|
3677
|
+
#line 2827 "informixc.ec"
|
3670
3678
|
sqli_curs_flush(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, cid, 256));
|
3671
|
-
#line
|
3679
|
+
#line 2827 "informixc.ec"
|
3672
3680
|
}
|
3673
3681
|
return self;
|
3674
3682
|
}
|
@@ -3689,14 +3697,14 @@ rb_scrollcur_entry(VALUE self, VALUE index, VALUE type, VALUE bang)
|
|
3689
3697
|
/*
|
3690
3698
|
* EXEC SQL begin declare section;
|
3691
3699
|
*/
|
3692
|
-
#line
|
3693
|
-
#line
|
3700
|
+
#line 2844 "informixc.ec"
|
3701
|
+
#line 2845 "informixc.ec"
|
3694
3702
|
char *cid, *did;
|
3695
3703
|
long pos;
|
3696
3704
|
/*
|
3697
3705
|
* EXEC SQL end declare section;
|
3698
3706
|
*/
|
3699
|
-
#line
|
3707
|
+
#line 2847 "informixc.ec"
|
3700
3708
|
|
3701
3709
|
|
3702
3710
|
Data_Get_Struct(self, cursor_t, c);
|
@@ -3707,11 +3715,11 @@ long pos;
|
|
3707
3715
|
/*
|
3708
3716
|
* EXEC SQL set connection :did;
|
3709
3717
|
*/
|
3710
|
-
#line
|
3718
|
+
#line 2854 "informixc.ec"
|
3711
3719
|
{
|
3712
|
-
#line
|
3720
|
+
#line 2854 "informixc.ec"
|
3713
3721
|
sqli_connect_set(0, did, 0);
|
3714
|
-
#line
|
3722
|
+
#line 2854 "informixc.ec"
|
3715
3723
|
}
|
3716
3724
|
if (SQLCODE < 0)
|
3717
3725
|
return Qnil;
|
@@ -3723,60 +3731,60 @@ long pos;
|
|
3723
3731
|
/*
|
3724
3732
|
* EXEC SQL fetch current :cid using descriptor output;
|
3725
3733
|
*/
|
3726
|
-
#line
|
3734
|
+
#line 2862 "informixc.ec"
|
3727
3735
|
{
|
3728
|
-
#line
|
3736
|
+
#line 2862 "informixc.ec"
|
3729
3737
|
static _FetchSpec _FS0 = { 0, 5, 0 };
|
3730
3738
|
sqli_curs_fetch(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, cid, 256), (ifx_sqlda_t *)0, output, (char *)0, &_FS0);
|
3731
|
-
#line
|
3739
|
+
#line 2862 "informixc.ec"
|
3732
3740
|
}
|
3733
3741
|
else if ((pos = NUM2LONG(index) + 1) > 0)
|
3734
3742
|
/*
|
3735
3743
|
* EXEC SQL fetch absolute :pos :cid using descriptor output;
|
3736
3744
|
*/
|
3737
|
-
#line
|
3745
|
+
#line 2864 "informixc.ec"
|
3738
3746
|
{
|
3739
|
-
#line
|
3747
|
+
#line 2864 "informixc.ec"
|
3740
3748
|
static ifx_sqlvar_t _sqibind[] =
|
3741
3749
|
{
|
3742
3750
|
{ 103, sizeof(pos), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
3743
|
-
#line
|
3751
|
+
#line 2864 "informixc.ec"
|
3744
3752
|
};
|
3745
3753
|
static ifx_sqlda_t _SD0 = { 1, _sqibind, {0}, 1, 0 };
|
3746
3754
|
static _FetchSpec _FS1 = { 0, 6, 0 };
|
3747
|
-
#line
|
3755
|
+
#line 2864 "informixc.ec"
|
3748
3756
|
_sqibind[0].sqldata = (char *) &pos;
|
3749
3757
|
sqli_curs_fetch(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, cid, 256), &_SD0, output, (char *)0, &_FS1);
|
3750
|
-
#line
|
3758
|
+
#line 2864 "informixc.ec"
|
3751
3759
|
}
|
3752
3760
|
else {
|
3753
3761
|
/*
|
3754
3762
|
* EXEC SQL fetch last :cid;
|
3755
3763
|
*/
|
3756
|
-
#line
|
3764
|
+
#line 2866 "informixc.ec"
|
3757
3765
|
{
|
3758
|
-
#line
|
3766
|
+
#line 2866 "informixc.ec"
|
3759
3767
|
static _FetchSpec _FS0 = { 0, 4, 0 };
|
3760
3768
|
sqli_curs_fetch(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, cid, 256), (ifx_sqlda_t *)0, (ifx_sqlda_t *)0, (char *)0, &_FS0);
|
3761
|
-
#line
|
3769
|
+
#line 2866 "informixc.ec"
|
3762
3770
|
}
|
3763
3771
|
/*
|
3764
3772
|
* EXEC SQL fetch relative :pos :cid using descriptor output;
|
3765
3773
|
*/
|
3766
|
-
#line
|
3774
|
+
#line 2867 "informixc.ec"
|
3767
3775
|
{
|
3768
|
-
#line
|
3776
|
+
#line 2867 "informixc.ec"
|
3769
3777
|
static ifx_sqlvar_t _sqibind[] =
|
3770
3778
|
{
|
3771
3779
|
{ 103, sizeof(pos), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
3772
|
-
#line
|
3780
|
+
#line 2867 "informixc.ec"
|
3773
3781
|
};
|
3774
3782
|
static ifx_sqlda_t _SD0 = { 1, _sqibind, {0}, 1, 0 };
|
3775
3783
|
static _FetchSpec _FS1 = { 0, 7, 0 };
|
3776
|
-
#line
|
3784
|
+
#line 2867 "informixc.ec"
|
3777
3785
|
_sqibind[0].sqldata = (char *) &pos;
|
3778
3786
|
sqli_curs_fetch(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, cid, 256), &_SD0, output, (char *)0, &_FS1);
|
3779
|
-
#line
|
3787
|
+
#line 2867 "informixc.ec"
|
3780
3788
|
}
|
3781
3789
|
}
|
3782
3790
|
|
@@ -3804,14 +3812,14 @@ rb_scrollcur_rel(VALUE self, VALUE offset, VALUE type, VALUE bang)
|
|
3804
3812
|
/*
|
3805
3813
|
* EXEC SQL begin declare section;
|
3806
3814
|
*/
|
3807
|
-
#line
|
3808
|
-
#line
|
3815
|
+
#line 2891 "informixc.ec"
|
3816
|
+
#line 2892 "informixc.ec"
|
3809
3817
|
char *cid, *did;
|
3810
3818
|
long pos;
|
3811
3819
|
/*
|
3812
3820
|
* EXEC SQL end declare section;
|
3813
3821
|
*/
|
3814
|
-
#line
|
3822
|
+
#line 2894 "informixc.ec"
|
3815
3823
|
|
3816
3824
|
|
3817
3825
|
Data_Get_Struct(self, cursor_t, c);
|
@@ -3822,11 +3830,11 @@ long pos;
|
|
3822
3830
|
/*
|
3823
3831
|
* EXEC SQL set connection :did;
|
3824
3832
|
*/
|
3825
|
-
#line
|
3833
|
+
#line 2901 "informixc.ec"
|
3826
3834
|
{
|
3827
|
-
#line
|
3835
|
+
#line 2901 "informixc.ec"
|
3828
3836
|
sqli_connect_set(0, did, 0);
|
3829
|
-
#line
|
3837
|
+
#line 2901 "informixc.ec"
|
3830
3838
|
}
|
3831
3839
|
if (SQLCODE < 0)
|
3832
3840
|
return Qnil;
|
@@ -3838,20 +3846,20 @@ long pos;
|
|
3838
3846
|
/*
|
3839
3847
|
* EXEC SQL fetch relative :pos :cid using descriptor output;
|
3840
3848
|
*/
|
3841
|
-
#line
|
3849
|
+
#line 2909 "informixc.ec"
|
3842
3850
|
{
|
3843
|
-
#line
|
3851
|
+
#line 2909 "informixc.ec"
|
3844
3852
|
static ifx_sqlvar_t _sqibind[] =
|
3845
3853
|
{
|
3846
3854
|
{ 103, sizeof(pos), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
3847
|
-
#line
|
3855
|
+
#line 2909 "informixc.ec"
|
3848
3856
|
};
|
3849
3857
|
static ifx_sqlda_t _SD0 = { 1, _sqibind, {0}, 1, 0 };
|
3850
3858
|
static _FetchSpec _FS1 = { 0, 7, 0 };
|
3851
|
-
#line
|
3859
|
+
#line 2909 "informixc.ec"
|
3852
3860
|
_sqibind[0].sqldata = (char *) &pos;
|
3853
3861
|
sqli_curs_fetch(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, cid, 256), &_SD0, output, (char *)0, &_FS1);
|
3854
|
-
#line
|
3862
|
+
#line 2909 "informixc.ec"
|
3855
3863
|
}
|
3856
3864
|
|
3857
3865
|
if (SQLCODE == SQLNOTFOUND)
|
@@ -3873,13 +3881,13 @@ cursorbase_close_or_free(cursor_t *c, short op)
|
|
3873
3881
|
/*
|
3874
3882
|
* EXEC SQL begin declare section;
|
3875
3883
|
*/
|
3876
|
-
#line
|
3877
|
-
#line
|
3884
|
+
#line 2927 "informixc.ec"
|
3885
|
+
#line 2928 "informixc.ec"
|
3878
3886
|
char *cid, *sid, *did;
|
3879
3887
|
/*
|
3880
3888
|
* EXEC SQL end declare section;
|
3881
3889
|
*/
|
3882
|
-
#line
|
3890
|
+
#line 2929 "informixc.ec"
|
3883
3891
|
|
3884
3892
|
|
3885
3893
|
if (op == 1 && !c->is_open)
|
@@ -3895,11 +3903,11 @@ cursorbase_close_or_free(cursor_t *c, short op)
|
|
3895
3903
|
/*
|
3896
3904
|
* EXEC SQL set connection :did;
|
3897
3905
|
*/
|
3898
|
-
#line
|
3906
|
+
#line 2941 "informixc.ec"
|
3899
3907
|
{
|
3900
|
-
#line
|
3908
|
+
#line 2941 "informixc.ec"
|
3901
3909
|
sqli_connect_set(0, did, 0);
|
3902
|
-
#line
|
3910
|
+
#line 2941 "informixc.ec"
|
3903
3911
|
}
|
3904
3912
|
if (SQLCODE < 0)
|
3905
3913
|
return;
|
@@ -3907,22 +3915,22 @@ cursorbase_close_or_free(cursor_t *c, short op)
|
|
3907
3915
|
/*
|
3908
3916
|
* EXEC SQL close :cid;
|
3909
3917
|
*/
|
3910
|
-
#line
|
3918
|
+
#line 2945 "informixc.ec"
|
3911
3919
|
{
|
3912
|
-
#line
|
3920
|
+
#line 2945 "informixc.ec"
|
3913
3921
|
sqli_curs_close(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, cid, 256));
|
3914
|
-
#line
|
3922
|
+
#line 2945 "informixc.ec"
|
3915
3923
|
}
|
3916
3924
|
if (op == 1)
|
3917
3925
|
break;
|
3918
3926
|
/*
|
3919
3927
|
* EXEC SQL free :cid;
|
3920
3928
|
*/
|
3921
|
-
#line
|
3929
|
+
#line 2948 "informixc.ec"
|
3922
3930
|
{
|
3923
|
-
#line
|
3931
|
+
#line 2948 "informixc.ec"
|
3924
3932
|
sqli_curs_free(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, cid, 258));
|
3925
|
-
#line
|
3933
|
+
#line 2948 "informixc.ec"
|
3926
3934
|
}
|
3927
3935
|
st_free(c);
|
3928
3936
|
break;
|
@@ -3990,13 +3998,13 @@ rb_cursorbase_open(int argc, VALUE *argv, VALUE self)
|
|
3990
3998
|
/*
|
3991
3999
|
* EXEC SQL begin declare section;
|
3992
4000
|
*/
|
3993
|
-
#line
|
3994
|
-
#line
|
4001
|
+
#line 3012 "informixc.ec"
|
4002
|
+
#line 3013 "informixc.ec"
|
3995
4003
|
char *cid, *did;
|
3996
4004
|
/*
|
3997
4005
|
* EXEC SQL end declare section;
|
3998
4006
|
*/
|
3999
|
-
#line
|
4007
|
+
#line 3014 "informixc.ec"
|
4000
4008
|
|
4001
4009
|
|
4002
4010
|
Data_Get_Struct(self, cursor_t, c);
|
@@ -4008,11 +4016,11 @@ rb_cursorbase_open(int argc, VALUE *argv, VALUE self)
|
|
4008
4016
|
/*
|
4009
4017
|
* EXEC SQL set connection :did;
|
4010
4018
|
*/
|
4011
|
-
#line
|
4019
|
+
#line 3022 "informixc.ec"
|
4012
4020
|
{
|
4013
|
-
#line
|
4021
|
+
#line 3022 "informixc.ec"
|
4014
4022
|
sqli_connect_set(0, did, 0);
|
4015
|
-
#line
|
4023
|
+
#line 3022 "informixc.ec"
|
4016
4024
|
}
|
4017
4025
|
if (SQLCODE < 0)
|
4018
4026
|
raise_ifx_extended();
|
@@ -4031,11 +4039,11 @@ rb_cursorbase_open(int argc, VALUE *argv, VALUE self)
|
|
4031
4039
|
* EXEC SQL open :cid using descriptor input
|
4032
4040
|
* with reoptimization;
|
4033
4041
|
*/
|
4034
|
-
#line
|
4042
|
+
#line 3036 "informixc.ec"
|
4035
4043
|
{
|
4036
|
-
#line
|
4044
|
+
#line 3037 "informixc.ec"
|
4037
4045
|
sqli_curs_open(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, cid, 256), input, (char *)0, (struct value *)0, 1, 1);
|
4038
|
-
#line
|
4046
|
+
#line 3037 "informixc.ec"
|
4039
4047
|
}
|
4040
4048
|
clean_input_slots(c);
|
4041
4049
|
}
|
@@ -4043,22 +4051,22 @@ rb_cursorbase_open(int argc, VALUE *argv, VALUE self)
|
|
4043
4051
|
/*
|
4044
4052
|
* EXEC SQL open :cid with reoptimization;
|
4045
4053
|
*/
|
4046
|
-
#line
|
4054
|
+
#line 3041 "informixc.ec"
|
4047
4055
|
{
|
4048
|
-
#line
|
4056
|
+
#line 3041 "informixc.ec"
|
4049
4057
|
sqli_curs_open(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, cid, 256), (ifx_sqlda_t *)0, (char *)0, (struct value *)0, 0, 1);
|
4050
|
-
#line
|
4058
|
+
#line 3041 "informixc.ec"
|
4051
4059
|
}
|
4052
4060
|
}
|
4053
4061
|
else
|
4054
4062
|
/*
|
4055
4063
|
* EXEC SQL open :cid;
|
4056
4064
|
*/
|
4057
|
-
#line
|
4065
|
+
#line 3044 "informixc.ec"
|
4058
4066
|
{
|
4059
|
-
#line
|
4067
|
+
#line 3044 "informixc.ec"
|
4060
4068
|
sqli_curs_open(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, cid, 256), (ifx_sqlda_t *)0, (char *)0, (struct value *)0, 0, 0);
|
4061
|
-
#line
|
4069
|
+
#line 3044 "informixc.ec"
|
4062
4070
|
}
|
4063
4071
|
|
4064
4072
|
if (SQLCODE < 0)
|
@@ -4115,40 +4123,47 @@ rb_cursor_s_new0(int argc, VALUE *argv, VALUE self)
|
|
4115
4123
|
VALUE scroll, hold;
|
4116
4124
|
struct sqlda *output;
|
4117
4125
|
cursor_t c, *cur;
|
4126
|
+
database_t *dbt;
|
4127
|
+
long id;
|
4118
4128
|
/*
|
4119
4129
|
* EXEC SQL begin declare section;
|
4120
4130
|
*/
|
4121
|
-
#line
|
4122
|
-
#line
|
4131
|
+
#line 3102 "informixc.ec"
|
4132
|
+
#line 3103 "informixc.ec"
|
4123
4133
|
char *c_query;
|
4124
4134
|
char *cid, *sid, *did;
|
4125
4135
|
/*
|
4126
4136
|
* EXEC SQL end declare section;
|
4127
4137
|
*/
|
4128
|
-
#line
|
4138
|
+
#line 3105 "informixc.ec"
|
4129
4139
|
|
4130
4140
|
|
4131
4141
|
memset(&c, 0, sizeof(c));
|
4132
4142
|
rb_scan_args(argc, argv, "21", &db, &query, &options);
|
4133
|
-
Data_Get_Struct(db,
|
4134
|
-
|
4143
|
+
Data_Get_Struct(db, database_t, dbt);
|
4144
|
+
did = dbt->database_id;
|
4145
|
+
fprintf(stderr, "%s\n", did);
|
4146
|
+
fflush(stderr);
|
4135
4147
|
/*
|
4136
4148
|
* EXEC SQL set connection :did;
|
4137
4149
|
*/
|
4138
|
-
#line
|
4150
|
+
#line 3113 "informixc.ec"
|
4139
4151
|
{
|
4140
|
-
#line
|
4152
|
+
#line 3113 "informixc.ec"
|
4141
4153
|
sqli_connect_set(0, did, 0);
|
4142
|
-
#line
|
4154
|
+
#line 3113 "informixc.ec"
|
4143
4155
|
}
|
4156
|
+
|
4144
4157
|
if (SQLCODE < 0)
|
4145
4158
|
raise_ifx_extended();
|
4146
4159
|
|
4147
4160
|
c.db = db;
|
4148
4161
|
c.database_id = did;
|
4149
4162
|
scroll = hold = Qfalse;
|
4150
|
-
|
4151
|
-
|
4163
|
+
/*id = random();*/
|
4164
|
+
id = dbt->idcount++;
|
4165
|
+
snprintf(c.cursor_id, sizeof(c.cursor_id), "CUR%lX", id);
|
4166
|
+
snprintf(c.stmt_id, sizeof(c.stmt_id), "STMT%lX", id);
|
4152
4167
|
cid = c.cursor_id; sid = c.stmt_id;
|
4153
4168
|
c_query = StringValueCStr(query);
|
4154
4169
|
|
@@ -4161,11 +4176,11 @@ rb_cursor_s_new0(int argc, VALUE *argv, VALUE self)
|
|
4161
4176
|
/*
|
4162
4177
|
* EXEC SQL prepare :sid from :c_query;
|
4163
4178
|
*/
|
4164
|
-
#line
|
4179
|
+
#line 3134 "informixc.ec"
|
4165
4180
|
{
|
4166
|
-
#line
|
4181
|
+
#line 3134 "informixc.ec"
|
4167
4182
|
sqli_prep(ESQLINTVERSION, sid, c_query,(ifx_literal_t *)0, (ifx_namelist_t *)0, -1, 0, 0 );
|
4168
|
-
#line
|
4183
|
+
#line 3134 "informixc.ec"
|
4169
4184
|
}
|
4170
4185
|
if (SQLCODE < 0)
|
4171
4186
|
raise_ifx_extended();
|
@@ -4174,41 +4189,41 @@ rb_cursor_s_new0(int argc, VALUE *argv, VALUE self)
|
|
4174
4189
|
/*
|
4175
4190
|
* EXEC SQL declare :cid scroll cursor with hold for :sid;
|
4176
4191
|
*/
|
4177
|
-
#line
|
4192
|
+
#line 3139 "informixc.ec"
|
4178
4193
|
{
|
4179
|
-
#line
|
4194
|
+
#line 3139 "informixc.ec"
|
4180
4195
|
sqli_curs_decl_dynm(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, cid, 0), cid, sqli_curs_locate(ESQLINTVERSION, sid, 1), 4128, 0);
|
4181
|
-
#line
|
4196
|
+
#line 3139 "informixc.ec"
|
4182
4197
|
}
|
4183
4198
|
else if (RTEST(hold))
|
4184
4199
|
/*
|
4185
4200
|
* EXEC SQL declare :cid cursor with hold for :sid;
|
4186
4201
|
*/
|
4187
|
-
#line
|
4202
|
+
#line 3141 "informixc.ec"
|
4188
4203
|
{
|
4189
|
-
#line
|
4204
|
+
#line 3141 "informixc.ec"
|
4190
4205
|
sqli_curs_decl_dynm(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, cid, 0), cid, sqli_curs_locate(ESQLINTVERSION, sid, 1), 4096, 0);
|
4191
|
-
#line
|
4206
|
+
#line 3141 "informixc.ec"
|
4192
4207
|
}
|
4193
4208
|
else if (RTEST(scroll))
|
4194
4209
|
/*
|
4195
4210
|
* EXEC SQL declare :cid scroll cursor for :sid;
|
4196
4211
|
*/
|
4197
|
-
#line
|
4212
|
+
#line 3143 "informixc.ec"
|
4198
4213
|
{
|
4199
|
-
#line
|
4214
|
+
#line 3143 "informixc.ec"
|
4200
4215
|
sqli_curs_decl_dynm(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, cid, 0), cid, sqli_curs_locate(ESQLINTVERSION, sid, 1), 32, 0);
|
4201
|
-
#line
|
4216
|
+
#line 3143 "informixc.ec"
|
4202
4217
|
}
|
4203
4218
|
else
|
4204
4219
|
/*
|
4205
4220
|
* EXEC SQL declare :cid cursor for :sid;
|
4206
4221
|
*/
|
4207
|
-
#line
|
4222
|
+
#line 3145 "informixc.ec"
|
4208
4223
|
{
|
4209
|
-
#line
|
4224
|
+
#line 3145 "informixc.ec"
|
4210
4225
|
sqli_curs_decl_dynm(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, cid, 0), cid, sqli_curs_locate(ESQLINTVERSION, sid, 1), 0, 0);
|
4211
|
-
#line
|
4226
|
+
#line 3145 "informixc.ec"
|
4212
4227
|
}
|
4213
4228
|
|
4214
4229
|
if (SQLCODE < 0)
|
@@ -4218,11 +4233,11 @@ rb_cursor_s_new0(int argc, VALUE *argv, VALUE self)
|
|
4218
4233
|
/*
|
4219
4234
|
* EXEC SQL describe :sid into output;
|
4220
4235
|
*/
|
4221
|
-
#line
|
4236
|
+
#line 3151 "informixc.ec"
|
4222
4237
|
{
|
4223
|
-
#line
|
4238
|
+
#line 3151 "informixc.ec"
|
4224
4239
|
sqli_describe_stmt(ESQLINTVERSION, sqli_curs_locate(ESQLINTVERSION, sid, 257), &output, 0);
|
4225
|
-
#line
|
4240
|
+
#line 3151 "informixc.ec"
|
4226
4241
|
}
|
4227
4242
|
c.daOutput = output;
|
4228
4243
|
|
@@ -4515,4 +4530,4 @@ void Init_informixc(void)
|
|
4515
4530
|
sym_params = ID2SYM(rb_intern("params"));
|
4516
4531
|
}
|
4517
4532
|
|
4518
|
-
#line
|
4533
|
+
#line 3441 "informixc.ec"
|