transactd 1.1.2 → 1.2.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 (73) hide show
  1. checksums.yaml +4 -4
  2. data/CMakeLists.txt +37 -4
  3. data/bin/common/tdclc_32_1_2.dll +0 -0
  4. data/bin/common/tdclc_64_1_2.dll +0 -0
  5. data/build/common/transactd_cl_common.cmake +0 -1
  6. data/build/common/transactd_common.cmake +26 -6
  7. data/build/swig/php/generate.cmake.in +58 -0
  8. data/build/swig/php/generate.cmd.in +41 -0
  9. data/build/swig/php/php.swg +155 -0
  10. data/build/swig/ruby/ruby.swg +38 -0
  11. data/build/swig/tdcl.i +133 -3
  12. data/build/tdclc/CMakeLists.txt +4 -1
  13. data/build/tdclc/tdclc_32.cbproj +1 -1
  14. data/build/tdclc/tdclc_64.cbproj +1 -1
  15. data/build/tdclcpp/CMakeLists.txt +1 -1
  16. data/build/tdclcpp/tdclcpp_bcb_32.cbproj +1 -4
  17. data/build/tdclcpp/tdclcpp_bcb_64.cbproj +0 -3
  18. data/build/tdclrb/CMakeLists.txt +1 -1
  19. data/build/tdclrb/GEM_VERSION +2 -2
  20. data/source/bzs/db/engine/mysql/IReadRecords.h +1 -1
  21. data/source/bzs/db/engine/mysql/bookmark.h +3 -3
  22. data/source/bzs/db/engine/mysql/database.cpp +95 -19
  23. data/source/bzs/db/engine/mysql/database.h +6 -6
  24. data/source/bzs/db/engine/mysql/mysqlInternal.h +43 -1
  25. data/source/bzs/db/engine/mysql/mysqlThd.cpp +10 -8
  26. data/source/bzs/db/protocol/hs/hsCommandExecuter.cpp +1 -1
  27. data/source/bzs/db/protocol/tdap/btrDate.h +2 -2
  28. data/source/bzs/db/protocol/tdap/client/dbDef.cpp +15 -8
  29. data/source/bzs/db/protocol/tdap/client/dbDef.h +2 -2
  30. data/source/bzs/db/protocol/tdap/client/dllmain.cpp +4 -0
  31. data/source/bzs/db/protocol/tdap/client/fieldDDF.cpp +0 -5
  32. data/source/bzs/db/protocol/tdap/client/fileDDF.cpp +0 -4
  33. data/source/bzs/db/protocol/tdap/client/filter.cpp +0 -484
  34. data/source/bzs/db/protocol/tdap/client/filter.h +696 -84
  35. data/source/bzs/db/protocol/tdap/client/nsTable.cpp +13 -3
  36. data/source/bzs/db/protocol/tdap/client/nsTable.h +12 -6
  37. data/source/bzs/db/protocol/tdap/client/sqlBuilder.cpp +2 -1
  38. data/source/bzs/db/protocol/tdap/client/stringConverter.h +1 -0
  39. data/source/bzs/db/protocol/tdap/client/table.cpp +519 -75
  40. data/source/bzs/db/protocol/tdap/client/table.h +49 -7
  41. data/source/bzs/db/protocol/tdap/client/trdboostapi.h +145 -124
  42. data/source/bzs/db/protocol/tdap/client/trdboostapiInternal.h +39 -0
  43. data/source/bzs/db/protocol/tdap/client/trdormapi.h +872 -0
  44. data/source/bzs/db/protocol/tdap/myDateTime.cpp +8 -8
  45. data/source/bzs/db/protocol/tdap/mysql/databaseSchema.cpp +7 -9
  46. data/source/bzs/db/protocol/tdap/mysql/recordsetReader.h +406 -195
  47. data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.cpp +64 -13
  48. data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.h +2 -1
  49. data/source/bzs/db/protocol/tdap/tdapSchema.cpp +35 -3
  50. data/source/bzs/db/protocol/tdap/tdapSchema.h +11 -3
  51. data/source/bzs/db/protocol/tdap/tdapcapi.h +63 -53
  52. data/source/bzs/env/crosscompile.h +8 -3
  53. data/source/bzs/example/connection_pool_c.cpp +1 -7
  54. data/source/bzs/example/useORM.cpp +585 -0
  55. data/source/bzs/rtl/exception.h +6 -0
  56. data/source/bzs/test/tdclatl/bench_tdclatl.js +12 -7
  57. data/source/bzs/test/tdclphp/transactd_Test.php +1845 -0
  58. data/source/bzs/test/tdclphp/transactd_blob_Test.php +325 -0
  59. data/source/bzs/test/tdclphp/transactd_datetime_Test.php +183 -0
  60. data/source/bzs/test/tdclphp/transactd_kanjischema_Test.php +212 -0
  61. data/source/bzs/test/tdclrb/transactd_blob_spec.rb +332 -0
  62. data/source/bzs/test/tdclrb/transactd_spec.rb +256 -1
  63. data/source/bzs/test/trdclengn/test_blob.cpp +327 -0
  64. data/source/bzs/test/trdclengn/test_trdclengn.cpp +485 -5
  65. data/source/global/tdclatl/QueryBase.cpp +231 -0
  66. data/source/global/tdclatl/QueryBase.h +96 -0
  67. data/source/global/tdclatl/Table.cpp +24 -0
  68. data/source/global/tdclatl/Table.h +2 -1
  69. data/source/global/tdclatl/resource.h +0 -0
  70. data/source/global/tdclatl/tdclatl.idl +88 -2
  71. metadata +16 -3
  72. data/bin/common/tdclc_32_1_1.dll +0 -0
  73. data/bin/common/tdclc_64_1_1.dll +0 -0
@@ -19,7 +19,7 @@
19
19
  02111-1307, USA.
20
20
  ================================================================= */
21
21
  #include "nsTable.h"
22
-
22
+ #include <vector>
23
23
  namespace bzs
24
24
  {
25
25
 
@@ -36,6 +36,7 @@ namespace client
36
36
 
37
37
  class fields;
38
38
  class database;
39
+ class queryBase;
39
40
  #define null_str _T("")
40
41
 
41
42
  #pragma warning(disable:4251)
@@ -46,11 +47,12 @@ class AGRPACK table : public nstable
46
47
  friend class recordCache;
47
48
  friend class database;
48
49
  friend class filter;
50
+
49
51
  struct tbimpl* m_impl;
50
52
  tabledef* m_tableDef;
51
53
 
52
54
  uchar_td charset() const ;
53
-
55
+ bool checkFindDirection(ushort_td op);
54
56
  bool checkIndex(short index);
55
57
  void getKeySpec(keySpec* ks, bool SpecifyKeyNum = false);
56
58
  const bzs::db::blobHeader* getBlobHeader();
@@ -63,8 +65,9 @@ class AGRPACK table : public nstable
63
65
  uint_td doGetWriteImageLen(); // orverride
64
66
  void doUpdate(bool ncc = false); // orverride
65
67
  ushort_td doCommitBulkInsert(bool autoCommit = false); // orverride
68
+ void doAbortBulkInsert(); // orverride
66
69
  void doCreateIndex(bool SpecifyKeyNum = false); // orverride
67
- uint_td doRecordCount(bool estimate, bool fromCurrent); // orverride
70
+ uint_td doRecordCount(bool estimate, bool fromCurrent, eFindType direction); // orverride
68
71
  short_td doBtrvErr(HWND hWnd, _TCHAR* retbuf = NULL); // orverride
69
72
 
70
73
  double getFVnumeric(short index);
@@ -72,6 +75,8 @@ class AGRPACK table : public nstable
72
75
  void setFVDecimal(short index, double data);
73
76
  void setFVNumeric(short index, double data);
74
77
  void doFind( ushort_td op, bool notIncCurrent);
78
+ bool setSeekValueField(int row);
79
+
75
80
  protected:
76
81
  explicit table(nsdatabase *pbe); // Inheritance is impossible
77
82
  virtual ~table();
@@ -102,14 +107,13 @@ protected:
102
107
 
103
108
  virtual void doInit(tabledef* def, short filenum, bool regularDir);
104
109
 
105
- virtual void onRecordCounting(size_t count, bool complate){};
110
+ virtual void onRecordCounting(size_t count, bool& complate){};
106
111
 
107
112
  virtual void setNoUpdateTimeStamp(bool v) {};
108
113
 
109
114
 
110
-
111
115
  public:
112
- enum eFindType{findForword, findBackForword};
116
+ using nstable::eFindType;
113
117
 
114
118
  inline const tabledef* tableDef() const {return m_tableDef;};
115
119
 
@@ -131,12 +135,13 @@ public:
131
135
  void clearBuffer();
132
136
  unsigned int getRecordHash();
133
137
  void smartUpdate();
134
- void find(eFindType type);
138
+ void find(eFindType type=findForword);
135
139
  void findFirst();
136
140
  void findLast();
137
141
  void findNext(bool notIncCurrent = true);
138
142
  void findPrev(bool notIncCurrent = true);
139
143
  bookmark_td bookmarkFindCurrent() const;
144
+ void setQuery(const queryBase* query);
140
145
  void setFilter(const _TCHAR* str, ushort_td rejectCount, ushort_td cacheCount);
141
146
  const _TCHAR* filterStr();
142
147
  short fieldNumByName(const _TCHAR* name);
@@ -207,9 +212,46 @@ public:
207
212
  void setFV(short index, __int64 data);
208
213
  void setFV(const _TCHAR* fieldName, __int64 data);
209
214
  void* fieldPtr(short index);
215
+ void keyValueDescription(_TCHAR* buf, int bufsize);
216
+
217
+ };
218
+
219
+
220
+ class AGRPACK queryBase
221
+ {
222
+ friend class filter;
223
+ struct impl* m_impl;
210
224
 
225
+ const std::vector<std::_tstring>& getSelects() const;
226
+ const std::vector<std::_tstring>& getWheres() const;
227
+ const std::vector<std::_tstring>& getSeekKeyValues() const;
228
+ public:
229
+ queryBase();
230
+ virtual ~queryBase();
231
+ void reset();
232
+ void clearSeekKeyValues();
233
+ void clearSelectFields();
234
+ void addField(const _TCHAR* name);
235
+ void addLogic(const _TCHAR* name, const _TCHAR* logic, const _TCHAR* value);
236
+ void addLogic(const _TCHAR* combine, const _TCHAR* name, const _TCHAR* logic, const _TCHAR* value);
237
+ void addSeekKeyValue(const _TCHAR* value, bool reset=false);
238
+ queryBase& queryString(const _TCHAR* str);
239
+ queryBase& reject(int v);
240
+ queryBase& limit(int v);
241
+ queryBase& direction(table::eFindType v);
242
+ queryBase& all();
243
+ queryBase& optimize(bool v);
244
+ const _TCHAR* toString() const;
245
+ table::eFindType getDirection() const;
246
+ int getReject()const;
247
+ int getLimit()const;
248
+ bool isAll()const;
249
+ bool isOptimize()const;
250
+ void release();
251
+ static queryBase* create();
211
252
  };
212
253
 
254
+
213
255
  #pragma warning(default:4251)
214
256
 
215
257