transactd 3.6.1 → 3.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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