transactd 2.0.1 → 2.1.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 (146) hide show
  1. checksums.yaml +4 -4
  2. data/BUILD_UNIX-JA +6 -6
  3. data/README +16 -16
  4. data/README-JA +16 -16
  5. data/bin/common/tdclc_32_2_1.dll +0 -0
  6. data/bin/common/tdclc_64_2_1.dll +0 -0
  7. data/build/common/transactd_cl_common.cmake +0 -1
  8. data/build/common/transactd_common.cmake +28 -38
  9. data/build/swig/ruby/ruby.swg +36 -30
  10. data/build/swig/ruby/tdclrb_wrap.cpp +35016 -0
  11. data/build/swig/tdcl.i +217 -62
  12. data/build/tdclc/CMakeLists.txt +14 -26
  13. data/build/tdclc/libtdclcm.map +4 -0
  14. data/build/tdclc/tdclc.cbproj +1 -1
  15. data/build/tdclc/tdclc.rc +0 -0
  16. data/build/tdclcpp/CMakeLists.txt +7 -22
  17. data/build/tdclcpp/tdclcpp.rc +0 -0
  18. data/build/tdclcpp/tdclcpp_bc.cbproj +1 -1
  19. data/build/tdclrb/CMakeLists.txt +7 -49
  20. data/build/tdclrb/tdclrb.rc +62 -0
  21. data/source/bzs/db/blobBuffer.h +5 -0
  22. data/source/bzs/db/blobStructs.h +2 -0
  23. data/source/bzs/db/engine/mysql/IReadRecords.h +9 -0
  24. data/source/bzs/db/engine/mysql/database.cpp +391 -169
  25. data/source/bzs/db/engine/mysql/database.h +178 -40
  26. data/source/bzs/db/engine/mysql/dbManager.cpp +45 -3
  27. data/source/bzs/db/engine/mysql/dbManager.h +3 -39
  28. data/source/bzs/db/engine/mysql/errorMessage.cpp +11 -7
  29. data/source/bzs/db/engine/mysql/errorMessage.h +1 -1
  30. data/source/bzs/db/engine/mysql/mydebuglog.cpp +1 -2
  31. data/source/bzs/db/engine/mysql/mysqlInternal.h +8 -8
  32. data/source/bzs/db/engine/mysql/mysqlThd.cpp +11 -0
  33. data/source/bzs/db/protocol/hs/hsCommandExecuter.cpp +1 -1
  34. data/source/bzs/db/protocol/tdap/client/activeTable.cpp +41 -6
  35. data/source/bzs/db/protocol/tdap/client/activeTable.h +177 -8
  36. data/source/bzs/db/protocol/tdap/client/activeTableImple.h +141 -62
  37. data/source/bzs/db/protocol/tdap/client/client.cpp +39 -35
  38. data/source/bzs/db/protocol/tdap/client/client.h +52 -25
  39. data/source/bzs/db/protocol/tdap/client/connectionPool.cpp +17 -0
  40. data/source/bzs/db/protocol/tdap/client/connectionPool.h +1 -0
  41. data/source/bzs/db/protocol/tdap/client/database.cpp +5 -1
  42. data/source/bzs/db/protocol/tdap/client/database.h +1 -1
  43. data/source/bzs/db/protocol/tdap/client/databaseFactory.cpp +49 -12
  44. data/source/bzs/db/protocol/tdap/client/databaseManager.h +42 -5
  45. data/source/bzs/db/protocol/tdap/client/dbDef.cpp +4 -2
  46. data/source/bzs/db/protocol/tdap/client/dllmain.cpp +71 -41
  47. data/source/bzs/db/protocol/tdap/client/errorMessage_ja.cpp +49 -49
  48. data/source/bzs/db/protocol/tdap/client/field.cpp +22 -13
  49. data/source/bzs/db/protocol/tdap/client/field.h +7 -3
  50. data/source/bzs/db/protocol/tdap/client/fieldDDF.cpp +1 -1
  51. data/source/bzs/db/protocol/tdap/client/fieldNameAlias.cpp +0 -1
  52. data/source/bzs/db/protocol/tdap/client/fieldNameAlias.h +1 -0
  53. data/source/bzs/db/protocol/tdap/client/fields.h +111 -24
  54. data/source/bzs/db/protocol/tdap/client/fileDDF.cpp +1 -1
  55. data/source/bzs/db/protocol/tdap/client/filter.h +687 -310
  56. data/source/bzs/db/protocol/tdap/client/groupQuery.cpp +12 -4
  57. data/source/bzs/db/protocol/tdap/client/indexDDF.cpp +1 -1
  58. data/source/bzs/db/protocol/tdap/client/memRecord.cpp +190 -32
  59. data/source/bzs/db/protocol/tdap/client/memRecord.h +64 -22
  60. data/source/bzs/db/protocol/tdap/client/nsDatabase.cpp +4 -4
  61. data/source/bzs/db/protocol/tdap/client/nsDatabase.h +4 -2
  62. data/source/bzs/db/protocol/tdap/client/nsTable.cpp +6 -3
  63. data/source/bzs/db/protocol/tdap/client/nsTable.h +1 -1
  64. data/source/bzs/db/protocol/tdap/client/pooledDatabaseManager.h +19 -8
  65. data/source/bzs/db/protocol/tdap/client/recordsetImple.h +194 -87
  66. data/source/bzs/db/protocol/tdap/client/request.h +84 -26
  67. data/source/bzs/db/protocol/tdap/client/stringConverter.h +22 -12
  68. data/source/bzs/db/protocol/tdap/client/table.cpp +494 -286
  69. data/source/bzs/db/protocol/tdap/client/table.h +48 -5
  70. data/source/bzs/db/protocol/tdap/client/trdboostapi.h +133 -87
  71. data/source/bzs/db/protocol/tdap/client/trdboostapiInternal.h +22 -22
  72. data/source/bzs/db/protocol/tdap/client/trdormapi.h +43 -18
  73. data/source/bzs/db/protocol/tdap/client/trnsctcl.def +3 -3
  74. data/source/bzs/db/protocol/tdap/mysql/databaseSchema.cpp +1 -0
  75. data/source/bzs/db/protocol/tdap/mysql/recordsetReader.h +268 -74
  76. data/source/bzs/db/protocol/tdap/mysql/request.h +4 -4
  77. data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.cpp +179 -43
  78. data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.h +4 -4
  79. data/source/bzs/db/protocol/tdap/tdapRequest.h +15 -14
  80. data/source/bzs/db/protocol/tdap/tdapSchema.h +125 -90
  81. data/source/bzs/db/protocol/tdap/tdapcapi.h +46 -5
  82. data/source/bzs/db/transactd/appModule.h +1 -1
  83. data/source/bzs/db/transactd/connManager.cpp +2 -0
  84. data/source/bzs/db/transactd/transactd.cpp +1 -0
  85. data/source/bzs/env/compiler.h +10 -0
  86. data/source/bzs/env/mbcswchrLinux.cpp +42 -6
  87. data/source/bzs/env/mbcswchrLinux.h +40 -12
  88. data/source/bzs/example/queryData.cpp +33 -4
  89. data/source/bzs/netsvc/client/iconnection.h +107 -0
  90. data/source/bzs/netsvc/client/tcpClient.cpp +15 -1
  91. data/source/bzs/netsvc/client/tcpClient.h +96 -87
  92. data/source/bzs/netsvc/server/serverCpt.cpp +5 -6
  93. data/source/bzs/rtl/benchmark.cpp +2 -2
  94. data/source/bzs/rtl/stringBuffers.cpp +3 -3
  95. data/source/bzs/rtl/stringBuffers.h +2 -2
  96. data/source/bzs/test/tdclatl/bench_query_atl.js +92 -99
  97. data/source/bzs/test/tdclatl/test_query_atl.js +224 -115
  98. data/source/bzs/test/tdclphp/bench.php +126 -101
  99. data/source/bzs/test/tdclphp/transactd_Test.php +1122 -158
  100. data/source/bzs/test/tdclrb/bench_tdclcpp.rb +12 -14
  101. data/source/bzs/test/tdclrb/transactd_spec.rb +1127 -142
  102. data/source/bzs/test/transactdBench/query_bench.cpp +32 -15
  103. data/source/bzs/test/transactdBench/scaling_bench.cpp +32 -7
  104. data/source/bzs/test/transactdBench/transactdBench.cpp +1 -1
  105. data/source/bzs/test/transactdBench/workerBase.h +46 -0
  106. data/source/bzs/test/transactdBench/workerMySQLImple.h +15 -7
  107. data/source/bzs/test/transactdBench/workerTransactdImple.h +10 -18
  108. data/source/bzs/test/trdclengn/test_trdclengn.cpp +1487 -174
  109. data/source/global/ormsrcgen/main.cpp +2 -0
  110. data/source/global/tdclatl/Database.cpp +2 -2
  111. data/source/global/tdclatl/Database.h +1 -1
  112. data/source/global/tdclatl/FieldDefs.cpp +0 -3
  113. data/source/global/tdclatl/PooledDbManager.cpp +2 -2
  114. data/source/global/tdclatl/PooledDbManager.h +1 -1
  115. data/source/global/tdclatl/PreparedQuery.cpp +53 -0
  116. data/source/global/tdclatl/PreparedQuery.h +61 -0
  117. data/source/global/tdclatl/QueryBase.cpp +2 -1
  118. data/source/global/tdclatl/QueryBase.h +1 -1
  119. data/source/global/tdclatl/Record.cpp +3 -15
  120. data/source/global/tdclatl/Recordset.cpp +15 -10
  121. data/source/global/tdclatl/Recordset.h +3 -0
  122. data/source/global/tdclatl/Table.cpp +42 -7
  123. data/source/global/tdclatl/Table.h +3 -1
  124. data/source/global/tdclatl/activeTable.cpp +264 -76
  125. data/source/global/tdclatl/activeTable.h +12 -3
  126. data/source/global/tdclatl/tdclatl.idl +92 -10
  127. data/source/linux/charsetConvert.h +7 -7
  128. data/transactd.gemspec +14 -27
  129. metadata +18 -27
  130. data/bin/common/tdclc_32_2_0.dll +0 -0
  131. data/bin/common/tdclc_64_2_0.dll +0 -0
  132. data/build/swig/php/generate.cmake.in +0 -56
  133. data/build/swig/php/generate.cmd.in +0 -47
  134. data/build/swig/php/php.swg +0 -197
  135. data/build/swig/php/transactd.no_yield.php +0 -4494
  136. data/build/swig/php/transactd.no_yield.php.git.patch +0 -685
  137. data/build/swig/php/transactd.no_yield.php.patch +0 -685
  138. data/build/swig/php/transactd.yield.php +0 -4461
  139. data/build/swig/php/transactd.yield.php.git.patch +0 -652
  140. data/build/swig/php/transactd.yield.php.patch +0 -652
  141. data/build/swig/ruby/generate.cmake.in +0 -35
  142. data/build/swig/ruby/generate.cmd.in +0 -19
  143. data/build/tdclc/BUILDNUMBER.txt +0 -1
  144. data/build/tdclcpp/BUILDNUMBER.txt +0 -1
  145. data/build/tdclrb/BUILDNUMBER.txt +0 -1
  146. data/build/tdclrb/GEM_RELEASE_VERSION +0 -1
@@ -62,18 +62,27 @@ public:
62
62
  VARIANT Value6, VARIANT Value7, IActiveTable** retVal);
63
63
 
64
64
  STDMETHOD(Option)(int Value, IActiveTable** retVal);
65
- STDMETHOD(Read)(VARIANT /*IQueryBase**/ query, IRecordset** retVal);
65
+ STDMETHOD(Read)(VARIANT /*IQueryBase**/ query,
66
+ VARIANT Value0, VARIANT Value1,
67
+ VARIANT Value2, VARIANT Value3,
68
+ VARIANT Value4, VARIANT Value5,
69
+ VARIANT Value6, VARIANT Value7,
70
+ IRecordset** retVal);
66
71
  STDMETHOD(Alias)(BSTR Src, BSTR Dst, IActiveTable** retVal);
67
72
  STDMETHOD(ResetAlias)(IActiveTable** retVal);
68
- STDMETHOD(Join)(IRecordset* rs, IQueryBase* query, BSTR Name0, BSTR Name1,
73
+ STDMETHOD(Join)(IRecordset* rs, VARIANT query, BSTR Name0, BSTR Name1,
69
74
  BSTR Name2, BSTR Name3, BSTR Name4, BSTR Name5, BSTR Name6,
70
75
  BSTR Name7, IRecordset** retVal);
71
- STDMETHOD(OuterJoin)(IRecordset* rs, IQueryBase* query, BSTR Name0,
76
+ STDMETHOD(OuterJoin)(IRecordset* rs, VARIANT query, BSTR Name0,
72
77
  BSTR Name1, BSTR Name2, BSTR Name3, BSTR Name4,
73
78
  BSTR Name5, BSTR Name6, BSTR Name7,
74
79
  IRecordset** retVal);
80
+ STDMETHOD(Prepare)(IQueryBase* Value, VARIANT_BOOL ServerPrepare, IPreparedQuery** retVal);
81
+
75
82
  STDMETHOD(GetWritableRecord)(IWritableRecord** retVal);
76
83
  STDMETHOD(get_TableDef)(ITableDef** Value);
84
+
85
+ STDMETHOD(Table)(ITable** retVal);
77
86
  };
78
87
 
79
88
  OBJECT_ENTRY_AUTO(__uuidof(ActiveTable), CActiveTable)
@@ -44,6 +44,8 @@ interface ISortFields;
44
44
  interface IFieldNames;
45
45
  interface IConnectParams;
46
46
  interface IPooledDbManager;
47
+ interface IPreparedQuery;
48
+
47
49
 
48
50
  typedef
49
51
  [
@@ -97,7 +99,8 @@ enum eOpenMode
97
99
  {
98
100
  normal = 0,
99
101
  readOnly = -2,
100
- exclusive = -4
102
+ exclusive = -4,
103
+ exclusive_readOnly = -6
101
104
  }eOpenMode;
102
105
 
103
106
 
@@ -162,18 +165,29 @@ enum eStatus
162
165
  STATUS_INVALID_OWNERNAME = 51,
163
166
  STATUS_TABLE_EXISTS_ERROR = 59,
164
167
  STATUS_LIMMIT_OF_REJECT = 60,
168
+ STATUS_WARKSPACE_TOO_SMALL = 61,
169
+ STATUS_INVALID_EX_DESC = 62,
170
+ STATUS_INVALID_EX_INS = 63,
165
171
  STATUS_REACHED_FILTER_COND = 64,
166
172
  STATUS_INVALID_FIELD_OFFSET = 65,
167
173
  STATUS_CHANGE_CONFLICT = 80,
168
174
  STATUS_INVALID_LOCKTYPE = 83,
169
175
  STATUS_LOCK_ERROR = 84,
170
176
  STATUS_FILE_LOCKED = 85,
177
+ STATUS_INVALID_SUPPLYVALUES = 86,
171
178
  STATUS_CANNOT_LOCK_TABLE = 88,
172
179
  TATUS_INVALID_KEYNAME = 6,
173
180
  STATUS_INVALID_DATASIZE = 22,
174
181
  STATUS_INVALID_FIELDNAME = 65,
175
182
  ERROR_TD_INVALID_CLINETHOST = 171,
176
183
  ERROR_NOSPECIFY_TABLE = 176,
184
+ ERROR_LOAD_CLIBRARY = 200,
185
+ ERROR_INDEX_RND_INIT = 201,
186
+ STATUS_INVALID_PREPAREID = 202,
187
+ STATUS_LMIT_OF_PREPAREED = 203,
188
+ STATUS_ALREADY_INSNAPSHOT = 204,
189
+ STATUS_ALREADY_INTRANSACTION= 205,
190
+ SERVER_CLIENT_NOT_COMPATIBLE= 3003,
177
191
  NET_BAD_SRB_FORMAT = 3021,
178
192
  ERROR_TD_HOSTNAME_NOT_FOUND = 3103,
179
193
  ERROR_TD_CONNECTION_FAILURE = 3106,
@@ -266,9 +280,29 @@ enum eLockType
266
280
  NOWAIT_WRITE = 500,
267
281
  PARALLEL_TRN = 1000,
268
282
  PARA_SINGLE_NOWAIT = 1700,
269
- PARA_MULTI_NOWAIT = 1900
283
+ PARA_MULTI_NOWAIT = 1900,
284
+ /* Innodb or transactional engin lock options */
285
+ // read operation lock options
286
+ ROW_LOCK_X = 200,
287
+ ROW_LOCK_S = 5200,
288
+ // transaction options
289
+ SINGLELOCK_NOGAP = 200,
290
+ MULTILOCK_NOGAP = 400,
291
+ MULTILOCK_GAP = 2400
292
+
270
293
  }eLockType;
271
294
 
295
+ typedef
296
+ [
297
+ helpstring("Snapshot lock type Constants")
298
+ ]
299
+ enum eStLockType
300
+ {
301
+ MULTILOCK_NOGAP_SHARE = 0,
302
+ MULTILOCK_GAP_SHARE = 2000,
303
+ CONSISTENT_READ = 4000
304
+ }eStLockType;
305
+
272
306
  typedef
273
307
  [
274
308
  helpstring("Continus operation types")
@@ -350,7 +384,7 @@ interface IDatabase : IDispatch
350
384
  [propget, id(0x0000000A)]
351
385
  HRESULT _stdcall NativeDatabase([out, retval] hyper** Value);
352
386
  [id(0x000000C9)]
353
- HRESULT _stdcall BeginSnapshot(void);
387
+ HRESULT _stdcall BeginSnapshot([in, defaultvalue(CONSISTENT_READ)] eStLockType Bias);
354
388
  [id(0x000000CA)]
355
389
  HRESULT _stdcall EndSnapshot(void);
356
390
  [id(0x000000CB)]
@@ -675,9 +709,13 @@ interface ITable : IDispatch
675
709
  [id(0x000000FA)]
676
710
  HRESULT _stdcall KeyValueDescription([out, retval] BSTR* Value);
677
711
  [id(0x000000FB)]
678
- HRESULT _stdcall SetQuery([in] IQueryBase* Value);
712
+ HRESULT _stdcall SetQuery([in] IQueryBase* Value, [in, defaultvalue(0)] VARIANT_BOOL ServerPrepare, [out, retval] IPreparedQuery** retVal);
679
713
  [id(0x000000FC)]
680
714
  HRESULT _stdcall FieldNumByName([in] BSTR Name, [out, retval] short* Value);
715
+ [id(0x000000FD)]
716
+ HRESULT _stdcall Prepare([in] IQueryBase* Value, [in, defaultvalue(0)] VARIANT_BOOL ServerPrepare, [out, retval] IPreparedQuery** retVal);
717
+ [id(0x000000FF)]
718
+ HRESULT _stdcall SetPrepare([in] IPreparedQuery* Value);
681
719
 
682
720
  };
683
721
  [
@@ -973,7 +1011,7 @@ interface ITdVersion : IDispatch
973
1011
  interface IQueryBase : IDispatch
974
1012
  {
975
1013
  [id(0x0000001)]
976
- HRESULT _stdcall Reset(void);
1014
+ HRESULT _stdcall Reset([out, retval] IQueryBase** retVal);
977
1015
  [id(0x0000002)]
978
1016
  HRESULT _stdcall ClearSeekKeyValues(void);
979
1017
  [id(0x0000003)]
@@ -1074,13 +1112,18 @@ interface IActiveTable : IDispatch
1074
1112
  [id(0x0000004)]
1075
1113
  HRESULT _stdcall Option([in] int Value, [out, retval] IActiveTable** retVal);
1076
1114
  [id(0x0000005)]
1077
- HRESULT _stdcall Read([in, optional] VARIANT query, [out, retval] IRecordset** retVal);
1115
+ HRESULT _stdcall Read([in, optional] VARIANT query,
1116
+ [in, optional] VARIANT Value0, [in, optional] VARIANT Value1,
1117
+ [in, optional] VARIANT Value2, [in, optional] VARIANT Value3,
1118
+ [in, optional] VARIANT Value4, [in, optional] VARIANT Value5,
1119
+ [in, optional] VARIANT Value6, [in, optional] VARIANT Value7,
1120
+ [out, retval] IRecordset** retVal);
1078
1121
  [id(0x0000006)]
1079
1122
  HRESULT _stdcall Alias([in] BSTR Src, [in] BSTR Dst, [out, retval] IActiveTable** retVal);
1080
1123
  [id(0x0000007)]
1081
1124
  HRESULT _stdcall ResetAlias([out, retval] IActiveTable** retVal);
1082
1125
  [id(0x0000008)]
1083
- HRESULT _stdcall Join([in] IRecordset* rs, [in] IQueryBase* query, [in] BSTR Name0
1126
+ HRESULT _stdcall Join([in] IRecordset* rs, [in] VARIANT query, [in] BSTR Name0
1084
1127
  , [in, defaultvalue("")] BSTR Name1, [in, defaultvalue("")] BSTR Name2
1085
1128
  , [in, defaultvalue("")] BSTR Name3, [in, defaultvalue("")] BSTR Name4
1086
1129
  , [in, defaultvalue("")] BSTR Name5, [in, defaultvalue("")] BSTR Name6
@@ -1088,7 +1131,7 @@ interface IActiveTable : IDispatch
1088
1131
  ,[out, retval] IRecordset** retVal);
1089
1132
 
1090
1133
  [id(0x0000009)]
1091
- HRESULT _stdcall OuterJoin([in] IRecordset* rs, [in] IQueryBase* query, [in] BSTR Name0
1134
+ HRESULT _stdcall OuterJoin([in] IRecordset* rs, [in] VARIANT query, [in] BSTR Name0
1092
1135
  , [in, defaultvalue("")] BSTR Name1, [in, defaultvalue("")] BSTR Name2
1093
1136
  , [in, defaultvalue("")] BSTR Name3, [in, defaultvalue("")] BSTR Name4
1094
1137
  , [in, defaultvalue("")] BSTR Name5, [in, defaultvalue("")] BSTR Name6
@@ -1099,6 +1142,11 @@ interface IActiveTable : IDispatch
1099
1142
  HRESULT _stdcall GetWritableRecord([out, retval] IWritableRecord** retVal);
1100
1143
  [propget, id(0x000000B)]
1101
1144
  HRESULT _stdcall TableDef([out, retval] ITableDef** Value);
1145
+ [id(0x000000C)]
1146
+ HRESULT _stdcall Prepare([in] IQueryBase* Value, [in, defaultvalue(0)] VARIANT_BOOL ServerPrepare, [out, retval] IPreparedQuery** retVal);
1147
+ [id(0x000000D)]
1148
+ HRESULT _stdcall Table([out, retval]ITable** retVal);
1149
+
1102
1150
 
1103
1151
  };
1104
1152
 
@@ -1156,6 +1204,13 @@ interface IRecordset : IDispatch
1156
1204
  [id(0x0000011)]
1157
1205
  HRESULT _stdcall AppendField([in] BSTR name, [in] eFieldType type, [in] short len);
1158
1206
 
1207
+ [id(0x0000012)]
1208
+ HRESULT _stdcall Clear();
1209
+
1210
+ [id(0x0000014)]
1211
+ HRESULT _stdcall ClearRecords();
1212
+
1213
+
1159
1214
  };
1160
1215
 
1161
1216
  [
@@ -1359,11 +1414,11 @@ interface IPooledDbManager : IDispatch
1359
1414
  [id(0x00000004)]
1360
1415
  HRESULT _stdcall AbortTrn(void);
1361
1416
  [id(0x00000005)]
1362
- HRESULT _stdcall BeginSnapshot(void);
1417
+ HRESULT _stdcall BeginSnapshot([in, defaultvalue(CONSISTENT_READ)] eStLockType Bias);
1363
1418
  [id(0x00000006)]
1364
1419
  HRESULT _stdcall EndSnapshot(void);
1365
1420
  [id(0x00000007)]
1366
- HRESULT _stdcall Use([in, defaultvalue(0L)] VARIANT Uri);
1421
+ HRESULT _stdcall Use([in, optional] VARIANT Uri);
1367
1422
  [id(0x00000008)]
1368
1423
  HRESULT _stdcall Unuse();
1369
1424
  [propget, id(0x00000009)]
@@ -1413,6 +1468,23 @@ interface IConnectParams : IDispatch
1413
1468
 
1414
1469
  };
1415
1470
 
1471
+ [
1472
+ object,
1473
+ uuid(33C684B3-E198-431C-9CCC-48EB083E1219),
1474
+ dual,
1475
+ nonextensible,
1476
+ pointer_default(unique)
1477
+ ]
1478
+ interface IPreparedQuery : IDispatch
1479
+ {
1480
+ [id(0x0000001)]
1481
+ HRESULT _stdcall SupplyValue([in] int Index, [in] VARIANT Value, [out, retval] VARIANT_BOOL* retVal);
1482
+ [id(0x0000002)]
1483
+ HRESULT _stdcall AddValue([in] VARIANT Value, [out, retval] VARIANT_BOOL* retVal);
1484
+ [id(0x0000003)]
1485
+ HRESULT _stdcall ResetAddIndex();
1486
+ };
1487
+
1416
1488
  [
1417
1489
  uuid(3B712514-E2EF-4040-8A3C-BCACB839EB3E),
1418
1490
  version(1.0),
@@ -1631,6 +1703,16 @@ library transactd
1631
1703
  {
1632
1704
  [default] interface IConnectParams;
1633
1705
  };
1706
+
1707
+ [
1708
+ uuid(E5D3D961-A1CD-42CA-B7E0-640AB0CEB529)
1709
+ ,noncreatable
1710
+ ]
1711
+ coclass PreparedQuery
1712
+ {
1713
+ [default] interface IPreparedQuery;
1714
+
1715
+ };
1634
1716
 
1635
1717
  };
1636
1718
 
@@ -39,14 +39,13 @@ inline size_t strlen16(const char16_t* src)
39
39
  class cvt
40
40
  {
41
41
  iconv_t m_cd;
42
- int m_stat;
43
42
  bool m_isOpend;
44
43
 
45
44
  public:
46
- cvt() : m_stat(ICONV_NO_INIT), m_isOpend(false) {}
45
+ cvt() : m_isOpend(false) {}
47
46
 
48
47
  cvt(const char* to, const char* from)
49
- : m_stat(ICONV_NO_INIT), m_isOpend(false)
48
+ : m_isOpend(false)
50
49
  {
51
50
  setCharset(to, from);
52
51
  }
@@ -60,12 +59,13 @@ public:
60
59
  int setCharset(const char* to, const char* from)
61
60
  {
62
61
  m_cd = iconv_open(to, from);
62
+ int stat = 0;
63
63
  if (m_cd == (iconv_t)-1)
64
- m_stat = ICONV_OPENRRROR;
64
+ stat = ICONV_OPENRRROR;
65
65
  else
66
- m_stat = ICONV_SUCCESS;
67
- m_isOpend = (m_stat == ICONV_SUCCESS);
68
- return m_stat;
66
+ stat = ICONV_SUCCESS;
67
+ m_isOpend = (stat == ICONV_SUCCESS);
68
+ return stat;
69
69
  }
70
70
 
71
71
  size_t conv(const char* src, size_t inszie, char* outbuf, size_t outbufsize)
data/transactd.gemspec CHANGED
@@ -27,36 +27,22 @@ spec_build = Gem::Specification.new do |s|
27
27
  s.homepage = 'http://www.bizstation.jp/ja/transactd'
28
28
  s.license = 'GPL v2'
29
29
 
30
- # read major/minor version from tdapcapi.h
31
- verfile = 'source/bzs/db/protocol/tdap/tdapcapi.h'
32
- unless File.exist?(verfile)
33
- raise 'Can not found ' + verfile
34
- end
35
- versions = {}
30
+ # read version from tdclrb.rc
31
+ verfile = 'build/tdclrb/tdclrb.rc'
32
+ raise 'Can not found ' + verfile unless File.exist?(verfile)
33
+ verpattern = /^[\t ]*VALUE[\t ]+"ProductVersion"[\t ]*,[\t ]*"([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)"[\t\r ]*$/i
34
+ ver_str = ''
36
35
  File.open(verfile, "r") {|f|
37
36
  f.each_line { |l|
38
- if l.index("Build marker! Don't remove") != nil
39
- l = l.sub(/#define/, '').sub(/\/\/.*$/, '').gsub('"', '').strip().split(/\s/)
40
- versions[l[0].to_sym] = Integer(l[1]) if l.length == 2
37
+ m = verpattern.match(l)
38
+ if m != nil
39
+ ver_str = m[1].split('.').slice(0..2).join('.')
40
+ break
41
41
  end
42
42
  }
43
43
  }
44
- unless (versions.has_key?(:CPP_INTERFACE_VER_MAJOR) &&
45
- versions.has_key?(:CPP_INTERFACE_VER_MINOR))
46
- raise 'Can not read versions from ' + verfile
47
- end
48
- # read release version from GEM_RELEASE_VERSION
49
- verfile = 'build/tdclrb/GEM_RELEASE_VERSION'
50
- unless File.exist?(verfile)
51
- raise 'Can not found ' + verfile
52
- end
53
- File.open(verfile, "r") {|f|
54
- l = f.read.gsub(/\s\n/, '')
55
- versions[:GEM_RELEASE_VERSION] = Integer(l)
56
- }
57
- s.version = versions[:CPP_INTERFACE_VER_MAJOR].to_s + '.' +
58
- versions[:CPP_INTERFACE_VER_MINOR].to_s + '.' +
59
- versions[:GEM_RELEASE_VERSION].to_s
44
+ raise 'Can not read versions from ' + verfile + ' (' + ver_str + ')' if ver_str.length == 0
45
+ s.version = ver_str
60
46
 
61
47
  binary_file = File.join('bin', RUBY_VERSION.match(/\d+\.\d+/)[0], 'transactd.so')
62
48
  binarymode = File.exist?(binary_file)
@@ -83,8 +69,9 @@ spec_build = Gem::Specification.new do |s|
83
69
  s.files = ['CMakeLists.txt']
84
70
  s.files += Dir.glob('bin/common/*.dll') + Dir.glob('bin/common/*.so')
85
71
  s.files += Dir.glob('source/**/*') + Dir.glob('build/common/**/*')
86
- s.files += Dir.glob('build/swig/**/*') + Dir.glob('build/tdclc/**/*')
87
- s.files += Dir.glob('build/tdclcpp/**/*') + Dir.glob('build/tdclrb/**/*')
72
+ s.files += Dir.glob('build/swig/*') + Dir.glob('build/swig/ruby/*')
73
+ s.files += Dir.glob('build/swig/ruby/**/*') + Dir.glob('build/tdclrb/**/*')
74
+ s.files += Dir.glob('build/tdclc/**/*') + Dir.glob('build/tdclcpp/**/*')
88
75
  s.files += Dir.glob('./*')
89
76
  if RUBY_PLATFORM =~ /mswin/ || RUBY_PLATFORM =~ /mingw/
90
77
  # add prebuilt binary
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: transactd
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.1
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - BizStation Corp.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-09-30 00:00:00.000000000 Z
11
+ date: 2014-12-24 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Transactd client for ruby gem
14
14
  email: transactd@bizstation.jp
@@ -19,8 +19,8 @@ extra_rdoc_files: []
19
19
  files:
20
20
  - CMakeLists.txt
21
21
  - build/tdclrb/bldgem/extconf.rb
22
- - bin/common/tdclc_32_2_0.dll
23
- - bin/common/tdclc_64_2_0.dll
22
+ - bin/common/tdclc_32_2_1.dll
23
+ - bin/common/tdclc_64_2_1.dll
24
24
  - source/bzs/db/blobBuffer.h
25
25
  - source/bzs/db/blobStructs.h
26
26
  - source/bzs/db/engine/mysql/bookmark.h
@@ -160,6 +160,7 @@ files:
160
160
  - source/bzs/example/update_with_transaction.cpp
161
161
  - source/bzs/example/update_with_transaction_c.cpp
162
162
  - source/bzs/example/useORMRecord.cpp
163
+ - source/bzs/netsvc/client/iconnection.h
163
164
  - source/bzs/netsvc/client/tcpClient.cpp
164
165
  - source/bzs/netsvc/client/tcpClient.h
165
166
  - source/bzs/netsvc/server/IAppModule.h
@@ -250,6 +251,8 @@ files:
250
251
  - source/global/tdclatl/keySegment.h
251
252
  - source/global/tdclatl/PooledDbManager.cpp
252
253
  - source/global/tdclatl/PooledDbManager.h
254
+ - source/global/tdclatl/PreparedQuery.cpp
255
+ - source/global/tdclatl/PreparedQuery.h
253
256
  - source/global/tdclatl/QueryBase.cpp
254
257
  - source/global/tdclatl/QueryBase.h
255
258
  - source/global/tdclatl/Record.cpp
@@ -289,32 +292,13 @@ files:
289
292
  - build/common/transactd_cl_output.cmake
290
293
  - build/common/transactd_common.cmake
291
294
  - build/common/transactd_required.cmake
292
- - build/swig/php/generate.cmake.in
293
- - build/swig/php/generate.cmd.in
294
- - build/swig/php/php.swg
295
- - build/swig/php/transactd.no_yield.php
296
- - build/swig/php/transactd.no_yield.php.git.patch
297
- - build/swig/php/transactd.no_yield.php.patch
298
- - build/swig/php/transactd.yield.php
299
- - build/swig/php/transactd.yield.php.git.patch
300
- - build/swig/php/transactd.yield.php.patch
301
295
  - build/swig/referencecounter.h
302
- - build/swig/ruby/generate.cmake.in
303
- - build/swig/ruby/generate.cmd.in
296
+ - build/swig/tdcl.i
297
+ - build/swig/validatablepointer.h
304
298
  - build/swig/ruby/ruby.swg
299
+ - build/swig/ruby/tdclrb_wrap.cpp
305
300
  - build/swig/ruby/threadBlockRegionWrapper.h
306
301
  - build/swig/ruby/without_gvl.swg
307
- - build/swig/tdcl.i
308
- - build/swig/validatablepointer.h
309
- - build/tdclc/BUILDNUMBER.txt
310
- - build/tdclc/CMakeLists.txt
311
- - build/tdclc/tdclc.cbproj
312
- - build/tdclc/tdclc.rc
313
- - build/tdclcpp/BUILDNUMBER.txt
314
- - build/tdclcpp/CMakeLists.txt
315
- - build/tdclcpp/tdclcpp.rc
316
- - build/tdclcpp/tdclcpp_bc.cbproj
317
- - build/tdclrb/BUILDNUMBER.txt
318
302
  - build/tdclrb/CMakeLists.txt
319
303
  - build/tdclrb/gem/detect.rb
320
304
  - build/tdclrb/gem/helper.rb
@@ -323,7 +307,14 @@ files:
323
307
  - build/tdclrb/gem/Makefile.win32-VS
324
308
  - build/tdclrb/gem/transactd.rb
325
309
  - build/tdclrb/gem_output.cmake
326
- - build/tdclrb/GEM_RELEASE_VERSION
310
+ - build/tdclrb/tdclrb.rc
311
+ - build/tdclc/CMakeLists.txt
312
+ - build/tdclc/libtdclcm.map
313
+ - build/tdclc/tdclc.cbproj
314
+ - build/tdclc/tdclc.rc
315
+ - build/tdclcpp/CMakeLists.txt
316
+ - build/tdclcpp/tdclcpp.rc
317
+ - build/tdclcpp/tdclcpp_bc.cbproj
327
318
  - ./BUILD_UNIX-JA
328
319
  - ./BUILD_WIN-JA
329
320
  - ./CMakeLists.txt
Binary file
Binary file
@@ -1,56 +0,0 @@
1
- ##=================================================================
2
- # Copyright (C) 2012 2013 BizStation Corp All rights reserved.
3
- #
4
- # This program is free software; you can redistribute it and/or
5
- # modify it under the terms of the GNU General Public License
6
- # as published by the Free Software Foundation; either version 2
7
- # of the License, or (at your option) any later version.
8
- #
9
- # This program is distributed in the hope that it will be useful,
10
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
11
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
- # GNU General Public License for more details.
13
- #
14
- # You should have received a copy of the GNU General Public License
15
- # along with this program; if not, write to the Free Software
16
- # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
17
- # 02111-1307, USA.
18
- ##=================================================================
19
- ## GENERATE SWIG WRAPPER
20
- if(WIN32)
21
- execute_process(
22
- ERROR_VARIABLE TRANSACTD_GENERATE_ERROR_VAR
23
- COMMAND "@SWIG_GEN_CMD_WIN@"
24
- )
25
- else()
26
- get_filename_component(TRANSACTD_PHP_PATH "@SWIG_NATIVE_OUTFILE@" PATH)
27
- file(TO_CMAKE_PATH "${TRANSACTD_PHP_PATH}/transactd.php" TRANSACTD_PHP_PATH)
28
- ## generate correct transactd.php
29
- MESSAGE("Generating ${TRANSACTD_PHP_PATH}.correct ...")
30
- execute_process(
31
- COMMAND ${CMAKE_COMMAND} -E copy_if_different "@SWIG_INTERFACE_FILE@" "@SWIG_INTERFACE_FILE@.org")
32
- execute_process(
33
- COMMAND grep -v "^%newobj" "@SWIG_INTERFACE_FILE@.org"
34
- OUTPUT_FILE "@SWIG_INTERFACE_FILE@")
35
- execute_process(
36
- ERROR_VARIABLE TRANSACTD_GENERATE_ERROR_VAR
37
- COMMAND swig -c++ -php5 -I@SWIG_INC_PATH1@ -I@SWIG_INC_PATH2@ -o @SWIG_NATIVE_OUTFILE@ @SWIG_INTERFACE_FILE@)
38
- execute_process(
39
- COMMAND ${CMAKE_COMMAND} -E copy_if_different "${TRANSACTD_PHP_PATH}" "${TRANSACTD_PHP_PATH}.correct")
40
- execute_process(
41
- COMMAND ${CMAKE_COMMAND} -E copy_if_different "@SWIG_INTERFACE_FILE@.org" "@SWIG_INTERFACE_FILE@")
42
- execute_process(
43
- COMMAND ${CMAKE_COMMAND} -E remove "@SWIG_INTERFACE_FILE@.org")
44
- ## generate wrapper cpp
45
- execute_process(
46
- ERROR_VARIABLE TRANSACTD_GENERATE_ERROR_VAR
47
- COMMAND swig -c++ -php5 -I@SWIG_INC_PATH1@ -I@SWIG_INC_PATH2@ -o @SWIG_NATIVE_OUTFILE@ @SWIG_INTERFACE_FILE@)
48
- ## overwrite with correct transactd.php
49
- execute_process(
50
- COMMAND ${CMAKE_COMMAND} -E copy_if_different "${TRANSACTD_PHP_PATH}.correct" "${TRANSACTD_PHP_PATH}")
51
- endif()
52
-
53
- if("${TRANSACTD_GENERATE_ERROR_VAR}" STREQUAL "")
54
- else()
55
- message(STATUS ${TRANSACTD_GENERATE_ERROR_VAR})
56
- endif()