transactd 3.6.1 → 3.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (30) hide show
  1. checksums.yaml +4 -4
  2. data/bin/common/{tdclc_32_3_6.dll → tdclc_32_3_7.dll} +0 -0
  3. data/bin/common/{tdclc_64_3_6.dll → tdclc_64_3_7.dll} +0 -0
  4. data/build/swig/ruby/tdclrb_wrap.cpp +125 -17
  5. data/build/tdclc/tdclc.cbproj +1 -1
  6. data/build/tdclc/tdclc.rc +4 -4
  7. data/build/tdclcpp/tdclcpp.rc +4 -4
  8. data/build/tdclcpp/tdclcpp_bc.cbproj +1 -1
  9. data/build/tdclrb/tdclrb.rc +4 -4
  10. data/source/bzs/db/protocol/tdap/client/field.cpp +24 -0
  11. data/source/bzs/db/protocol/tdap/client/field.h +2 -0
  12. data/source/bzs/db/protocol/tdap/client/groupQuery.cpp +243 -59
  13. data/source/bzs/db/protocol/tdap/client/groupQuery.h +8 -0
  14. data/source/bzs/db/protocol/tdap/client/memRecord.cpp +19 -6
  15. data/source/bzs/db/protocol/tdap/client/memRecord.h +10 -1
  16. data/source/bzs/db/protocol/tdap/client/recordset.cpp +17 -0
  17. data/source/bzs/db/protocol/tdap/client/recordset.h +3 -0
  18. data/source/bzs/db/protocol/tdap/client/recordsetImple.h +131 -30
  19. data/source/bzs/db/protocol/tdap/client/table.cpp +11 -2
  20. data/source/bzs/db/protocol/tdap/mysql/recordsetReader.h +1 -0
  21. data/source/bzs/db/protocol/tdap/tdapcapi.h +5 -5
  22. data/source/bzs/test/tdclatl/test_v3.js +22 -0
  23. data/source/bzs/test/tdclphp/transactd_v3_Test.php +35 -0
  24. data/source/bzs/test/tdclrb/transactd_v3_spec.rb +40 -0
  25. data/source/bzs/test/trdclengn/testField.h +320 -0
  26. data/source/bzs/test/trdclengn/test_tdclcpp_v3.cpp +9 -0
  27. data/source/global/tdclatl/Recordset.cpp +44 -2
  28. data/source/global/tdclatl/Recordset.h +6 -2
  29. data/source/global/tdclatl/tdclatl.idl +5 -1
  30. metadata +4 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e02c507a10f36f6c37d43e624c1bafc4416e6b67
4
- data.tar.gz: 337df3d8b1c58be04d5ee5f01ba317e08963fdd8
3
+ metadata.gz: 0c0edf9273f89a9100b3fbc8223ebd9dba7554ad
4
+ data.tar.gz: 6a3193ada9a34d44721df40a26e6de4840a4115a
5
5
  SHA512:
6
- metadata.gz: 4537e3aae536a5f3b5b15109614f488280ec1d1cf589f717f7de285d802320166c18f366e21d32e4cb6ac70f388cf11d27593dc6ee3058187a54c7b0e3b70237
7
- data.tar.gz: 266b14eacd03941c7d270bf6659abde9fef56aea0a1c3fa31931e2c9443c22079c0d1e6924a2b078c1464d73801a5a791eea0f051ebd487a73e81b59d81a929e
6
+ metadata.gz: d7a69ed53774639ed5354020ab48475980dfab2083562ffdda389591e2317321dc6c01104a960cc42c0e7dd32be66f292667ea9a198c0a56da36d6d93250c00c
7
+ data.tar.gz: a09238a3672242d9faafd6a5034c9d8f581ad8ca08c0824e345e88392fcd1490e6eeb1382f806a94ec156ccd2f61331dedb9aac96542ca0d0f72edb13a7edc17
@@ -22948,6 +22948,92 @@ fail:
22948
22948
  }
22949
22949
 
22950
22950
 
22951
+ SWIGINTERN VALUE
22952
+ _wrap_Recordset_join(int argc, VALUE *argv, VALUE self) {
22953
+ tdap::client::recordset *arg1 = 0 ;
22954
+ tdap::client::recordset *arg2 = 0 ;
22955
+ tdap::client::recordsetQuery *arg3 = 0 ;
22956
+ void *argp2 = 0 ;
22957
+ void *argp3 = 0 ;
22958
+ int res2 = 0 ;
22959
+ int res3 = 0 ;
22960
+
22961
+ if (!check_param_count(argc, 2, 2)) return Qnil;
22962
+ arg1 = selfPtr(self, arg1);
22963
+
22964
+ res2 = SWIG_ConvertPtr(argv[0], &argp2, SWIGTYPE_p_bzs__recordset, 0 );
22965
+ if (!SWIG_IsOK(res2)) {
22966
+ SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "tdap::client::recordset &","join", 2, argv[0] ));
22967
+ }
22968
+ if (!argp2) {
22969
+ SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "tdap::client::recordset &","join", 1, argv[0]));
22970
+ }
22971
+
22972
+ res3 = SWIG_ConvertPtr(argv[1], &argp3, SWIGTYPE_p_bzs__recordsetQuery, 0 );
22973
+ if (!SWIG_IsOK(res3)) {
22974
+ SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "tdap::client::recordsetQuery &","join", 3, argv[1] ));
22975
+ }
22976
+ if (!argp3) {
22977
+ SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "tdap::client::recordsetQuery &","join", 2, argv[1]));
22978
+ }
22979
+
22980
+ arg2 = reinterpret_cast< tdap::client::recordset * >(argp2);
22981
+ arg3 = reinterpret_cast< tdap::client::recordsetQuery * >(argp3);
22982
+ {
22983
+ try {
22984
+ arg1->join(*arg2, *arg3);
22985
+ }
22986
+ CATCH_BZS_AND_STD()
22987
+ }
22988
+ return self;
22989
+ fail:
22990
+ return Qnil;
22991
+ }
22992
+
22993
+
22994
+ SWIGINTERN VALUE
22995
+ _wrap_Recordset_outerJoin(int argc, VALUE *argv, VALUE self) {
22996
+ tdap::client::recordset *arg1 = 0 ;
22997
+ tdap::client::recordset *arg2 = 0 ;
22998
+ tdap::client::recordsetQuery *arg3 = 0 ;
22999
+ void *argp2 = 0 ;
23000
+ void *argp3 = 0 ;
23001
+ int res2 = 0 ;
23002
+ int res3 = 0 ;
23003
+
23004
+ if (!check_param_count(argc, 2, 2)) return Qnil;
23005
+ arg1 = selfPtr(self, arg1);
23006
+
23007
+ res2 = SWIG_ConvertPtr(argv[0], &argp2, SWIGTYPE_p_bzs__recordset, 0 );
23008
+ if (!SWIG_IsOK(res2)) {
23009
+ SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "tdap::client::recordset &","outerJoin", 2, argv[0] ));
23010
+ }
23011
+ if (!argp2) {
23012
+ SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "tdap::client::recordset &","outerJoin", 1, argv[0]));
23013
+ }
23014
+
23015
+ res3 = SWIG_ConvertPtr(argv[1], &argp3, SWIGTYPE_p_bzs__recordsetQuery, 0 );
23016
+ if (!SWIG_IsOK(res3)) {
23017
+ SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "tdap::client::recordsetQuery &","outerJoin", 3, argv[1] ));
23018
+ }
23019
+ if (!argp3) {
23020
+ SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "tdap::client::recordsetQuery &","outerJoin", 2, argv[1]));
23021
+ }
23022
+
23023
+ arg2 = reinterpret_cast< tdap::client::recordset * >(argp2);
23024
+ arg3 = reinterpret_cast< tdap::client::recordsetQuery * >(argp3);
23025
+ {
23026
+ try {
23027
+ arg1->outerJoin(*arg2, *arg3);
23028
+ }
23029
+ CATCH_BZS_AND_STD()
23030
+ }
23031
+ return self;
23032
+ fail:
23033
+ return Qnil;
23034
+ }
23035
+
23036
+
22951
23037
  SWIGINTERN VALUE
22952
23038
  _wrap_Recordset_matchBy(int argc, VALUE *argv, VALUE self) {
22953
23039
  tdap::client::recordset *arg1 = (tdap::client::recordset *) 0 ;
@@ -23075,7 +23161,9 @@ fail:
23075
23161
  SWIGINTERN VALUE
23076
23162
  _wrap_Recordset_appendField(int argc, VALUE *argv, VALUE self) {
23077
23163
  tdap::client::recordset *arg1 = (tdap::client::recordset *) 0 ;
23164
+ tdap::fielddef *fd = 0 ;
23078
23165
  _TCHAR *arg2 = (_TCHAR *) 0 ;
23166
+ void *argp2 ;
23079
23167
  int arg3 ;
23080
23168
  short arg4 ;
23081
23169
  int res2 ;
@@ -23086,27 +23174,44 @@ _wrap_Recordset_appendField(int argc, VALUE *argv, VALUE self) {
23086
23174
  short val4 ;
23087
23175
  int ecode4 = 0 ;
23088
23176
 
23089
- if (!check_param_count(argc, 3, 3)) return Qnil;
23090
-
23177
+ if (!check_param_count(argc, 1, 3)) return Qnil;
23091
23178
  arg1 = selfPtr(self, arg1);
23092
- res2 = SWIG_AsCharPtrAndSize(argv[0], &buf2, NULL, &alloc2);
23093
- if (!SWIG_IsOK(res2)) {
23094
- SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "_TCHAR const *","appendField", 2, argv[0] ));
23179
+
23180
+ if (TYPE(argv[0]) == T_STRING)
23181
+ {
23182
+ res2 = SWIG_AsCharPtrAndSize(argv[0], &buf2, NULL, &alloc2);
23183
+ if (!SWIG_IsOK(res2)) {
23184
+ SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "_TCHAR const *","appendField", 2, argv[0] ));
23185
+ }
23186
+ arg2 = reinterpret_cast< _TCHAR * >(buf2);
23187
+ ecode3 = SWIG_AsVal_int(argv[1], &val3);
23188
+ if (!SWIG_IsOK(ecode3)) {
23189
+ SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "int","appendField", 3, argv[1] ));
23190
+ }
23191
+ arg3 = static_cast< int >(val3);
23192
+ ecode4 = SWIG_AsVal_short(argv[2], &val4);
23193
+ if (!SWIG_IsOK(ecode4)) {
23194
+ SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "short","appendField", 4, argv[2] ));
23195
+ }
23196
+ arg4 = static_cast< short >(val4);
23197
+ }
23198
+ else
23199
+ {
23200
+ res2 = SWIG_ConvertPtr(argv[0], &argp2, SWIGTYPE_p_bzs__fielddef, 0 );
23201
+ if (!SWIG_IsOK(res2)) {
23202
+ SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "tdap::fielddef*","appendField", 2, argv[0] ));
23203
+ }
23204
+ if (!argp2) {
23205
+ SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "tdap::fielddef*","appendField", 2, argv[0]));
23206
+ }
23207
+ fd = reinterpret_cast< tdap::fielddef * >(argp2);
23095
23208
  }
23096
- arg2 = reinterpret_cast< _TCHAR * >(buf2);
23097
- ecode3 = SWIG_AsVal_int(argv[1], &val3);
23098
- if (!SWIG_IsOK(ecode3)) {
23099
- SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "int","appendField", 3, argv[1] ));
23100
- }
23101
- arg3 = static_cast< int >(val3);
23102
- ecode4 = SWIG_AsVal_short(argv[2], &val4);
23103
- if (!SWIG_IsOK(ecode4)) {
23104
- SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "short","appendField", 4, argv[2] ));
23105
- }
23106
- arg4 = static_cast< short >(val4);
23107
23209
  {
23108
23210
  try {
23109
- (arg1)->appendField((_TCHAR const *)arg2,arg3,arg4);
23211
+ if (fd)
23212
+ (arg1)->appendField(*fd);
23213
+ else
23214
+ (arg1)->appendField((_TCHAR const *)arg2,arg3,arg4);
23110
23215
  clearFieldsCache(self);
23111
23216
  }
23112
23217
  CATCH_BZS_AND_STD()
@@ -27765,6 +27870,8 @@ SWIGEXPORT void Init_transactd(void) {
27765
27870
  rb_define_method(SwigClassRecordset.klass, "top", VALUEFUNC(_wrap_Recordset_top), -1);
27766
27871
  rb_define_method(SwigClassRecordset.klass, "erase", VALUEFUNC(_wrap_Recordset_erase), -1);
27767
27872
  rb_define_method(SwigClassRecordset.klass, "removeField", VALUEFUNC(_wrap_Recordset_removeField), -1);
27873
+ rb_define_method(SwigClassRecordset.klass, "join", VALUEFUNC(_wrap_Recordset_join), -1);
27874
+ rb_define_method(SwigClassRecordset.klass, "outerJoin", VALUEFUNC(_wrap_Recordset_outerJoin), -1);
27768
27875
  rb_define_method(SwigClassRecordset.klass, "matchBy", VALUEFUNC(_wrap_Recordset_matchBy), -1);
27769
27876
  rb_define_method(SwigClassRecordset.klass, "groupBy", VALUEFUNC(_wrap_Recordset_groupBy), -1);
27770
27877
  rb_define_method(SwigClassRecordset.klass, "orderBy", VALUEFUNC(_wrap_Recordset_orderBy), -1);
@@ -27782,6 +27889,7 @@ SWIGEXPORT void Init_transactd(void) {
27782
27889
  rb_define_alias(SwigClassRecordset.klass, "clear_records", "clearRecords");
27783
27890
  rb_define_alias(SwigClassRecordset.klass, "field_defs", "fieldDefs");
27784
27891
  rb_define_alias(SwigClassRecordset.klass, "remove_field", "removeField");
27892
+ rb_define_alias(SwigClassRecordset.klass, "outer_join", "outerJoin");
27785
27893
  rb_define_alias(SwigClassRecordset.klass, "match_by", "matchBy");
27786
27894
  rb_define_alias(SwigClassRecordset.klass, "group_by", "groupBy");
27787
27895
  rb_define_alias(SwigClassRecordset.klass, "order_by", "orderBy");
@@ -62,7 +62,7 @@
62
62
  <VerInfo_Locale>1041</VerInfo_Locale>
63
63
  <BRCC_CompilerToUse>rc</BRCC_CompilerToUse>
64
64
  <BRCC_IncludePath>$(BDSINCLUDE)\windows\sdk;$(BRCC_IncludePath)</BRCC_IncludePath>
65
- <DllSuffix>_3_6</DllSuffix>
65
+ <DllSuffix>_3_7</DllSuffix>
66
66
  <DynamicRTL>false</DynamicRTL>
67
67
  <BPILibOutputDir>..\..\lib</BPILibOutputDir>
68
68
  <BCC_PCHUsage>None</BCC_PCHUsage>
data/build/tdclc/tdclc.rc CHANGED
@@ -29,8 +29,8 @@
29
29
  //
30
30
 
31
31
  VS_VERSION_INFO VERSIONINFO
32
- FILEVERSION 3,6,1,245
33
- PRODUCTVERSION 3,6,1,245
32
+ FILEVERSION 3,7,0,248
33
+ PRODUCTVERSION 3,7,0,248
34
34
  FILEFLAGSMASK 0x3fL
35
35
  #ifdef _DEBUG
36
36
  FILEFLAGS 0x1L
@@ -47,9 +47,9 @@ BEGIN
47
47
  BEGIN
48
48
  VALUE "CompanyName", "BizStation Corp."
49
49
  VALUE "FileDescription", "Transactd C client"
50
- VALUE "FileVersion", "3.6.1.245"
50
+ VALUE "FileVersion", "3.7.0.248"
51
51
  VALUE "LegalCopyright", "Copyright(C) 2016 BizStation Corp"
52
- VALUE "ProductVersion", "3.6.1.245"
52
+ VALUE "ProductVersion", "3.7.0.248"
53
53
  VALUE "ProductName", "Transactd Client (GPL V2)"
54
54
  END
55
55
  END
@@ -29,8 +29,8 @@
29
29
  //
30
30
 
31
31
  VS_VERSION_INFO VERSIONINFO
32
- FILEVERSION 3,6,1,245
33
- PRODUCTVERSION 3,6,1,245
32
+ FILEVERSION 3,7,0,248
33
+ PRODUCTVERSION 3,7,0,248
34
34
  FILEFLAGSMASK 0x3fL
35
35
  #ifdef _DEBUG
36
36
  FILEFLAGS 0x1L
@@ -47,9 +47,9 @@ BEGIN
47
47
  BEGIN
48
48
  VALUE "CompanyName", "BizStation Corp."
49
49
  VALUE "FileDescription", "Transactd C++ client"
50
- VALUE "FileVersion", "3.6.1.245"
50
+ VALUE "FileVersion", "3.7.0.248"
51
51
  VALUE "LegalCopyright", "Copyright(C) 2016 BizStation Corp"
52
- VALUE "ProductVersion", "3.6.1.245"
52
+ VALUE "ProductVersion", "3.7.0.248"
53
53
  VALUE "ProductName", "Transactd Client (GPL V2)"
54
54
  END
55
55
  END
@@ -153,7 +153,7 @@
153
153
  <BCC_OptimizeForSpeed>true</BCC_OptimizeForSpeed>
154
154
  <BCC_ExtendedErrorInfo>true</BCC_ExtendedErrorInfo>
155
155
  <TD_VER_MAJOR>3</TD_VER_MAJOR>
156
- <TD_VER_MINOR>6</TD_VER_MINOR>
156
+ <TD_VER_MINOR>7</TD_VER_MINOR>
157
157
  <DllSuffix>$(TD_VER_MAJOR)_$(TD_VER_MINOR)</DllSuffix>
158
158
  <TD_CPU>32</TD_CPU>
159
159
  </PropertyGroup>
@@ -29,8 +29,8 @@
29
29
  //
30
30
 
31
31
  VS_VERSION_INFO VERSIONINFO
32
- FILEVERSION 3,6,1,245
33
- PRODUCTVERSION 3,6,1,245
32
+ FILEVERSION 3,7,0,248
33
+ PRODUCTVERSION 3,7,0,248
34
34
  FILEFLAGSMASK 0x3fL
35
35
  #ifdef _DEBUG
36
36
  FILEFLAGS 0x1L
@@ -47,9 +47,9 @@ BEGIN
47
47
  BEGIN
48
48
  VALUE "CompanyName", "BizStation Corp."
49
49
  VALUE "FileDescription", "Transactd Ruby client"
50
- VALUE "FileVersion", "3.6.1.245"
50
+ VALUE "FileVersion", "3.7.0.248"
51
51
  VALUE "LegalCopyright", "Copyright(C) 2016 BizStation Corp"
52
- VALUE "ProductVersion", "3.6.1.245"
52
+ VALUE "ProductVersion", "3.7.0.248"
53
53
  VALUE "ProductName", "Transactd Client (GPL V2)"
54
54
  END
55
55
  END
@@ -580,6 +580,17 @@ void fielddefs::addAllFields(const tabledef* def)
580
580
  blobResize(blobCount);
581
581
  }
582
582
 
583
+ void fielddefs::append(const fielddefs* fds)
584
+ {
585
+ size_t n = fds->size();
586
+ m_imple->fields.reserve(n + size());
587
+ for (size_t i = 0; i < n; ++i)
588
+ {
589
+ const fielddef* fd = &(*fds)[(int)i];
590
+ push_back(fd);
591
+ }
592
+ }
593
+
583
594
  void fielddefs::addSelectedFields(const table* tb)
584
595
  {
585
596
  int n = tb->getCurProcFieldCount();
@@ -2246,6 +2257,19 @@ int field::nullComp(const field& r, char log) const
2246
2257
  return 2;
2247
2258
  }
2248
2259
 
2260
+ int field::nullCompMatch(const field& r, char log) const
2261
+ {
2262
+ if ((log == eIsNull) || (log == eIsNotNull))
2263
+ return nullComp(log);
2264
+
2265
+ bool lnull = isNull();
2266
+ if (lnull) return -1;
2267
+
2268
+ bool rnull = r.isNull();
2269
+ if (lnull) return 1;
2270
+ return 2;
2271
+ }
2272
+
2249
2273
  int field::comp(const field& r, char log) const
2250
2274
  {
2251
2275
  int ret = nullComp(r, log & 0xf);
@@ -110,6 +110,7 @@ public:
110
110
  size_t size() const;
111
111
  void addAllFields(const tabledef* def);
112
112
  void addSelectedFields(const class table* tb);
113
+ void append(const fielddefs* fds);
113
114
  void release();
114
115
  static fielddefs* create();
115
116
  };
@@ -152,6 +153,7 @@ class DLLLIB field
152
153
  void* nullPtr() const;
153
154
  int nullComp(const field& r, char log) const;
154
155
  int nullComp(char log) const;
156
+ int nullCompMatch(const field& r, char log) const;
155
157
  bool isCompPartAndMakeValue();
156
158
  void offsetBlobPtr(size_t offset);
157
159