transactd 1.2.0 → 2.0.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.
- checksums.yaml +4 -4
- data/BUILD_UNIX-JA +46 -67
- data/BUILD_WIN-JA +106 -63
- data/CMakeLists.txt +40 -15
- data/README +219 -75
- data/README-JA +207 -76
- data/README_ORMSRCGEN +118 -0
- data/README_ORMSRCGEN-JA +115 -0
- data/bin/common/tdclc_32_2_0.dll +0 -0
- data/bin/common/tdclc_64_2_0.dll +0 -0
- data/build/common/check_for_link_iconv.cmake +18 -14
- data/build/common/create_symlink.cmake.in +25 -0
- data/build/common/get_boost_libs.cmake +23 -23
- data/build/common/options.cmake +0 -66
- data/build/common/smart_install.cmake +3 -3
- data/build/common/transactd.rc.in +15 -5
- data/build/common/transactd_cl_common.cmake +37 -18
- data/build/common/transactd_cl_output.cmake +55 -13
- data/build/common/transactd_common.cmake +108 -31
- data/build/swig/php/generate.cmake.in +15 -17
- data/build/swig/php/generate.cmd.in +15 -9
- data/build/swig/php/php.swg +124 -82
- data/build/swig/php/transactd.no_yield.php +4494 -0
- data/build/swig/php/transactd.no_yield.php.git.patch +685 -0
- data/build/swig/php/transactd.no_yield.php.patch +685 -0
- data/build/swig/php/transactd.yield.php +4461 -0
- data/build/swig/php/transactd.yield.php.git.patch +652 -0
- data/build/swig/php/transactd.yield.php.patch +652 -0
- data/build/swig/referencecounter.h +79 -0
- data/build/swig/ruby/ruby.swg +226 -76
- data/build/swig/ruby/threadBlockRegionWrapper.h +71 -0
- data/build/swig/ruby/without_gvl.swg +87 -0
- data/build/swig/tdcl.i +659 -170
- data/build/swig/validatablepointer.h +91 -0
- data/build/tdclc/CMakeLists.txt +49 -34
- data/build/tdclc/{tdclc_64.cbproj → tdclc.cbproj} +65 -20
- data/build/tdclc/tdclc.rc +0 -0
- data/build/tdclcpp/CMakeLists.txt +84 -20
- data/build/tdclcpp/tdclcpp.rc +0 -0
- data/build/tdclcpp/{tdclcpp_bcb_64.cbproj → tdclcpp_bc.cbproj} +168 -44
- data/build/tdclrb/CMakeLists.txt +84 -66
- data/build/tdclrb/bldgem/extconf.rb +28 -3
- data/build/tdclrb/gem/helper.rb +11 -1
- data/build/tdclrb/gem_output.cmake +20 -16
- data/index_ja.html +15 -0
- data/source/bzs/db/IBlobBuffer.h +15 -17
- data/source/bzs/db/blobBuffer.h +186 -140
- data/source/bzs/db/blobStructs.h +37 -37
- data/source/bzs/db/engine/mysql/IReadRecords.h +34 -34
- data/source/bzs/db/engine/mysql/bookmark.h +150 -147
- data/source/bzs/db/engine/mysql/database.cpp +1721 -1526
- data/source/bzs/db/engine/mysql/database.h +608 -370
- data/source/bzs/db/engine/mysql/dbManager.cpp +213 -201
- data/source/bzs/db/engine/mysql/dbManager.h +115 -104
- data/source/bzs/db/engine/mysql/errorMessage.cpp +49 -50
- data/source/bzs/db/engine/mysql/errorMessage.h +25 -26
- data/source/bzs/db/engine/mysql/fieldAccess.h +55 -61
- data/source/bzs/db/engine/mysql/mydebuglog.cpp +326 -292
- data/source/bzs/db/engine/mysql/mydebuglog.h +63 -55
- data/source/bzs/db/engine/mysql/mysqlInternal.h +182 -125
- data/source/bzs/db/engine/mysql/mysqlThd.cpp +121 -121
- data/source/bzs/db/engine/mysql/mysqlThd.h +20 -20
- data/source/bzs/db/engine/mysql/percentageKey.h +241 -228
- data/source/bzs/db/protocol/ICommandExecuter.h +18 -17
- data/source/bzs/db/protocol/hs/hsCommandExecuter.cpp +543 -514
- data/source/bzs/db/protocol/hs/hsCommandExecuter.h +155 -158
- data/source/bzs/db/protocol/tdap/btrDate.cpp +213 -180
- data/source/bzs/db/protocol/tdap/btrDate.h +39 -37
- data/source/bzs/db/protocol/tdap/client/activeTable.cpp +173 -0
- data/source/bzs/db/protocol/tdap/client/activeTable.h +165 -0
- data/source/bzs/db/protocol/tdap/client/activeTableImple.h +370 -0
- data/source/bzs/db/protocol/tdap/client/bulkInsert.h +13 -23
- data/source/bzs/db/protocol/tdap/client/client.cpp +81 -68
- data/source/bzs/db/protocol/tdap/client/client.h +361 -320
- data/source/bzs/db/protocol/tdap/client/connMgr.cpp +17 -22
- data/source/bzs/db/protocol/tdap/client/connMgr.h +17 -19
- data/source/bzs/db/protocol/tdap/client/connectionPool.cpp +243 -0
- data/source/bzs/db/protocol/tdap/client/connectionPool.h +109 -0
- data/source/bzs/db/protocol/tdap/client/database.cpp +327 -219
- data/source/bzs/db/protocol/tdap/client/database.h +141 -118
- data/source/bzs/db/protocol/tdap/client/databaseFactory.cpp +60 -62
- data/source/bzs/db/protocol/tdap/client/databaseManager.h +255 -0
- data/source/bzs/db/protocol/tdap/client/dbDef.cpp +315 -202
- data/source/bzs/db/protocol/tdap/client/dbDef.h +40 -32
- data/source/bzs/db/protocol/tdap/client/dllmain.cpp +390 -371
- data/source/bzs/db/protocol/tdap/client/errorMessage.cpp +148 -56
- data/source/bzs/db/protocol/tdap/client/errorMessage_ja.cpp +149 -57
- data/source/bzs/db/protocol/tdap/client/export.h +35 -0
- data/source/bzs/db/protocol/tdap/client/field.cpp +1985 -0
- data/source/bzs/db/protocol/tdap/client/field.h +393 -0
- data/source/bzs/db/protocol/tdap/client/fieldDDF.cpp +14 -14
- data/source/bzs/db/protocol/tdap/client/fieldDDF.h +11 -14
- data/source/bzs/db/protocol/tdap/client/fieldNameAlias.cpp +123 -0
- data/source/bzs/db/protocol/tdap/client/fieldNameAlias.h +58 -0
- data/source/bzs/db/protocol/tdap/client/fields.h +178 -0
- data/source/bzs/db/protocol/tdap/client/fileDDF.cpp +13 -16
- data/source/bzs/db/protocol/tdap/client/fileDDF.h +11 -17
- data/source/bzs/db/protocol/tdap/client/filter.h +423 -259
- data/source/bzs/db/protocol/tdap/client/groupComp.h +117 -0
- data/source/bzs/db/protocol/tdap/client/groupQuery.cpp +818 -0
- data/source/bzs/db/protocol/tdap/client/groupQuery.h +281 -0
- data/source/bzs/db/protocol/tdap/client/indexDDF.cpp +14 -17
- data/source/bzs/db/protocol/tdap/client/indexDDF.h +11 -14
- data/source/bzs/db/protocol/tdap/client/memRecord.cpp +231 -0
- data/source/bzs/db/protocol/tdap/client/memRecord.h +145 -0
- data/source/bzs/db/protocol/tdap/client/memRecordset.cpp +448 -0
- data/source/bzs/db/protocol/tdap/client/memRecordset.h +159 -0
- data/source/bzs/db/protocol/tdap/client/nsDatabase.cpp +300 -173
- data/source/bzs/db/protocol/tdap/client/nsDatabase.h +53 -36
- data/source/bzs/db/protocol/tdap/client/nsTable.cpp +171 -128
- data/source/bzs/db/protocol/tdap/client/nsTable.h +121 -87
- data/source/bzs/db/protocol/tdap/client/pooledDatabaseManager.h +173 -0
- data/source/bzs/db/protocol/tdap/client/recordset.cpp +209 -0
- data/source/bzs/db/protocol/tdap/client/recordset.h +86 -0
- data/source/bzs/db/protocol/tdap/client/recordsetImple.h +596 -0
- data/source/bzs/db/protocol/tdap/client/request.h +227 -170
- data/source/bzs/db/protocol/tdap/client/serializer.cpp +1288 -0
- data/source/bzs/db/protocol/tdap/client/serializer.h +295 -0
- data/source/bzs/db/protocol/tdap/client/sharedData.cpp +9 -12
- data/source/bzs/db/protocol/tdap/client/sharedData.h +18 -16
- data/source/bzs/db/protocol/tdap/client/sqlBuilder.cpp +494 -473
- data/source/bzs/db/protocol/tdap/client/sqlBuilder.h +51 -53
- data/source/bzs/db/protocol/tdap/client/stringConverter.h +214 -148
- data/source/bzs/db/protocol/tdap/client/table.cpp +929 -1665
- data/source/bzs/db/protocol/tdap/client/table.h +413 -87
- data/source/bzs/db/protocol/tdap/client/trdboostapi.h +642 -534
- data/source/bzs/db/protocol/tdap/client/trdboostapiInternal.h +25 -40
- data/source/bzs/db/protocol/tdap/client/trdclcppautolink.h +11 -15
- data/source/bzs/db/protocol/tdap/client/trdormapi.h +378 -437
- data/source/bzs/db/protocol/tdap/client/trnsctcl.def +1 -1
- data/source/bzs/db/protocol/tdap/fieldComp.h +127 -0
- data/source/bzs/db/protocol/tdap/myDateTime.cpp +352 -345
- data/source/bzs/db/protocol/tdap/mysql/characterset.cpp +75 -78
- data/source/bzs/db/protocol/tdap/mysql/characterset.h +18 -19
- data/source/bzs/db/protocol/tdap/mysql/databaseSchema.cpp +216 -199
- data/source/bzs/db/protocol/tdap/mysql/databaseSchema.h +23 -14
- data/source/bzs/db/protocol/tdap/mysql/debuglog.cpp +354 -314
- data/source/bzs/db/protocol/tdap/mysql/debuglog.h +57 -47
- data/source/bzs/db/protocol/tdap/mysql/recordsetReader.h +905 -739
- data/source/bzs/db/protocol/tdap/mysql/request.h +152 -159
- data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.cpp +1044 -879
- data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.h +87 -81
- data/source/bzs/db/protocol/tdap/tdapRequest.h +162 -130
- data/source/bzs/db/protocol/tdap/tdapSchema.cpp +368 -166
- data/source/bzs/db/protocol/tdap/tdapSchema.h +702 -566
- data/source/bzs/db/protocol/tdap/tdapcapi.h +387 -353
- data/source/bzs/db/transactd/appBuilderImple.h +21 -20
- data/source/bzs/db/transactd/appModule.cpp +350 -98
- data/source/bzs/db/transactd/appModule.h +31 -37
- data/source/bzs/db/transactd/connManager.cpp +138 -135
- data/source/bzs/db/transactd/connManager.h +28 -21
- data/source/bzs/db/transactd/connectionRecord.h +39 -39
- data/source/bzs/db/transactd/transactd.cpp +217 -203
- data/source/bzs/env/boost_bcb_link.h +131 -0
- data/source/bzs/env/compiler.h +136 -79
- data/source/bzs/env/crosscompile.cpp +57 -57
- data/source/bzs/env/crosscompile.h +130 -115
- data/source/bzs/env/fileopen.h +7 -8
- data/source/bzs/env/mbcswchrLinux.cpp +4 -9
- data/source/bzs/env/mbcswchrLinux.h +37 -34
- data/source/bzs/env/tcharMinGW.h +59 -0
- data/source/bzs/env/tstring.h +90 -95
- data/source/bzs/example/changeSchema.cpp +22 -23
- data/source/bzs/example/changeSchema_c.cpp +22 -24
- data/source/bzs/example/connection_pool_c.cpp +49 -104
- data/source/bzs/example/createDatabase.cpp +40 -47
- data/source/bzs/example/createDatabase_c.cpp +38 -43
- data/source/bzs/example/deleteRecords.cpp +10 -15
- data/source/bzs/example/deleteRecords_c.cpp +10 -14
- data/source/bzs/example/dropDatabase.cpp +3 -9
- data/source/bzs/example/dropDatabase_c.cpp +5 -6
- data/source/bzs/example/insertRecords.cpp +37 -29
- data/source/bzs/example/insertRecords_c.cpp +19 -25
- data/source/bzs/example/ormap_c.cpp +621 -0
- data/source/bzs/example/queryData.cpp +371 -0
- data/source/bzs/example/queryData.h +16 -0
- data/source/bzs/example/query_c.cpp +109 -0
- data/source/bzs/example/readRecords.cpp +27 -27
- data/source/bzs/example/readRecords_c.cpp +25 -23
- data/source/bzs/example/updateRecords.cpp +16 -21
- data/source/bzs/example/updateRecords_c.cpp +8 -12
- data/source/bzs/example/update_with_transaction.cpp +21 -24
- data/source/bzs/example/update_with_transaction_c.cpp +12 -15
- data/source/bzs/example/useORMRecord.cpp +177 -0
- data/source/bzs/netsvc/client/tcpClient.cpp +167 -156
- data/source/bzs/netsvc/client/tcpClient.h +541 -489
- data/source/bzs/netsvc/server/IAppModule.h +119 -32
- data/source/bzs/netsvc/server/iserver.h +21 -23
- data/source/bzs/netsvc/server/serverCpt.cpp +421 -391
- data/source/bzs/netsvc/server/serverCpt.h +41 -43
- data/source/bzs/netsvc/server/serverPipe.cpp +580 -565
- data/source/bzs/netsvc/server/serverPipe.h +44 -45
- data/source/bzs/netsvc/server/serverTpool.cpp +333 -303
- data/source/bzs/netsvc/server/serverTpool.h +38 -43
- data/source/bzs/rtl/benchmark.cpp +91 -31
- data/source/bzs/rtl/benchmark.h +76 -22
- data/source/bzs/rtl/datetime.cpp +231 -233
- data/source/bzs/rtl/datetime.h +16 -16
- data/source/bzs/rtl/debuglog.cpp +48 -51
- data/source/bzs/rtl/debuglog.h +55 -44
- data/source/bzs/rtl/exception.h +55 -48
- data/source/bzs/rtl/stl_uty.cpp +27 -28
- data/source/bzs/rtl/stl_uty.h +28 -29
- data/source/bzs/rtl/stringBuffers.cpp +8 -6
- data/source/bzs/rtl/stringBuffers.h +16 -9
- data/source/bzs/rtl/strtrim.cpp +90 -91
- data/source/bzs/rtl/strtrim.h +14 -16
- data/source/bzs/test/tdclatl/bench_query_atl.js +647 -0
- data/source/bzs/test/tdclatl/bench_tdclatl.js +303 -303
- data/source/bzs/test/tdclatl/test_query_atl.js +669 -0
- data/source/bzs/test/tdclphp/bench.php +357 -0
- data/source/bzs/test/tdclphp/transactd_Test.php +907 -303
- data/source/bzs/test/tdclphp/transactd_blob_Test.php +21 -49
- data/source/bzs/test/tdclphp/transactd_datetime_Test.php +41 -75
- data/source/bzs/test/tdclphp/transactd_kanjischema_Test.php +23 -37
- data/source/bzs/test/tdclphp/transactd_pool_Test.php +120 -0
- data/source/bzs/test/tdclrb/bench_tdclcpp.rb +4 -6
- data/source/bzs/test/tdclrb/prepare.rb +15 -12
- data/source/bzs/test/tdclrb/transactd_blob_spec.rb +29 -32
- data/source/bzs/test/tdclrb/transactd_datetime_spec.rb +0 -29
- data/source/bzs/test/tdclrb/transactd_kanjischema_spec.rb +18 -19
- data/source/bzs/test/tdclrb/transactd_pool_spec.rb +107 -0
- data/source/bzs/test/tdclrb/transactd_spec.rb +734 -142
- data/source/bzs/test/transactdBench/query_bench.cpp +156 -0
- data/source/bzs/test/transactdBench/scaling_bench.cpp +265 -0
- data/source/bzs/test/transactdBench/transactdBench.cpp +107 -83
- data/source/bzs/test/transactdBench/transactdBench2.cpp +122 -83
- data/source/bzs/test/transactdBench/workerBase.cpp +5 -0
- data/source/bzs/test/transactdBench/workerBase.h +88 -0
- data/source/bzs/test/transactdBench/workerMySQLImple.h +333 -0
- data/source/bzs/test/transactdBench/workerTransactdImple.h +201 -0
- data/source/bzs/test/trdclengn/test_blob.cpp +121 -73
- data/source/bzs/test/trdclengn/test_trdclengn.cpp +1244 -426
- data/source/global/ormsrcgen/confParam.h +80 -0
- data/source/global/ormsrcgen/fieldName.cpp +77 -0
- data/source/global/ormsrcgen/fieldName.h +43 -0
- data/source/global/ormsrcgen/main.cpp +196 -0
- data/source/global/ormsrcgen/srcgen.cpp +763 -0
- data/source/global/ormsrcgen/srcgen.h +72 -0
- data/source/global/ormsrcgen/template/fieldNameList_sample.txt +2 -0
- data/source/global/ormsrcgen/template/ormDataClass_template.cpp +48 -0
- data/source/global/ormsrcgen/template/ormDataClass_template.h +34 -0
- data/source/global/ormsrcgen/template/ormMapClass_template.cpp +51 -0
- data/source/global/ormsrcgen/template/ormMapClass_template.h +62 -0
- data/source/global/ormsrcgen/template/template.cnf +38 -0
- data/source/global/querystmts/querystmts.cpp +237 -0
- data/source/global/tdclatl/ConnectParams.cpp +77 -0
- data/source/global/tdclatl/ConnectParams.h +70 -0
- data/source/global/tdclatl/Database.cpp +132 -128
- data/source/global/tdclatl/Database.h +60 -49
- data/source/global/tdclatl/DbDef.cpp +68 -64
- data/source/global/tdclatl/DbDef.h +36 -36
- data/source/global/tdclatl/Field.cpp +12 -17
- data/source/global/tdclatl/Field.h +15 -12
- data/source/global/tdclatl/FieldDef.cpp +75 -36
- data/source/global/tdclatl/FieldDef.h +38 -19
- data/source/global/tdclatl/FieldDefs.cpp +74 -0
- data/source/global/tdclatl/FieldDefs.h +56 -0
- data/source/global/tdclatl/FieldNames.cpp +99 -0
- data/source/global/tdclatl/FieldNames.h +66 -0
- data/source/global/tdclatl/Flags.cpp +75 -37
- data/source/global/tdclatl/Flags.h +13 -12
- data/source/global/tdclatl/GroupQuery.cpp +119 -0
- data/source/global/tdclatl/GroupQuery.h +65 -0
- data/source/global/tdclatl/KeyDef.cpp +15 -14
- data/source/global/tdclatl/KeyDef.h +20 -17
- data/source/global/tdclatl/KeySegment.cpp +13 -12
- data/source/global/tdclatl/PooledDbManager.cpp +223 -0
- data/source/global/tdclatl/PooledDbManager.h +76 -0
- data/source/global/tdclatl/QueryBase.cpp +206 -127
- data/source/global/tdclatl/QueryBase.h +55 -59
- data/source/global/tdclatl/Record.cpp +214 -0
- data/source/global/tdclatl/Record.h +96 -0
- data/source/global/tdclatl/Recordset.cpp +278 -0
- data/source/global/tdclatl/Recordset.h +83 -0
- data/source/global/tdclatl/RecordsetQuery.cpp +118 -0
- data/source/global/tdclatl/RecordsetQuery.h +126 -0
- data/source/global/tdclatl/Table.cpp +57 -60
- data/source/global/tdclatl/Table.h +32 -29
- data/source/global/tdclatl/TableDef.cpp +63 -62
- data/source/global/tdclatl/TableDef.h +20 -22
- data/source/global/tdclatl/TdVersion.cpp +3 -3
- data/source/global/tdclatl/TdVersion.h +15 -11
- data/source/global/tdclatl/_IDatabaseEvents_CP.h +99 -92
- data/source/global/tdclatl/activeTable.cpp +355 -0
- data/source/global/tdclatl/activeTable.h +79 -0
- data/source/global/tdclatl/dllmain.cpp +4 -3
- data/source/global/tdclatl/dllmain.h +7 -6
- data/source/global/tdclatl/keySegment.h +22 -18
- data/source/global/tdclatl/resource.h +0 -0
- data/source/global/tdclatl/stdafx.h +6 -4
- data/source/global/tdclatl/targetver.h +0 -1
- data/source/global/tdclatl/tdclatl.cpp +10 -5
- data/source/global/tdclatl/tdclatl.idl +530 -14
- data/source/linux/charsetConvert.h +78 -79
- data/source/linux/linuxTypes.h +9 -12
- data/source/linux/tchar.h +168 -166
- data/transactd.gemspec +24 -16
- metadata +98 -12
- data/bin/common/tdclc_32_1_2.dll +0 -0
- data/bin/common/tdclc_64_1_2.dll +0 -0
- data/build/tdclc/tdclc_32.cbproj +0 -173
- data/build/tdclcpp/tdclcpp_bcb_32.cbproj +0 -232
- data/build/tdclrb/GEM_VERSION +0 -3
- data/source/bzs/db/protocol/tdap/client/filter.cpp +0 -43
- data/source/bzs/example/useORM.cpp +0 -585
|
@@ -12,8 +12,8 @@
|
|
|
12
12
|
GNU General Public License for more details.
|
|
13
13
|
|
|
14
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
|
|
15
|
+
along with this program; if not, write to the Free Software
|
|
16
|
+
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
|
17
17
|
02111-1307, USA.
|
|
18
18
|
=================================================================*/
|
|
19
19
|
#include "stdafx.h"
|
|
@@ -23,216 +23,255 @@
|
|
|
23
23
|
STDMETHODIMP CFieldDef::get_Name(BSTR* Value)
|
|
24
24
|
{
|
|
25
25
|
CComBSTR ret;
|
|
26
|
-
ret =
|
|
26
|
+
ret = const_fielddef()->name();
|
|
27
27
|
*Value = ret.Copy();
|
|
28
28
|
return S_OK;
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
STDMETHODIMP CFieldDef::put_Name(BSTR Value)
|
|
32
32
|
{
|
|
33
|
+
if (!isWritabale())
|
|
34
|
+
return write_error();
|
|
35
|
+
|
|
33
36
|
fielddef()->setName(Value);
|
|
34
37
|
return S_OK;
|
|
35
38
|
}
|
|
36
39
|
|
|
37
40
|
STDMETHODIMP CFieldDef::get_Type(eFieldType* Value)
|
|
38
41
|
{
|
|
39
|
-
*Value = (eFieldType)
|
|
42
|
+
*Value = (eFieldType)const_fielddef()->type;
|
|
40
43
|
return S_OK;
|
|
41
44
|
}
|
|
42
45
|
|
|
43
46
|
STDMETHODIMP CFieldDef::put_Type(eFieldType Value)
|
|
44
47
|
{
|
|
48
|
+
if (!isWritabale())
|
|
49
|
+
return write_error();
|
|
50
|
+
|
|
45
51
|
fielddef()->type = (uchar_td)Value;
|
|
46
52
|
return S_OK;
|
|
47
53
|
}
|
|
48
54
|
|
|
49
55
|
STDMETHODIMP CFieldDef::get_Len(short* Value)
|
|
50
56
|
{
|
|
51
|
-
*Value =
|
|
57
|
+
*Value = const_fielddef()->len;
|
|
52
58
|
return S_OK;
|
|
53
59
|
}
|
|
54
60
|
|
|
55
61
|
STDMETHODIMP CFieldDef::put_Len(short Value)
|
|
56
62
|
{
|
|
63
|
+
if (!isWritabale())
|
|
64
|
+
return write_error();
|
|
57
65
|
fielddef()->len = Value;
|
|
58
66
|
return S_OK;
|
|
59
67
|
}
|
|
60
68
|
|
|
61
69
|
STDMETHODIMP CFieldDef::get_Decimals(unsigned char* Value)
|
|
62
70
|
{
|
|
63
|
-
*Value =
|
|
71
|
+
*Value = const_fielddef()->decimals;
|
|
64
72
|
return S_OK;
|
|
65
73
|
}
|
|
66
74
|
|
|
67
75
|
STDMETHODIMP CFieldDef::put_Decimals(unsigned char Value)
|
|
68
76
|
{
|
|
77
|
+
if (!isWritabale())
|
|
78
|
+
return write_error();
|
|
69
79
|
fielddef()->decimals = Value;
|
|
70
80
|
return S_OK;
|
|
71
81
|
}
|
|
72
82
|
|
|
73
83
|
STDMETHODIMP CFieldDef::get_Max(double* Value)
|
|
74
84
|
{
|
|
75
|
-
*Value =
|
|
85
|
+
*Value = const_fielddef()->max;
|
|
76
86
|
return S_OK;
|
|
77
87
|
}
|
|
78
88
|
|
|
79
89
|
STDMETHODIMP CFieldDef::put_Max(double Value)
|
|
80
90
|
{
|
|
91
|
+
if (!isWritabale())
|
|
92
|
+
return write_error();
|
|
81
93
|
fielddef()->max = Value;
|
|
82
94
|
return S_OK;
|
|
83
95
|
}
|
|
84
96
|
|
|
85
97
|
STDMETHODIMP CFieldDef::get_Min(double* Value)
|
|
86
98
|
{
|
|
87
|
-
*Value =
|
|
99
|
+
*Value = const_fielddef()->min;
|
|
88
100
|
return S_OK;
|
|
89
101
|
}
|
|
90
102
|
|
|
91
103
|
STDMETHODIMP CFieldDef::put_Min(double Value)
|
|
92
104
|
{
|
|
105
|
+
if (!isWritabale())
|
|
106
|
+
return write_error();
|
|
93
107
|
fielddef()->min = Value;
|
|
94
108
|
return S_OK;
|
|
95
109
|
}
|
|
96
110
|
|
|
97
111
|
STDMETHODIMP CFieldDef::get_DefValue(double* Value)
|
|
98
112
|
{
|
|
99
|
-
*Value =
|
|
113
|
+
*Value = const_fielddef()->defValue;
|
|
100
114
|
return S_OK;
|
|
101
115
|
}
|
|
102
116
|
|
|
103
117
|
STDMETHODIMP CFieldDef::put_DefValue(double Value)
|
|
104
118
|
{
|
|
119
|
+
if (!isWritabale())
|
|
120
|
+
return write_error();
|
|
105
121
|
fielddef()->defValue = Value;
|
|
106
122
|
return S_OK;
|
|
107
123
|
}
|
|
108
124
|
|
|
109
125
|
STDMETHODIMP CFieldDef::get_LookTable(unsigned char* Value)
|
|
110
126
|
{
|
|
111
|
-
*Value =
|
|
127
|
+
*Value = const_fielddef()->lookTable;
|
|
112
128
|
return S_OK;
|
|
113
129
|
}
|
|
114
130
|
|
|
115
131
|
STDMETHODIMP CFieldDef::put_LookTable(unsigned char Value)
|
|
116
132
|
{
|
|
133
|
+
if (!isWritabale())
|
|
134
|
+
return write_error();
|
|
117
135
|
fielddef()->lookTable = Value;
|
|
118
136
|
return S_OK;
|
|
119
137
|
}
|
|
120
138
|
|
|
121
139
|
STDMETHODIMP CFieldDef::get_LookField(unsigned char* Value)
|
|
122
140
|
{
|
|
123
|
-
*Value =
|
|
141
|
+
*Value = const_fielddef()->lookField;
|
|
124
142
|
return S_OK;
|
|
125
143
|
}
|
|
126
144
|
|
|
127
145
|
STDMETHODIMP CFieldDef::put_LookField(unsigned char Value)
|
|
128
146
|
{
|
|
147
|
+
if (!isWritabale())
|
|
148
|
+
return write_error();
|
|
129
149
|
fielddef()->lookField = Value;
|
|
130
150
|
return S_OK;
|
|
131
151
|
}
|
|
132
152
|
|
|
133
153
|
STDMETHODIMP CFieldDef::get_LookViewField(short Index, unsigned char* Value)
|
|
134
154
|
{
|
|
135
|
-
*Value =
|
|
155
|
+
*Value = const_fielddef()->lookFields[Index];
|
|
136
156
|
return S_OK;
|
|
137
157
|
}
|
|
138
158
|
|
|
139
159
|
STDMETHODIMP CFieldDef::put_LookViewField(short Index, unsigned char Value)
|
|
140
160
|
{
|
|
161
|
+
if (!isWritabale())
|
|
162
|
+
return write_error();
|
|
141
163
|
fielddef()->lookFields[Index] = Value;
|
|
142
164
|
return S_OK;
|
|
143
165
|
}
|
|
144
166
|
|
|
145
167
|
STDMETHODIMP CFieldDef::get_EnableFlags(IFlags** Value)
|
|
146
168
|
{
|
|
147
|
-
CComObject<CFlags
|
|
169
|
+
CComObject<CFlags>* piObj;
|
|
148
170
|
CComObject<CFlags>::CreateInstance(&piObj);
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
171
|
+
if (piObj)
|
|
172
|
+
{
|
|
173
|
+
piObj->m_flags =
|
|
174
|
+
(bzs::db::protocol::tdap::FLAGS*)&(const_fielddef()->enableFlags);
|
|
175
|
+
IFlags* fl;
|
|
176
|
+
piObj->QueryInterface(IID_IFlags, (void**)&fl);
|
|
177
|
+
_ASSERTE(fl);
|
|
178
|
+
*Value = piObj;
|
|
179
|
+
}
|
|
180
|
+
else
|
|
181
|
+
*Value = 0;
|
|
158
182
|
return S_OK;
|
|
159
183
|
}
|
|
160
184
|
|
|
161
185
|
STDMETHODIMP CFieldDef::put_EnableFlags(IFlags* Value)
|
|
162
186
|
{
|
|
187
|
+
if (!isWritabale())
|
|
188
|
+
return write_error();
|
|
163
189
|
Value->All(&fielddef()->enableFlags.all);
|
|
164
190
|
return S_OK;
|
|
165
191
|
}
|
|
166
192
|
|
|
167
193
|
STDMETHODIMP CFieldDef::get_Keylen(unsigned short* Value)
|
|
168
194
|
{
|
|
169
|
-
|
|
195
|
+
*Value = const_fielddef()->keylen;
|
|
170
196
|
return S_OK;
|
|
171
197
|
}
|
|
172
198
|
|
|
173
199
|
STDMETHODIMP CFieldDef::put_Keylen(unsigned short Value)
|
|
174
200
|
{
|
|
175
|
-
|
|
201
|
+
if (!isWritabale())
|
|
202
|
+
return write_error();
|
|
203
|
+
fielddef()->keylen = Value;
|
|
176
204
|
return S_OK;
|
|
177
205
|
}
|
|
178
206
|
|
|
179
207
|
STDMETHODIMP CFieldDef::get_NullValue(unsigned short* Value)
|
|
180
208
|
{
|
|
181
|
-
|
|
209
|
+
*Value = const_fielddef()->nullValue;
|
|
182
210
|
return S_OK;
|
|
183
211
|
}
|
|
184
212
|
|
|
185
213
|
STDMETHODIMP CFieldDef::put_NullValue(unsigned short Value)
|
|
186
214
|
{
|
|
187
|
-
|
|
215
|
+
if (!isWritabale())
|
|
216
|
+
return write_error();
|
|
217
|
+
fielddef()->nullValue = (uchar_td)Value;
|
|
188
218
|
return S_OK;
|
|
189
219
|
}
|
|
190
220
|
|
|
191
221
|
STDMETHODIMP CFieldDef::get_Align(unsigned int* Value)
|
|
192
222
|
{
|
|
193
|
-
|
|
223
|
+
*Value = const_fielddef()->align();
|
|
194
224
|
return S_OK;
|
|
195
225
|
}
|
|
196
226
|
|
|
197
|
-
STDMETHODIMP CFieldDef::get_TypeName(
|
|
227
|
+
STDMETHODIMP CFieldDef::get_TypeName(BSTR* Value)
|
|
198
228
|
{
|
|
199
|
-
|
|
229
|
+
*Value = ::SysAllocString(const_fielddef()->typeName());
|
|
200
230
|
return S_OK;
|
|
201
231
|
}
|
|
202
232
|
|
|
203
|
-
STDMETHODIMP CFieldDef::get_IsStringType(
|
|
233
|
+
STDMETHODIMP CFieldDef::get_IsStringType(VARIANT_BOOL* Value)
|
|
204
234
|
{
|
|
205
|
-
|
|
235
|
+
*Value = const_fielddef()->isStringType();
|
|
206
236
|
return S_OK;
|
|
207
237
|
}
|
|
208
238
|
|
|
209
239
|
STDMETHODIMP CFieldDef::get_CharsetIndex(eCharset* Value)
|
|
210
240
|
{
|
|
211
|
-
|
|
241
|
+
*Value = (eCharset)const_fielddef()->charsetIndex();
|
|
212
242
|
return S_OK;
|
|
213
243
|
}
|
|
214
244
|
|
|
215
245
|
STDMETHODIMP CFieldDef::put_CharsetIndex(eCharset Value)
|
|
216
246
|
{
|
|
217
|
-
|
|
247
|
+
if (!isWritabale())
|
|
248
|
+
return write_error();
|
|
249
|
+
fielddef()->setCharsetIndex((unsigned char)Value);
|
|
218
250
|
return S_OK;
|
|
219
251
|
}
|
|
220
252
|
|
|
221
253
|
STDMETHODIMP CFieldDef::get_CodePage(unsigned int* Value)
|
|
222
254
|
{
|
|
223
|
-
|
|
255
|
+
*Value = const_fielddef()->codePage();
|
|
224
256
|
return S_OK;
|
|
225
257
|
}
|
|
226
258
|
|
|
227
259
|
STDMETHODIMP CFieldDef::get_CharNum(unsigned int* Value)
|
|
228
260
|
{
|
|
229
|
-
|
|
261
|
+
*Value = const_fielddef()->charNum();
|
|
230
262
|
return S_OK;
|
|
231
263
|
}
|
|
232
264
|
|
|
233
265
|
STDMETHODIMP CFieldDef::SetLenByCharnum(unsigned short Value)
|
|
234
266
|
{
|
|
235
|
-
|
|
267
|
+
if (!isWritabale())
|
|
268
|
+
return write_error();
|
|
269
|
+
fielddef()->setLenByCharnum(Value);
|
|
236
270
|
return S_OK;
|
|
237
271
|
}
|
|
238
272
|
|
|
273
|
+
STDMETHODIMP CFieldDef::get_Index(short* Value)
|
|
274
|
+
{
|
|
275
|
+
*Value = m_index;
|
|
276
|
+
return S_OK;
|
|
277
|
+
}
|
|
@@ -13,8 +13,8 @@
|
|
|
13
13
|
GNU General Public License for more details.
|
|
14
14
|
|
|
15
15
|
You should have received a copy of the GNU General Public License
|
|
16
|
-
along with this program; if not, write to the Free Software
|
|
17
|
-
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
|
16
|
+
along with this program; if not, write to the Free Software
|
|
17
|
+
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
|
18
18
|
02111-1307, USA.
|
|
19
19
|
=================================================================*/
|
|
20
20
|
#include "resource.h"
|
|
@@ -24,29 +24,49 @@
|
|
|
24
24
|
#include <bzs/db/protocol/tdap/client/dbDef.h>
|
|
25
25
|
using namespace ATL;
|
|
26
26
|
|
|
27
|
-
class ATL_NO_VTABLE CFieldDef
|
|
28
|
-
public
|
|
29
|
-
|
|
27
|
+
class ATL_NO_VTABLE CFieldDef
|
|
28
|
+
: public CComObjectRootEx<CComSingleThreadModel>,
|
|
29
|
+
public CComCoClass<CFieldDef, &CLSID_FieldDef>,
|
|
30
|
+
public IDispatchImpl<IFieldDef, &IID_IFieldDef, &LIBID_transactd,
|
|
31
|
+
/* wMajor = */ 1, /* wMinor = */ 0>
|
|
30
32
|
{
|
|
31
|
-
|
|
33
|
+
bzs::db::protocol::tdap::fielddef* fielddef()
|
|
34
|
+
{
|
|
35
|
+
if (m_fielddef)
|
|
36
|
+
return NULL;
|
|
37
|
+
return &(*m_tabledefPtr)->fieldDefs[m_index];
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
const bzs::db::protocol::tdap::fielddef* const_fielddef()
|
|
41
|
+
{
|
|
42
|
+
if (m_fielddef)
|
|
43
|
+
return m_fielddef;
|
|
44
|
+
return &(*m_tabledefPtr)->fieldDefs[m_index];
|
|
45
|
+
}
|
|
46
|
+
bool isWritabale() { return (m_tabledefPtr != NULL); }
|
|
47
|
+
HRESULT write_error()
|
|
48
|
+
{
|
|
49
|
+
return Error("This object is no writable.", IID_IFieldDef);
|
|
50
|
+
}
|
|
51
|
+
|
|
32
52
|
public:
|
|
33
|
-
CFieldDef():m_tabledefPtr(NULL) {}
|
|
34
|
-
|
|
35
|
-
|
|
53
|
+
CFieldDef() : m_tabledefPtr(NULL), m_fielddef(NULL) {}
|
|
54
|
+
const bzs::db::protocol::tdap::fielddef* m_fielddef;
|
|
55
|
+
bzs::db::protocol::tdap::tabledef** m_tabledefPtr;
|
|
56
|
+
short m_index;
|
|
36
57
|
|
|
37
|
-
BEGIN_COM_MAP(CFieldDef)
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
58
|
+
BEGIN_COM_MAP(CFieldDef)
|
|
59
|
+
COM_INTERFACE_ENTRY(IFieldDef)
|
|
60
|
+
COM_INTERFACE_ENTRY(IDispatch)
|
|
61
|
+
END_COM_MAP()
|
|
41
62
|
|
|
42
63
|
DECLARE_PROTECT_FINAL_CONSTRUCT()
|
|
43
64
|
|
|
44
|
-
HRESULT FinalConstruct() {return S_OK;}
|
|
65
|
+
HRESULT FinalConstruct() { return S_OK; }
|
|
45
66
|
|
|
46
67
|
void FinalRelease() {}
|
|
47
68
|
|
|
48
69
|
public:
|
|
49
|
-
|
|
50
70
|
STDMETHOD(get_Name)(BSTR* Value);
|
|
51
71
|
STDMETHOD(get_Type)(eFieldType* Value);
|
|
52
72
|
STDMETHOD(get_Len)(short* Value);
|
|
@@ -75,13 +95,12 @@ public:
|
|
|
75
95
|
STDMETHOD(get_NullValue)(unsigned short* Value);
|
|
76
96
|
STDMETHOD(put_NullValue)(unsigned short Value);
|
|
77
97
|
STDMETHOD(get_Align)(unsigned int* Value);
|
|
78
|
-
|
|
79
|
-
|
|
98
|
+
STDMETHOD(get_TypeName)(BSTR* Value);
|
|
99
|
+
STDMETHOD(get_IsStringType)(VARIANT_BOOL* Value);
|
|
80
100
|
STDMETHOD(get_CharsetIndex)(eCharset* Value);
|
|
81
101
|
STDMETHOD(put_CharsetIndex)(eCharset Value);
|
|
82
102
|
STDMETHOD(get_CodePage)(unsigned int* Value);
|
|
83
103
|
STDMETHOD(get_CharNum)(unsigned int* Value);
|
|
84
104
|
STDMETHOD(SetLenByCharnum)(unsigned short Value);
|
|
85
|
-
|
|
86
|
-
|
|
105
|
+
STDMETHOD(get_Index)(short* Value);
|
|
87
106
|
};
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/*=================================================================
|
|
2
|
+
Copyright (C) 2014 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
|
+
#include "stdafx.h"
|
|
20
|
+
#include "FieldDefs.h"
|
|
21
|
+
#include "FieldDef.h"
|
|
22
|
+
|
|
23
|
+
void CFieldDefs::FinalRelease()
|
|
24
|
+
{
|
|
25
|
+
if (m_fieldDefObj)
|
|
26
|
+
m_fieldDefObj->AddRef();
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
short CFieldDefs::GetFieldNum(VARIANT* Index)
|
|
30
|
+
{
|
|
31
|
+
short index = -1;
|
|
32
|
+
if (Index->vt == VT_BSTR)
|
|
33
|
+
index = m_fds->indexByName(Index->bstrVal);
|
|
34
|
+
else if ((Index->vt == VT_I2) || (Index->vt == VT_I4))
|
|
35
|
+
index = Index->iVal;
|
|
36
|
+
return index;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
STDMETHODIMP CFieldDefs::IndexByName(BSTR Name, short* retVal)
|
|
40
|
+
{
|
|
41
|
+
*retVal = m_fds->indexByName(Name);
|
|
42
|
+
return S_OK;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
STDMETHODIMP CFieldDefs::get_FieldDef(VARIANT Name, IFieldDef** retVal)
|
|
46
|
+
{
|
|
47
|
+
short index = GetFieldNum(&Name);
|
|
48
|
+
if (index >= 0)
|
|
49
|
+
{
|
|
50
|
+
if (m_fieldDefObj == NULL)
|
|
51
|
+
{
|
|
52
|
+
CComObject<CFieldDef>::CreateInstance(&m_fieldDefObj);
|
|
53
|
+
m_fieldDefObj->AddRef();
|
|
54
|
+
}
|
|
55
|
+
if (m_fieldDefObj)
|
|
56
|
+
{
|
|
57
|
+
m_fieldDefObj->m_fielddef = &((*m_fds)[index]);
|
|
58
|
+
|
|
59
|
+
IFieldDef* fd;
|
|
60
|
+
m_fieldDefObj->QueryInterface(IID_IFieldDef, (void**)&fd);
|
|
61
|
+
_ASSERTE(fd);
|
|
62
|
+
*retVal = fd;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
else
|
|
66
|
+
return Error("Invalid index", IID_IFieldDefs);
|
|
67
|
+
return S_OK;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
STDMETHODIMP CFieldDefs::get_Size(short* retVal)
|
|
71
|
+
{
|
|
72
|
+
*retVal = (short)m_fds->size();
|
|
73
|
+
return S_OK;
|
|
74
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
/*=================================================================
|
|
3
|
+
Copyright (C) 2014 BizStation Corp All rights reserved.
|
|
4
|
+
|
|
5
|
+
This program is free software; you can redistribute it and/or
|
|
6
|
+
modify it under the terms of the GNU General Public License
|
|
7
|
+
as published by the Free Software Foundation; either version 2
|
|
8
|
+
of the License, or (at your option) any later version.
|
|
9
|
+
|
|
10
|
+
This program is distributed in the hope that it will be useful,
|
|
11
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
GNU General Public License for more details.
|
|
14
|
+
|
|
15
|
+
You should have received a copy of the GNU General Public License
|
|
16
|
+
along with this program; if not, write to the Free Software
|
|
17
|
+
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
|
18
|
+
02111-1307, USA.
|
|
19
|
+
=================================================================*/
|
|
20
|
+
#include "resource.h"
|
|
21
|
+
|
|
22
|
+
#include "tdclatl_i.h"
|
|
23
|
+
#include <bzs/db/protocol/tdap/client/field.h>
|
|
24
|
+
|
|
25
|
+
using namespace ATL;
|
|
26
|
+
class CFieldDef;
|
|
27
|
+
|
|
28
|
+
class ATL_NO_VTABLE CFieldDefs
|
|
29
|
+
: public CComObjectRootEx<CComSingleThreadModel>,
|
|
30
|
+
public CComCoClass<CFieldDefs, &CLSID_FieldDefs>,
|
|
31
|
+
public IDispatchImpl<IFieldDefs, &IID_IFieldDefs, &LIBID_transactd,
|
|
32
|
+
/* wMajor = */ 1, /* wMinor = */ 0>
|
|
33
|
+
{
|
|
34
|
+
CComObject<CFieldDef>* m_fieldDefObj;
|
|
35
|
+
short GetFieldNum(VARIANT* Index);
|
|
36
|
+
|
|
37
|
+
public:
|
|
38
|
+
CFieldDefs() : m_fieldDefObj(NULL) {}
|
|
39
|
+
const bzs::db::protocol::tdap::client::fielddefs* m_fds;
|
|
40
|
+
|
|
41
|
+
BEGIN_COM_MAP(CFieldDefs)
|
|
42
|
+
COM_INTERFACE_ENTRY(IFieldDefs)
|
|
43
|
+
COM_INTERFACE_ENTRY(IDispatch)
|
|
44
|
+
END_COM_MAP()
|
|
45
|
+
|
|
46
|
+
DECLARE_PROTECT_FINAL_CONSTRUCT()
|
|
47
|
+
|
|
48
|
+
HRESULT FinalConstruct() { return S_OK; }
|
|
49
|
+
|
|
50
|
+
void FinalRelease();
|
|
51
|
+
|
|
52
|
+
public:
|
|
53
|
+
STDMETHOD(IndexByName)(BSTR Name, short* retVal);
|
|
54
|
+
STDMETHOD(get_FieldDef)(VARIANT Name, IFieldDef** retVal);
|
|
55
|
+
STDMETHOD(get_Size)(short* retVal);
|
|
56
|
+
};
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/*=================================================================
|
|
2
|
+
Copyright (C) 2014 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
|
+
#include "stdafx.h"
|
|
20
|
+
#include "FieldNames.h"
|
|
21
|
+
|
|
22
|
+
using namespace bzs::db::protocol::tdap::client;
|
|
23
|
+
|
|
24
|
+
void CFieldNames::setResult(IFieldNames** retVal)
|
|
25
|
+
{
|
|
26
|
+
this->QueryInterface(IID_IFieldNames, (void**)retVal);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
STDMETHODIMP CFieldNames::KeyField(BSTR Name0, BSTR Name1, BSTR Name2,
|
|
30
|
+
BSTR Name3, BSTR Name4, BSTR Name5,
|
|
31
|
+
BSTR Name6, BSTR Name7, BSTR Name8,
|
|
32
|
+
BSTR Name9, BSTR Name10,
|
|
33
|
+
IFieldNames** retVal)
|
|
34
|
+
{
|
|
35
|
+
if (Name0 && Name0[0])
|
|
36
|
+
{
|
|
37
|
+
if (!Name1 || !Name1[0])
|
|
38
|
+
m_fnsPtr->keyField(Name0);
|
|
39
|
+
else if (!Name2 || !Name2[0])
|
|
40
|
+
m_fnsPtr->keyField(Name0, Name1);
|
|
41
|
+
else if (!Name3 || !Name3[0])
|
|
42
|
+
m_fnsPtr->keyField(Name0, Name1, Name2);
|
|
43
|
+
else if (!Name4 || !Name4[0])
|
|
44
|
+
m_fnsPtr->keyField(Name0, Name1, Name2, Name3);
|
|
45
|
+
else if (!Name5 || !Name5[0])
|
|
46
|
+
m_fnsPtr->keyField(Name0, Name1, Name2, Name3, Name4);
|
|
47
|
+
else if (!Name6 || !Name6[0])
|
|
48
|
+
m_fnsPtr->keyField(Name0, Name1, Name2, Name3, Name4, Name5);
|
|
49
|
+
else if (!Name7 || !Name7[0])
|
|
50
|
+
m_fnsPtr->keyField(Name0, Name1, Name2, Name3, Name4, Name5, Name6);
|
|
51
|
+
else if (!Name8 || !Name8[0])
|
|
52
|
+
m_fnsPtr->keyField(Name0, Name1, Name2, Name3, Name4, Name5, Name6,
|
|
53
|
+
Name7);
|
|
54
|
+
else if (!Name9 || !Name9[0])
|
|
55
|
+
m_fnsPtr->keyField(Name0, Name1, Name2, Name3, Name4, Name5, Name6,
|
|
56
|
+
Name7, Name8);
|
|
57
|
+
else if (!Name10 || !Name10[0])
|
|
58
|
+
m_fnsPtr->keyField(Name0, Name1, Name2, Name3, Name4, Name5, Name6,
|
|
59
|
+
Name7, Name8, Name9);
|
|
60
|
+
else
|
|
61
|
+
m_fnsPtr->keyField(Name0, Name1, Name2, Name3, Name4, Name5, Name6,
|
|
62
|
+
Name7, Name8, Name9, Name10);
|
|
63
|
+
}
|
|
64
|
+
setResult(retVal);
|
|
65
|
+
return S_OK;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
STDMETHODIMP CFieldNames::get_Count(int* Value)
|
|
69
|
+
{
|
|
70
|
+
*Value = m_fnsPtr->count();
|
|
71
|
+
return S_OK;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
STDMETHODIMP CFieldNames::addValue(BSTR val)
|
|
75
|
+
{
|
|
76
|
+
m_fnsPtr->addValue(val);
|
|
77
|
+
return S_OK;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
STDMETHODIMP CFieldNames::get_Value(int index, BSTR* retVal)
|
|
81
|
+
{
|
|
82
|
+
CComBSTR ret;
|
|
83
|
+
ret = m_fnsPtr->getValue(index);
|
|
84
|
+
*retVal = ret.Copy();
|
|
85
|
+
return S_OK;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
STDMETHODIMP CFieldNames::addValues(BSTR val, BSTR delm)
|
|
89
|
+
{
|
|
90
|
+
m_fnsPtr->addValues(val, delm);
|
|
91
|
+
return S_OK;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
STDMETHODIMP CFieldNames::Reset(IFieldNames** retVal)
|
|
95
|
+
{
|
|
96
|
+
m_fnsPtr->reset();
|
|
97
|
+
setResult(retVal);
|
|
98
|
+
return S_OK;
|
|
99
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
/*=================================================================
|
|
3
|
+
Copyright (C) 2014 BizStation Corp All rights reserved.
|
|
4
|
+
|
|
5
|
+
This program is free software; you can redistribute it and/or
|
|
6
|
+
modify it under the terms of the GNU General Public License
|
|
7
|
+
as published by the Free Software Foundation; either version 2
|
|
8
|
+
of the License, or (at your option) any later version.
|
|
9
|
+
|
|
10
|
+
This program is distributed in the hope that it will be useful,
|
|
11
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
GNU General Public License for more details.
|
|
14
|
+
|
|
15
|
+
You should have received a copy of the GNU General Public License
|
|
16
|
+
along with this program; if not, write to the Free Software
|
|
17
|
+
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
|
18
|
+
02111-1307, USA.
|
|
19
|
+
=================================================================*/
|
|
20
|
+
#include "resource.h"
|
|
21
|
+
#include "tdclatl_i.h"
|
|
22
|
+
#include <bzs/db/protocol/tdap/client/groupQuery.h>
|
|
23
|
+
|
|
24
|
+
using namespace ATL;
|
|
25
|
+
|
|
26
|
+
class ATL_NO_VTABLE CFieldNames
|
|
27
|
+
: public CComObjectRootEx<CComSingleThreadModel>,
|
|
28
|
+
public CComCoClass<CFieldNames, &CLSID_FieldNames>,
|
|
29
|
+
public IDispatchImpl<IFieldNames, &IID_IFieldNames, &LIBID_transactd,
|
|
30
|
+
/* wMajor = */ 1, /* wMinor = */ 0>
|
|
31
|
+
{
|
|
32
|
+
|
|
33
|
+
bzs::db::protocol::tdap::client::fieldNames m_fns;
|
|
34
|
+
void setResult(IFieldNames** retVal);
|
|
35
|
+
|
|
36
|
+
public:
|
|
37
|
+
bzs::db::protocol::tdap::client::fieldNames* m_fnsPtr;
|
|
38
|
+
|
|
39
|
+
CFieldNames() : m_fnsPtr(NULL) { m_fnsPtr = &m_fns; }
|
|
40
|
+
|
|
41
|
+
DECLARE_REGISTRY_RESOURCEID(IDR_FIELDNAMES)
|
|
42
|
+
|
|
43
|
+
BEGIN_COM_MAP(CFieldNames)
|
|
44
|
+
COM_INTERFACE_ENTRY(IFieldNames)
|
|
45
|
+
COM_INTERFACE_ENTRY(IDispatch)
|
|
46
|
+
END_COM_MAP()
|
|
47
|
+
|
|
48
|
+
DECLARE_PROTECT_FINAL_CONSTRUCT()
|
|
49
|
+
|
|
50
|
+
HRESULT FinalConstruct() { return S_OK; }
|
|
51
|
+
|
|
52
|
+
void FinalRelease(){};
|
|
53
|
+
|
|
54
|
+
public:
|
|
55
|
+
STDMETHOD(KeyField)(BSTR Name, BSTR Name1, BSTR Name2, BSTR Name3,
|
|
56
|
+
BSTR Name4, BSTR Name5, BSTR Name6, BSTR Name7,
|
|
57
|
+
BSTR Name8, BSTR Name9, BSTR Name10,
|
|
58
|
+
IFieldNames** retVal);
|
|
59
|
+
STDMETHOD(get_Count)(int* Value);
|
|
60
|
+
STDMETHOD(addValue)(BSTR val);
|
|
61
|
+
STDMETHOD(get_Value)(int index, BSTR* retVal);
|
|
62
|
+
STDMETHOD(addValues)(BSTR val, BSTR delm);
|
|
63
|
+
STDMETHOD(Reset)(IFieldNames** retVal);
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
OBJECT_ENTRY_AUTO(__uuidof(FieldNames), CFieldNames)
|