transactd 2.2.0 → 2.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/BUILD_UNIX-JA +6 -6
- data/README +20 -18
- data/README-JA +19 -17
- data/RELEASE_NOTE +144 -0
- data/RELEASE_NOTE-JA +153 -0
- data/bin/common/tdclc_32_2_3.dll +0 -0
- data/bin/common/tdclc_64_2_3.dll +0 -0
- data/build/common/get_ruby_path.cmake +1 -1
- data/build/swig/ruby/ruby.swg +10 -9
- data/build/swig/ruby/tdclrb_wrap.cpp +1416 -561
- data/build/swig/tdcl.i +30 -3
- data/build/tdclc/tdclc.cbproj +1 -1
- data/build/tdclc/tdclc.rc +4 -4
- data/build/tdclcpp/BUILDNUMBER.txt +1 -0
- data/build/tdclcpp/tdclcpp.rc +4 -4
- data/build/tdclcpp/tdclcpp_bc.cbproj +1 -1
- data/build/tdclrb/BUILDNUMBER.txt +1 -0
- data/build/tdclrb/tdclrb.rc +4 -4
- data/source/bzs/db/engine/mysql/database.cpp +85 -41
- data/source/bzs/db/engine/mysql/database.h +35 -5
- data/source/bzs/db/engine/mysql/mysqlInternal.h +189 -37
- data/source/bzs/db/engine/mysql/mysqlThd.cpp +21 -21
- data/source/bzs/db/protocol/tdap/client/activeTable.cpp +11 -0
- data/source/bzs/db/protocol/tdap/client/activeTable.h +1 -1
- data/source/bzs/db/protocol/tdap/client/activeTableImple.h +11 -4
- data/source/bzs/db/protocol/tdap/client/client.h +30 -1
- data/source/bzs/db/protocol/tdap/client/dbDef.cpp +2 -1
- data/source/bzs/db/protocol/tdap/client/dllmain.cpp +35 -5
- data/source/bzs/db/protocol/tdap/client/field.cpp +100 -51
- data/source/bzs/db/protocol/tdap/client/field.h +7 -7
- data/source/bzs/db/protocol/tdap/client/filter.h +20 -6
- data/source/bzs/db/protocol/tdap/client/groupQuery.cpp +337 -58
- data/source/bzs/db/protocol/tdap/client/groupQuery.h +56 -13
- data/source/bzs/db/protocol/tdap/client/nsDatabase.cpp +83 -5
- data/source/bzs/db/protocol/tdap/client/nsDatabase.h +4 -1
- data/source/bzs/db/protocol/tdap/client/nsTable.cpp +2 -2
- data/source/bzs/db/protocol/tdap/client/nsTable.h +2 -1
- data/source/bzs/db/protocol/tdap/client/pooledDatabaseManager.h +20 -6
- data/source/bzs/db/protocol/tdap/client/recordset.cpp +7 -0
- data/source/bzs/db/protocol/tdap/client/recordsetImple.h +8 -4
- data/source/bzs/db/protocol/tdap/client/request.h +11 -1
- data/source/bzs/db/protocol/tdap/client/serializer.cpp +40 -2
- data/source/bzs/db/protocol/tdap/client/serializer.h +4 -2
- data/source/bzs/db/protocol/tdap/client/sqlBuilder.cpp +1 -0
- data/source/bzs/db/protocol/tdap/client/stringConverter.h +4 -4
- data/source/bzs/db/protocol/tdap/client/table.cpp +124 -71
- data/source/bzs/db/protocol/tdap/client/table.h +8 -7
- data/source/bzs/db/protocol/tdap/client/trdormapi.h +33 -1
- data/source/bzs/db/protocol/tdap/fieldComp.h +1 -1
- data/source/bzs/db/protocol/tdap/mysql/databaseSchema.cpp +3 -1
- data/source/bzs/db/protocol/tdap/mysql/recordsetReader.h +20 -4
- data/source/bzs/db/protocol/tdap/mysql/request.h +14 -0
- data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.cpp +132 -69
- data/source/bzs/db/protocol/tdap/tdapRequest.h +18 -4
- data/source/bzs/db/protocol/tdap/tdapSchema.cpp +32 -22
- data/source/bzs/db/protocol/tdap/tdapSchema.h +69 -4
- data/source/bzs/db/protocol/tdap/tdapcapi.h +13 -5
- data/source/bzs/db/protocol/tdap/uri.h +4 -4
- data/source/bzs/db/transactd/transactd.cpp +6 -5
- data/source/bzs/env/crosscompile.cpp +17 -0
- data/source/bzs/env/crosscompile.h +4 -1
- data/source/bzs/env/mbcswchrLinux.cpp +3 -0
- data/source/bzs/example/deleteRecords.cpp +13 -0
- data/source/bzs/example/deleteRecords_c.cpp +8 -1
- data/source/bzs/example/insertRecords.cpp +14 -0
- data/source/bzs/example/insertRecords_c.cpp +8 -1
- data/source/bzs/example/ormap_c.cpp +8 -1
- data/source/bzs/example/queryData.cpp +92 -2
- data/source/bzs/example/queryData.h +3 -1
- data/source/bzs/example/readRecords.cpp +13 -0
- data/source/bzs/example/readRecords_c.cpp +8 -1
- data/source/bzs/example/updateRecords.cpp +13 -0
- data/source/bzs/example/updateRecords_c.cpp +8 -1
- data/source/bzs/example/update_with_transaction.cpp +13 -0
- data/source/bzs/example/update_with_transaction_c.cpp +8 -1
- data/source/bzs/example/useORMRecord.cpp +9 -3
- data/source/bzs/netsvc/client/iconnection.h +8 -0
- data/source/bzs/netsvc/client/tcpClient.cpp +61 -16
- data/source/bzs/netsvc/client/tcpClient.h +430 -214
- data/source/bzs/netsvc/server/serverPipe.cpp +2 -2
- data/source/bzs/test/tdclphp/transactd_Test.php +115 -19
- data/source/bzs/test/tdclphp/transactd_blob_Test.php +33 -5
- data/source/bzs/test/tdclphp/transactd_kanjischema_Test.php +21 -3
- data/source/bzs/test/tdclphp/transactd_pool_Test.php +17 -3
- data/source/bzs/test/tdclrb/transactd_blob_spec.rb +26 -8
- data/source/bzs/test/tdclrb/transactd_kanjischema_spec.rb +13 -6
- data/source/bzs/test/tdclrb/transactd_pool_spec.rb +14 -8
- data/source/bzs/test/tdclrb/transactd_spec.rb +117 -27
- data/source/bzs/test/transactdBench/scaling_bench.cpp +5 -5
- data/source/bzs/test/transactdBench/workerBase.h +2 -2
- data/source/bzs/test/trdclengn/test_trdclengn.cpp +898 -51
- data/source/global/tdclatl/Database.cpp +12 -0
- data/source/global/tdclatl/Database.h +4 -0
- data/source/global/tdclatl/FieldDef.cpp +19 -0
- data/source/global/tdclatl/FieldDef.h +4 -0
- data/source/global/tdclatl/FieldDefs.cpp +14 -16
- data/source/global/tdclatl/GroupQuery.cpp +21 -16
- data/source/global/tdclatl/GroupQuery.h +1 -1
- data/source/global/tdclatl/QueryBase.cpp +14 -0
- data/source/global/tdclatl/QueryBase.h +2 -0
- data/source/global/tdclatl/Record.cpp +41 -10
- data/source/global/tdclatl/Record.h +1 -1
- data/source/global/tdclatl/Recordset.cpp +117 -31
- data/source/global/tdclatl/Recordset.h +6 -5
- data/source/global/tdclatl/Table.cpp +24 -28
- data/source/global/tdclatl/Table.h +3 -4
- data/source/global/tdclatl/activeTable.cpp +149 -103
- data/source/global/tdclatl/activeTable.h +1 -1
- data/source/global/tdclatl/tdclatl.idl +38 -18
- data/transactd.gemspec +1 -1
- metadata +8 -4
- data/bin/common/tdclc_32_2_2.dll +0 -0
- data/bin/common/tdclc_64_2_2.dll +0 -0
@@ -134,10 +134,6 @@ public:
|
|
134
134
|
STDMETHOD(get_RecordHash)(unsigned int* Value);
|
135
135
|
STDMETHOD(get_LogicalToString)(VARIANT_BOOL* Value);
|
136
136
|
STDMETHOD(put_LogicalToString)(VARIANT_BOOL Value);
|
137
|
-
STDMETHOD(get_TrimPadChar)(VARIANT_BOOL* Value);
|
138
|
-
STDMETHOD(put_TrimPadChar)(VARIANT_BOOL Value);
|
139
|
-
STDMETHOD(get_UsePadChar)(VARIANT_BOOL* Value);
|
140
|
-
STDMETHOD(put_UsePadChar)(VARIANT_BOOL Value);
|
141
137
|
STDMETHOD(MoveBookmarksId)(long Value);
|
142
138
|
STDMETHOD(get_MyDateTimeValueByBtrv)(VARIANT_BOOL* Value);
|
143
139
|
STDMETHOD(get_ValiableFormatType)(VARIANT_BOOL* Value);
|
@@ -147,4 +143,7 @@ public:
|
|
147
143
|
STDMETHOD(Prepare)(IQueryBase* Value, VARIANT_BOOL ServerPrepare, IPreparedQuery** retVal);
|
148
144
|
STDMETHOD(SetPrepare)(IPreparedQuery* Value);
|
149
145
|
STDMETHOD(FieldNumByName)(BSTR Name, short* Value);
|
146
|
+
STDMETHOD(get_StatReasonOfFind)(short* Value);
|
147
|
+
STDMETHOD(get_LastFindDirection)(short* Value);
|
148
|
+
|
150
149
|
};
|
@@ -37,7 +37,10 @@ void CActiveTable::setResult(IActiveTable** retVal)
|
|
37
37
|
|
38
38
|
void CActiveTable::FinalRelease()
|
39
39
|
{
|
40
|
-
|
40
|
+
if (m_recObj)
|
41
|
+
m_recObj->Release();
|
42
|
+
if (m_at)
|
43
|
+
m_at->release();
|
41
44
|
}
|
42
45
|
|
43
46
|
STDMETHODIMP CActiveTable::SetDatabase(VARIANT Value, BSTR tableName)
|
@@ -53,7 +56,7 @@ STDMETHODIMP CActiveTable::SetDatabase(VARIANT Value, BSTR tableName)
|
|
53
56
|
CPooledDbManager* pm = dynamic_cast<CPooledDbManager*>(Value.pdispVal);
|
54
57
|
if (pm)
|
55
58
|
{
|
56
|
-
m_at =
|
59
|
+
m_at = activeTable::create(&pm->m_mgr, tableName);
|
57
60
|
m_at->table()->setOptionalData((void*)NULL);
|
58
61
|
return S_OK;
|
59
62
|
}
|
@@ -61,7 +64,7 @@ STDMETHODIMP CActiveTable::SetDatabase(VARIANT Value, BSTR tableName)
|
|
61
64
|
CDatabase* p = dynamic_cast<CDatabase*>(Value.pdispVal);
|
62
65
|
if (p)
|
63
66
|
{
|
64
|
-
m_at =
|
67
|
+
m_at = activeTable::create(p->database(), tableName);
|
65
68
|
m_at->table()->setOptionalData((void*)p->database());
|
66
69
|
return S_OK;
|
67
70
|
}
|
@@ -75,9 +78,16 @@ STDMETHODIMP CActiveTable::SetDatabase(VARIANT Value, BSTR tableName)
|
|
75
78
|
|
76
79
|
STDMETHODIMP CActiveTable::Index(short Value, IActiveTable** retVal)
|
77
80
|
{
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
+
try
|
82
|
+
{
|
83
|
+
m_at->index(Value);
|
84
|
+
setResult(retVal);
|
85
|
+
return S_OK;
|
86
|
+
}
|
87
|
+
catch (bzs::rtl::exception& e)
|
88
|
+
{
|
89
|
+
return Error((*bzs::rtl::getMsg(e)).c_str(), IID_IActiveTable);
|
90
|
+
}
|
81
91
|
}
|
82
92
|
|
83
93
|
STDMETHODIMP CActiveTable::KeyValue(VARIANT Value0, VARIANT Value1,
|
@@ -87,78 +97,85 @@ STDMETHODIMP CActiveTable::KeyValue(VARIANT Value0, VARIANT Value1,
|
|
87
97
|
IActiveTable** retVal)
|
88
98
|
{
|
89
99
|
|
90
|
-
|
91
|
-
VariantChangeType(&Value0, &Value0, 0, VT_BSTR);
|
92
|
-
|
93
|
-
if (Value1.vt != VT_BSTR)
|
94
|
-
VariantChangeType(&Value1, &Value1, 0, VT_BSTR);
|
95
|
-
if (!Value1.bstrVal || !Value1.bstrVal[0])
|
100
|
+
try
|
96
101
|
{
|
97
|
-
|
98
|
-
|
99
|
-
return S_OK;
|
100
|
-
}
|
102
|
+
if (Value0.vt != VT_BSTR)
|
103
|
+
VariantChangeType(&Value0, &Value0, 0, VT_BSTR);
|
101
104
|
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
if (Value3.vt != VT_BSTR)
|
111
|
-
VariantChangeType(&Value3, &Value3, 0, VT_BSTR);
|
112
|
-
if (!Value3.bstrVal || !Value3.bstrVal[0])
|
113
|
-
{
|
114
|
-
m_at->keyValue(Value0.bstrVal, Value1.bstrVal, Value2.bstrVal);
|
115
|
-
setResult(retVal);
|
116
|
-
return S_OK;
|
117
|
-
}
|
118
|
-
if (Value4.vt != VT_BSTR)
|
119
|
-
VariantChangeType(&Value4, &Value4, 0, VT_BSTR);
|
120
|
-
if (!Value4.bstrVal || !Value4.bstrVal[0])
|
121
|
-
{
|
122
|
-
m_at->keyValue(Value0.bstrVal, Value1.bstrVal, Value2.bstrVal,
|
123
|
-
Value3.bstrVal);
|
124
|
-
setResult(retVal);
|
125
|
-
return S_OK;
|
126
|
-
}
|
105
|
+
if (Value1.vt != VT_BSTR)
|
106
|
+
VariantChangeType(&Value1, &Value1, 0, VT_BSTR);
|
107
|
+
if (!Value1.bstrVal || !Value1.bstrVal[0])
|
108
|
+
{
|
109
|
+
m_at->keyValue(Value0.bstrVal);
|
110
|
+
setResult(retVal);
|
111
|
+
return S_OK;
|
112
|
+
}
|
127
113
|
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
114
|
+
if (Value2.vt != VT_BSTR)
|
115
|
+
VariantChangeType(&Value2, &Value2, 0, VT_BSTR);
|
116
|
+
if (!Value2.bstrVal || !Value2.bstrVal[0])
|
117
|
+
{
|
118
|
+
m_at->keyValue(Value0.bstrVal, Value1.bstrVal);
|
119
|
+
setResult(retVal);
|
120
|
+
return S_OK;
|
121
|
+
}
|
122
|
+
if (Value3.vt != VT_BSTR)
|
123
|
+
VariantChangeType(&Value3, &Value3, 0, VT_BSTR);
|
124
|
+
if (!Value3.bstrVal || !Value3.bstrVal[0])
|
125
|
+
{
|
126
|
+
m_at->keyValue(Value0.bstrVal, Value1.bstrVal, Value2.bstrVal);
|
127
|
+
setResult(retVal);
|
128
|
+
return S_OK;
|
129
|
+
}
|
130
|
+
if (Value4.vt != VT_BSTR)
|
131
|
+
VariantChangeType(&Value4, &Value4, 0, VT_BSTR);
|
132
|
+
if (!Value4.bstrVal || !Value4.bstrVal[0])
|
133
|
+
{
|
134
|
+
m_at->keyValue(Value0.bstrVal, Value1.bstrVal, Value2.bstrVal,
|
135
|
+
Value3.bstrVal);
|
136
|
+
setResult(retVal);
|
137
|
+
return S_OK;
|
138
|
+
}
|
146
139
|
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
140
|
+
if (Value5.vt != VT_BSTR)
|
141
|
+
VariantChangeType(&Value5, &Value5, 0, VT_BSTR);
|
142
|
+
if (!Value5.bstrVal || !Value5.bstrVal[0])
|
143
|
+
{
|
144
|
+
m_at->keyValue(Value0.bstrVal, Value1.bstrVal, Value2.bstrVal,
|
145
|
+
Value3.bstrVal, Value4.bstrVal);
|
146
|
+
setResult(retVal);
|
147
|
+
return S_OK;
|
148
|
+
}
|
149
|
+
if (Value6.vt != VT_BSTR)
|
150
|
+
VariantChangeType(&Value6, &Value6, 0, VT_BSTR);
|
151
|
+
if (!Value6.bstrVal || !Value6.bstrVal[0])
|
152
|
+
{
|
153
|
+
m_at->keyValue(Value0.bstrVal, Value1.bstrVal, Value2.bstrVal,
|
154
|
+
Value3.bstrVal, Value4.bstrVal, Value5.bstrVal);
|
155
|
+
setResult(retVal);
|
156
|
+
return S_OK;
|
157
|
+
}
|
158
|
+
|
159
|
+
if (Value7.vt != VT_BSTR)
|
160
|
+
VariantChangeType(&Value7, &Value7, 0, VT_BSTR);
|
161
|
+
if (!Value7.bstrVal || !Value7.bstrVal[0])
|
162
|
+
{
|
163
|
+
m_at->keyValue(Value0.bstrVal, Value1.bstrVal, Value2.bstrVal,
|
164
|
+
Value3.bstrVal, Value4.bstrVal, Value5.bstrVal,
|
165
|
+
Value6.bstrVal);
|
166
|
+
setResult(retVal);
|
167
|
+
return S_OK;
|
168
|
+
}
|
151
169
|
m_at->keyValue(Value0.bstrVal, Value1.bstrVal, Value2.bstrVal,
|
152
170
|
Value3.bstrVal, Value4.bstrVal, Value5.bstrVal,
|
153
|
-
Value6.bstrVal);
|
171
|
+
Value6.bstrVal, Value7.bstrVal);
|
154
172
|
setResult(retVal);
|
155
173
|
return S_OK;
|
156
174
|
}
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
return S_OK;
|
175
|
+
catch (bzs::rtl::exception& e)
|
176
|
+
{
|
177
|
+
return Error((*bzs::rtl::getMsg(e)).c_str(), IID_IActiveTable);
|
178
|
+
}
|
162
179
|
}
|
163
180
|
|
164
181
|
STDMETHODIMP CActiveTable::Option(int Value, IActiveTable** retVal)
|
@@ -447,7 +464,6 @@ STDMETHODIMP CActiveTable::OuterJoin(IRecordset* rs, VARIANT query,
|
|
447
464
|
{
|
448
465
|
return Error((*bzs::rtl::getMsg(e)).c_str(), IID_IActiveTable);
|
449
466
|
}
|
450
|
-
|
451
467
|
}
|
452
468
|
|
453
469
|
STDMETHODIMP CActiveTable::Prepare(IQueryBase* Value, VARIANT_BOOL ServerPrepare, IPreparedQuery** retVal)
|
@@ -459,48 +475,59 @@ STDMETHODIMP CActiveTable::Prepare(IQueryBase* Value, VARIANT_BOOL ServerPrepare
|
|
459
475
|
{
|
460
476
|
CComObject<CPreparedQuery>* rsObj;
|
461
477
|
CComObject<CPreparedQuery>::CreateInstance(&rsObj);
|
462
|
-
|
463
478
|
if (!rsObj)
|
464
|
-
return Error(_T("
|
465
|
-
|
466
|
-
|
467
|
-
|
468
|
-
|
469
|
-
|
470
|
-
|
471
|
-
|
479
|
+
return Error(_T("CreateInstance PreparedQuery"), IID_ITable);
|
480
|
+
try
|
481
|
+
{
|
482
|
+
rsObj->setPqHandle(m_at->prepare(p->query(), (bool)ServerPrepare));
|
483
|
+
IPreparedQuery* pd;
|
484
|
+
rsObj->QueryInterface(IID_IPreparedQuery, (void**)&pd);
|
485
|
+
_ASSERTE(pd);
|
486
|
+
*retVal = pd;
|
487
|
+
return S_OK;
|
488
|
+
}
|
489
|
+
catch (bzs::rtl::exception& e)
|
490
|
+
{
|
491
|
+
return Error((*bzs::rtl::getMsg(e)).c_str(), IID_IActiveTable);
|
492
|
+
}
|
472
493
|
}
|
473
494
|
}
|
474
495
|
return Error(_T("Invalid ActiveTable::Prepare param 1"), IID_IActiveTable);
|
475
496
|
}
|
476
497
|
|
477
|
-
|
478
498
|
STDMETHODIMP CActiveTable::GetWritableRecord(IWritableRecord** retVal)
|
479
499
|
{
|
480
500
|
|
481
501
|
if (m_recObj == NULL)
|
482
502
|
{
|
483
503
|
CComObject<CWritableRecord>::CreateInstance(&m_recObj);
|
484
|
-
|
504
|
+
if (!m_recObj)
|
505
|
+
return Error("CreateInstance WritableRecord", IID_IActiveTable);
|
506
|
+
m_recObj->AddRef();
|
485
507
|
}
|
486
|
-
|
508
|
+
try
|
487
509
|
{
|
488
|
-
|
510
|
+
m_recObj->m_rec = &m_at->getWritableRecord();
|
489
511
|
IWritableRecord* wrec;
|
490
512
|
m_recObj->QueryInterface(IID_IWritableRecord, (void**)&wrec);
|
491
513
|
_ASSERTE(wrec);
|
492
514
|
*retVal = wrec;
|
515
|
+
return S_OK;
|
516
|
+
}
|
517
|
+
catch (bzs::rtl::exception& e)
|
518
|
+
{
|
519
|
+
return Error((*bzs::rtl::getMsg(e)).c_str(), IID_IActiveTable);
|
493
520
|
}
|
494
|
-
|
495
|
-
return S_OK;
|
496
521
|
}
|
497
522
|
|
498
523
|
STDMETHODIMP CActiveTable::get_TableDef(ITableDef** Value)
|
499
524
|
{
|
500
|
-
|
501
|
-
CComObject<CTableDef>::CreateInstance(&piObj);
|
502
|
-
if (piObj)
|
525
|
+
try
|
503
526
|
{
|
527
|
+
CComObject<CTableDef>* piObj;
|
528
|
+
CComObject<CTableDef>::CreateInstance(&piObj);
|
529
|
+
if (!piObj)
|
530
|
+
return Error(_T("CreateInstance TableDef"), IID_IActiveTable);
|
504
531
|
|
505
532
|
piObj->m_tabledefPtr =
|
506
533
|
const_cast<tabledef**>(m_at->table()->tableDefPtr());
|
@@ -509,10 +536,12 @@ STDMETHODIMP CActiveTable::get_TableDef(ITableDef** Value)
|
|
509
536
|
piObj->QueryInterface(IID_ITableDef, (void**)&tbd);
|
510
537
|
_ASSERTE(tbd);
|
511
538
|
*Value = tbd;
|
539
|
+
return S_OK;
|
540
|
+
}
|
541
|
+
catch (bzs::rtl::exception& e)
|
542
|
+
{
|
543
|
+
return Error((*bzs::rtl::getMsg(e)).c_str(), IID_IActiveTable);
|
512
544
|
}
|
513
|
-
else
|
514
|
-
*Value = 0;
|
515
|
-
return S_OK;
|
516
545
|
}
|
517
546
|
|
518
547
|
STDMETHODIMP CActiveTable::Table(ITable** retVal)
|
@@ -521,23 +550,40 @@ STDMETHODIMP CActiveTable::Table(ITable** retVal)
|
|
521
550
|
{
|
522
551
|
CComObject<CTableTd>* ptb;
|
523
552
|
CComObject<CTableTd>::CreateInstance(&ptb);
|
524
|
-
|
525
|
-
|
526
|
-
|
527
|
-
|
528
|
-
|
529
|
-
|
530
|
-
|
531
|
-
|
532
|
-
*retVal = itb;
|
533
|
-
}
|
534
|
-
else
|
535
|
-
*retVal = NULL;
|
553
|
+
if (!ptb)
|
554
|
+
return Error(_T("CreateInstance Table"), IID_IActiveTable);
|
555
|
+
ptb->m_tb = m_at->table();
|
556
|
+
ptb->m_tb->setOptionalData((void*)NULL);
|
557
|
+
ITable* itb;
|
558
|
+
ptb->QueryInterface(IID_ITable, (void**)&itb);
|
559
|
+
_ASSERTE(itb);
|
560
|
+
*retVal = itb;
|
536
561
|
return S_OK;
|
537
562
|
}
|
563
|
+
catch (bzs::rtl::exception& e)
|
564
|
+
{
|
565
|
+
return Error((*bzs::rtl::getMsg(e)).c_str(), IID_IActiveTable);
|
566
|
+
}
|
567
|
+
}
|
538
568
|
|
569
|
+
STDMETHODIMP CActiveTable::ReadMore(IRecordset** retVal)
|
570
|
+
{
|
571
|
+
try
|
572
|
+
{
|
573
|
+
CComObject<CARecordset>* rsObj;
|
574
|
+
CComObject<CARecordset>::CreateInstance(&rsObj);
|
575
|
+
if (!rsObj)
|
576
|
+
return Error(_T("CreateInstance Recordset"), IID_IActiveTable);
|
577
|
+
IRecordset* rs;
|
578
|
+
rsObj->QueryInterface(IID_IRecordset, (void**)&rs);
|
579
|
+
_ASSERTE(rs);
|
580
|
+
*retVal = rs;
|
581
|
+
m_at->readMore(*rsObj->m_rs);
|
582
|
+
return S_OK;
|
583
|
+
}
|
539
584
|
catch (bzs::rtl::exception& e)
|
540
585
|
{
|
541
586
|
return Error((*bzs::rtl::getMsg(e)).c_str(), IID_IActiveTable);
|
542
587
|
}
|
543
588
|
}
|
589
|
+
|
@@ -81,8 +81,8 @@ public:
|
|
81
81
|
|
82
82
|
STDMETHOD(GetWritableRecord)(IWritableRecord** retVal);
|
83
83
|
STDMETHOD(get_TableDef)(ITableDef** Value);
|
84
|
-
|
85
84
|
STDMETHOD(Table)(ITable** retVal);
|
85
|
+
STDMETHOD(ReadMore)(IRecordset** retVal);
|
86
86
|
};
|
87
87
|
|
88
88
|
OBJECT_ENTRY_AUTO(__uuidof(ActiveTable), CActiveTable)
|
@@ -77,7 +77,8 @@ typedef
|
|
77
77
|
enum eFindType
|
78
78
|
{
|
79
79
|
findForword = 0,
|
80
|
-
findBackForword = 1
|
80
|
+
findBackForword = 1,
|
81
|
+
findContinue = 2
|
81
82
|
}eFindType;
|
82
83
|
|
83
84
|
|
@@ -192,7 +193,13 @@ enum eStatus
|
|
192
193
|
NET_BAD_SRB_FORMAT = 3021,
|
193
194
|
ERROR_TD_HOSTNAME_NOT_FOUND = 3103,
|
194
195
|
ERROR_TD_CONNECTION_FAILURE = 3106,
|
195
|
-
ERROR_TD_NOT_CONNECTED = 3110
|
196
|
+
ERROR_TD_NOT_CONNECTED = 3110,
|
197
|
+
ERROR_TD_NET_TIMEOUT = 3800,
|
198
|
+
ERROR_TD_NET_REMOTE_DISCONNECT= 3801,
|
199
|
+
ERROR_TD_NET_TOO_BIGDATA = 3802,
|
200
|
+
ERROR_TD_NET_OTHER = 3810,
|
201
|
+
ERROR_TD_C_CLIENT_UNKNOWN = 3811,
|
202
|
+
ERROR_TD_RECONNECTED = 3900
|
196
203
|
}eStatus;
|
197
204
|
|
198
205
|
typedef
|
@@ -350,7 +357,9 @@ enum eGroupFunc
|
|
350
357
|
fcount = 1,
|
351
358
|
favg = 2,
|
352
359
|
fmin = 3,
|
353
|
-
fmax = 4
|
360
|
+
fmax = 4,
|
361
|
+
ffirst = 5,
|
362
|
+
flast = 6
|
354
363
|
}eGroupFunc;
|
355
364
|
|
356
365
|
typedef
|
@@ -493,7 +502,10 @@ interface IDatabase : IDispatch
|
|
493
502
|
HRESULT _stdcall TrxIsolationServer([out, retval] eSrvIsorationType* Value);
|
494
503
|
[propget, id(0x000000F6)]
|
495
504
|
HRESULT _stdcall TrxLockWaitTimeoutServer([out, retval] int* Value);
|
496
|
-
|
505
|
+
[id(0x000000F7)]
|
506
|
+
HRESULT _stdcall DisconnectForReconnectTest([out, retval] VARIANT_BOOL* Value);
|
507
|
+
[id(0x000000F8)]
|
508
|
+
HRESULT _stdcall Reconnect([out, retval] VARIANT_BOOL* Value);
|
497
509
|
|
498
510
|
};
|
499
511
|
|
@@ -710,14 +722,6 @@ interface ITable : IDispatch
|
|
710
722
|
HRESULT _stdcall LogicalToString([out, retval] VARIANT_BOOL* Value);
|
711
723
|
[propput, id(0x000000F3)]
|
712
724
|
HRESULT _stdcall LogicalToString([in] VARIANT_BOOL Value);
|
713
|
-
[propget, id(0x000000F4)]
|
714
|
-
HRESULT _stdcall TrimPadChar([out, retval] VARIANT_BOOL* Value);
|
715
|
-
[propput, id(0x000000F4)]
|
716
|
-
HRESULT _stdcall TrimPadChar([in] VARIANT_BOOL Value);
|
717
|
-
[propget, id(0x000000F5)]
|
718
|
-
HRESULT _stdcall UsePadChar([out, retval] VARIANT_BOOL* Value);
|
719
|
-
[propput, id(0x000000F5)]
|
720
|
-
HRESULT _stdcall UsePadChar([in] VARIANT_BOOL Value);
|
721
725
|
[id(0x000000F6)]
|
722
726
|
HRESULT _stdcall MoveBookmarksId([in] long Value);
|
723
727
|
[propget, id(0x000000F7)]
|
@@ -736,6 +740,10 @@ interface ITable : IDispatch
|
|
736
740
|
HRESULT _stdcall Prepare([in] IQueryBase* Value, [in, defaultvalue(0)] VARIANT_BOOL ServerPrepare, [out, retval] IPreparedQuery** retVal);
|
737
741
|
[id(0x000000FF)]
|
738
742
|
HRESULT _stdcall SetPrepare([in] IPreparedQuery* Value);
|
743
|
+
[propget, id(0x000000E1)]
|
744
|
+
HRESULT _stdcall StatReasonOfFind([out, retval] short* Value);
|
745
|
+
[propget, id(0x000000E2)]
|
746
|
+
HRESULT _stdcall LastFindDirection([out, retval] short* Value);
|
739
747
|
|
740
748
|
};
|
741
749
|
[
|
@@ -897,9 +905,12 @@ interface IFieldDef : IDispatch
|
|
897
905
|
HRESULT _stdcall SetLenByCharnum([in] unsigned short Value);
|
898
906
|
[propget, id(0x00000015)]
|
899
907
|
HRESULT _stdcall Index([out, retval] short* Value);
|
900
|
-
|
901
|
-
|
902
|
-
|
908
|
+
[id(0x00000016)]
|
909
|
+
HRESULT _stdcall SetPadCharSettings([in] VARIANT_BOOL set, [in] VARIANT_BOOL trim);
|
910
|
+
[propget, id(0x00000017)]
|
911
|
+
HRESULT _stdcall UsePadChar([out, retval] VARIANT_BOOL* Value);
|
912
|
+
[propget, id(0x00000018)]
|
913
|
+
HRESULT _stdcall TrimPadChar([out, retval] VARIANT_BOOL* Value);
|
903
914
|
};
|
904
915
|
[
|
905
916
|
object,
|
@@ -1106,6 +1117,10 @@ interface IQueryBase : IDispatch
|
|
1106
1117
|
HRESULT _stdcall BookmarkAlso([in] VARIANT_BOOL Value, [out, retval] IQueryBase** retVal);
|
1107
1118
|
[id(0x000001B)]
|
1108
1119
|
HRESULT _stdcall IsBookmarkAlso([out, retval] VARIANT_BOOL* retVal);
|
1120
|
+
[id(0x000001C)]
|
1121
|
+
HRESULT _stdcall StopAtLimit([in] VARIANT_BOOL Value, [out, retval] IQueryBase** retVal);
|
1122
|
+
[id(0x000001D)]
|
1123
|
+
HRESULT _stdcall IsStopAtLimit([out, retval] VARIANT_BOOL* retVal);
|
1109
1124
|
|
1110
1125
|
|
1111
1126
|
};
|
@@ -1166,8 +1181,9 @@ interface IActiveTable : IDispatch
|
|
1166
1181
|
HRESULT _stdcall Prepare([in] IQueryBase* Value, [in, defaultvalue(0)] VARIANT_BOOL ServerPrepare, [out, retval] IPreparedQuery** retVal);
|
1167
1182
|
[id(0x000000D)]
|
1168
1183
|
HRESULT _stdcall Table([out, retval]ITable** retVal);
|
1169
|
-
|
1170
|
-
|
1184
|
+
[id(0x000000E)]
|
1185
|
+
HRESULT _stdcall ReadMore([out, retval] IRecordset** retVal);
|
1186
|
+
|
1171
1187
|
};
|
1172
1188
|
|
1173
1189
|
|
@@ -1230,6 +1246,10 @@ interface IRecordset : IDispatch
|
|
1230
1246
|
[id(0x0000014)]
|
1231
1247
|
HRESULT _stdcall ClearRecords();
|
1232
1248
|
|
1249
|
+
[id(0x0000015)]
|
1250
|
+
HRESULT _stdcall UnionRecordset([in] IRecordset* rs, [out, retval] IRecordset** retVal);
|
1251
|
+
|
1252
|
+
|
1233
1253
|
|
1234
1254
|
};
|
1235
1255
|
|
@@ -1296,7 +1316,7 @@ interface IGroupQuery : IDispatch
|
|
1296
1316
|
|
1297
1317
|
[id(0x0000002)]
|
1298
1318
|
HRESULT _stdcall AddFunction([in] eGroupFunc func
|
1299
|
-
, [in]
|
1319
|
+
, [in] VARIANT targetNames , [in, defaultvalue("")] BSTR resultName
|
1300
1320
|
, [in, defaultvalue("")]VARIANT q, [out, retval] IGroupQuery** retVal);
|
1301
1321
|
|
1302
1322
|
[id(0x0000004)]
|
data/transactd.gemspec
CHANGED
@@ -44,7 +44,7 @@ spec_build = Gem::Specification.new do |s|
|
|
44
44
|
raise 'Can not read versions from ' + verfile + ' (' + ver_str + ')' if ver_str.length == 0
|
45
45
|
s.version = ver_str
|
46
46
|
|
47
|
-
binary_file = File.join('bin', RUBY_VERSION.
|
47
|
+
binary_file = File.join('bin', RUBY_VERSION.sub(/(\d+\.\d+)\..*/, '\1'), 'transactd.so')
|
48
48
|
binarymode = File.exist?(binary_file)
|
49
49
|
|
50
50
|
if binarymode
|
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.
|
4
|
+
version: 2.3.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: 2015-
|
11
|
+
date: 2015-03-31 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/
|
23
|
-
- bin/common/
|
22
|
+
- bin/common/tdclc_32_2_3.dll
|
23
|
+
- bin/common/tdclc_64_2_3.dll
|
24
24
|
- source/bzs/db/blobBuffer.h
|
25
25
|
- source/bzs/db/blobStructs.h
|
26
26
|
- source/bzs/db/engine/mysql/bookmark.h
|
@@ -301,6 +301,7 @@ files:
|
|
301
301
|
- build/swig/ruby/tdclrb_wrap.cpp
|
302
302
|
- build/swig/ruby/threadBlockRegionWrapper.h
|
303
303
|
- build/swig/ruby/without_gvl.swg
|
304
|
+
- build/tdclrb/BUILDNUMBER.txt
|
304
305
|
- build/tdclrb/CMakeLists.txt
|
305
306
|
- build/tdclrb/gem/detect.rb
|
306
307
|
- build/tdclrb/gem/helper.rb
|
@@ -314,6 +315,7 @@ files:
|
|
314
315
|
- build/tdclc/libtdclcm.map
|
315
316
|
- build/tdclc/tdclc.cbproj
|
316
317
|
- build/tdclc/tdclc.rc
|
318
|
+
- build/tdclcpp/BUILDNUMBER.txt
|
317
319
|
- build/tdclcpp/CMakeLists.txt
|
318
320
|
- build/tdclcpp/tdclcpp.rc
|
319
321
|
- build/tdclcpp/tdclcpp_bc.cbproj
|
@@ -326,6 +328,8 @@ files:
|
|
326
328
|
- ./README-JA
|
327
329
|
- ./README_ORMSRCGEN
|
328
330
|
- ./README_ORMSRCGEN-JA
|
331
|
+
- ./RELEASE_NOTE
|
332
|
+
- ./RELEASE_NOTE-JA
|
329
333
|
- ./transactd.gemspec
|
330
334
|
homepage: http://www.bizstation.jp/ja/transactd
|
331
335
|
licenses:
|
data/bin/common/tdclc_32_2_2.dll
DELETED
Binary file
|
data/bin/common/tdclc_64_2_2.dll
DELETED
Binary file
|