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,190 +12,227 @@
|
|
|
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"
|
|
20
20
|
#include "QueryBase.h"
|
|
21
21
|
#include "Table.h"
|
|
22
22
|
|
|
23
|
-
|
|
24
|
-
|
|
25
23
|
STDMETHODIMP CQueryBase::Reset(void)
|
|
26
24
|
{
|
|
27
25
|
m_qb.reset();
|
|
28
|
-
|
|
26
|
+
return S_OK;
|
|
29
27
|
}
|
|
30
28
|
|
|
31
29
|
STDMETHODIMP CQueryBase::ClearSeekKeyValues(void)
|
|
32
30
|
{
|
|
33
31
|
m_qb.clearSeekKeyValues();
|
|
34
|
-
|
|
32
|
+
return S_OK;
|
|
35
33
|
}
|
|
36
34
|
|
|
37
35
|
STDMETHODIMP CQueryBase::ClearSelectFields(void)
|
|
38
36
|
{
|
|
39
37
|
m_qb.clearSelectFields();
|
|
40
|
-
|
|
38
|
+
return S_OK;
|
|
41
39
|
}
|
|
42
40
|
|
|
43
|
-
STDMETHODIMP CQueryBase::Select(BSTR Value
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
41
|
+
STDMETHODIMP CQueryBase::Select(BSTR Value, BSTR Value1, BSTR Value2,
|
|
42
|
+
BSTR Value3, BSTR Value4, BSTR Value5,
|
|
43
|
+
BSTR Value6, BSTR Value7, BSTR Value8,
|
|
44
|
+
BSTR Value9, BSTR Value10, IQueryBase** retVal)
|
|
47
45
|
{
|
|
46
|
+
|
|
48
47
|
m_qb.addField(Value);
|
|
49
|
-
if (Value1
|
|
50
|
-
|
|
51
|
-
if (Value2
|
|
52
|
-
|
|
53
|
-
if (Value3
|
|
54
|
-
|
|
55
|
-
if (Value4
|
|
56
|
-
|
|
57
|
-
if (Value5
|
|
58
|
-
|
|
59
|
-
if (Value6
|
|
60
|
-
|
|
61
|
-
if (Value7
|
|
62
|
-
|
|
63
|
-
if (Value8
|
|
64
|
-
|
|
65
|
-
if (Value9
|
|
66
|
-
|
|
67
|
-
if (Value10
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
STDMETHODIMP CQueryBase::Where(BSTR Name, BSTR Logic, VARIANT Value,
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
48
|
+
if (Value1 && Value1[0])
|
|
49
|
+
m_qb.addField(Value1);
|
|
50
|
+
if (Value2 && Value2[0])
|
|
51
|
+
m_qb.addField(Value2);
|
|
52
|
+
if (Value3 && Value3[0])
|
|
53
|
+
m_qb.addField(Value3);
|
|
54
|
+
if (Value4 && Value4[0])
|
|
55
|
+
m_qb.addField(Value4);
|
|
56
|
+
if (Value5 && Value5[0])
|
|
57
|
+
m_qb.addField(Value5);
|
|
58
|
+
if (Value6 && Value6[0])
|
|
59
|
+
m_qb.addField(Value6);
|
|
60
|
+
if (Value7 && Value7[0])
|
|
61
|
+
m_qb.addField(Value7);
|
|
62
|
+
if (Value8 && Value8[0])
|
|
63
|
+
m_qb.addField(Value8);
|
|
64
|
+
if (Value9 && Value9[0])
|
|
65
|
+
m_qb.addField(Value9);
|
|
66
|
+
if (Value10 && Value10[0])
|
|
67
|
+
m_qb.addField(Value10);
|
|
68
|
+
setResult(retVal);
|
|
69
|
+
return S_OK;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
STDMETHODIMP CQueryBase::Where(BSTR Name, BSTR Logic, VARIANT Value,
|
|
73
|
+
IQueryBase** retVal)
|
|
74
|
+
{
|
|
75
|
+
if (Value.vt != VT_BSTR)
|
|
76
|
+
VariantChangeType(&Value, &Value, 0, VT_BSTR);
|
|
77
|
+
m_qb.addLogic(Name, Logic, Value.bstrVal);
|
|
78
|
+
setResult(retVal);
|
|
79
|
+
return S_OK;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
STDMETHODIMP CQueryBase::And(BSTR Name, BSTR Logic, VARIANT Value,
|
|
83
|
+
IQueryBase** retVal)
|
|
84
|
+
{
|
|
85
|
+
if (Value.vt != VT_BSTR)
|
|
86
|
+
VariantChangeType(&Value, &Value, 0, VT_BSTR);
|
|
87
|
+
m_qb.addLogic(L"and", Name, Logic, Value.bstrVal);
|
|
88
|
+
setResult(retVal);
|
|
89
|
+
return S_OK;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
STDMETHODIMP CQueryBase::Or(BSTR Name, BSTR Logic, VARIANT Value,
|
|
93
|
+
IQueryBase** retVal)
|
|
94
|
+
{
|
|
95
|
+
if (Value.vt != VT_BSTR)
|
|
96
|
+
VariantChangeType(&Value, &Value, 0, VT_BSTR);
|
|
97
|
+
m_qb.addLogic(L"or", Name, Logic, Value.bstrVal);
|
|
98
|
+
setResult(retVal);
|
|
99
|
+
return S_OK;
|
|
95
100
|
}
|
|
96
101
|
|
|
97
102
|
STDMETHODIMP CQueryBase::AddInValue(VARIANT Value, VARIANT_BOOL Reset)
|
|
98
103
|
{
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
104
|
+
if (Value.vt != VT_BSTR)
|
|
105
|
+
VariantChangeType(&Value, &Value, 0, VT_BSTR);
|
|
106
|
+
m_qb.addSeekKeyValue(Value.bstrVal, (Reset == -1));
|
|
107
|
+
return S_OK;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
STDMETHODIMP CQueryBase::In(VARIANT Value, VARIANT Value1, VARIANT Value2,
|
|
111
|
+
VARIANT Value3, VARIANT Value4, VARIANT Value5,
|
|
112
|
+
VARIANT Value6, VARIANT Value7, VARIANT Value8,
|
|
113
|
+
VARIANT Value9, VARIANT Value10,
|
|
114
|
+
IQueryBase** retVal)
|
|
115
|
+
{
|
|
116
|
+
setResult(retVal);
|
|
117
|
+
if (Value.vt != VT_BSTR)
|
|
118
|
+
VariantChangeType(&Value, &Value, 0, VT_BSTR);
|
|
119
|
+
m_qb.addSeekKeyValue(Value.bstrVal, false);
|
|
120
|
+
|
|
121
|
+
if (Value1.vt != VT_BSTR)
|
|
122
|
+
VariantChangeType(&Value1, &Value1, 0, VT_BSTR);
|
|
123
|
+
if (Value1.bstrVal && Value1.bstrVal[0])
|
|
124
|
+
return S_OK;
|
|
125
|
+
m_qb.addSeekKeyValue(Value1.bstrVal, false);
|
|
126
|
+
|
|
127
|
+
if (Value2.vt != VT_BSTR)
|
|
128
|
+
VariantChangeType(&Value2, &Value2, 0, VT_BSTR);
|
|
129
|
+
if (Value2.bstrVal && Value2.bstrVal[0])
|
|
130
|
+
return S_OK;
|
|
131
|
+
m_qb.addSeekKeyValue(Value2.bstrVal, false);
|
|
132
|
+
|
|
133
|
+
if (Value3.vt != VT_BSTR)
|
|
134
|
+
VariantChangeType(&Value3, &Value3, 0, VT_BSTR);
|
|
135
|
+
if (Value3.bstrVal && Value3.bstrVal[0])
|
|
136
|
+
return S_OK;
|
|
137
|
+
m_qb.addSeekKeyValue(Value3.bstrVal, false);
|
|
138
|
+
|
|
139
|
+
if (Value4.vt != VT_BSTR)
|
|
140
|
+
VariantChangeType(&Value4, &Value4, 0, VT_BSTR);
|
|
141
|
+
if (Value4.bstrVal && Value4.bstrVal[0])
|
|
142
|
+
return S_OK;
|
|
143
|
+
m_qb.addSeekKeyValue(Value4.bstrVal, false);
|
|
144
|
+
|
|
145
|
+
if (Value5.vt != VT_BSTR)
|
|
146
|
+
VariantChangeType(&Value5, &Value5, 0, VT_BSTR);
|
|
147
|
+
if (Value5.bstrVal && Value5.bstrVal[0])
|
|
148
|
+
return S_OK;
|
|
149
|
+
m_qb.addSeekKeyValue(Value5.bstrVal, false);
|
|
150
|
+
|
|
151
|
+
if (Value6.vt != VT_BSTR)
|
|
152
|
+
VariantChangeType(&Value6, &Value6, 0, VT_BSTR);
|
|
153
|
+
if (Value6.bstrVal && Value6.bstrVal[0])
|
|
154
|
+
return S_OK;
|
|
155
|
+
m_qb.addSeekKeyValue(Value6.bstrVal, false);
|
|
156
|
+
|
|
157
|
+
if (Value7.vt != VT_BSTR)
|
|
158
|
+
VariantChangeType(&Value7, &Value7, 0, VT_BSTR);
|
|
159
|
+
if (Value7.bstrVal && Value7.bstrVal[0])
|
|
160
|
+
return S_OK;
|
|
161
|
+
m_qb.addSeekKeyValue(Value7.bstrVal, false);
|
|
162
|
+
|
|
163
|
+
if (Value8.vt != VT_BSTR)
|
|
164
|
+
VariantChangeType(&Value8, &Value8, 0, VT_BSTR);
|
|
165
|
+
if (Value8.bstrVal && Value8.bstrVal[0])
|
|
166
|
+
return S_OK;
|
|
167
|
+
m_qb.addSeekKeyValue(Value8.bstrVal, false);
|
|
168
|
+
|
|
169
|
+
if (Value9.vt != VT_BSTR)
|
|
170
|
+
VariantChangeType(&Value9, &Value9, 0, VT_BSTR);
|
|
171
|
+
if (Value9.bstrVal && Value9.bstrVal[0])
|
|
172
|
+
return S_OK;
|
|
173
|
+
m_qb.addSeekKeyValue(Value9.bstrVal, false);
|
|
174
|
+
|
|
175
|
+
if (Value10.vt != VT_BSTR)
|
|
176
|
+
VariantChangeType(&Value10, &Value10, 0, VT_BSTR);
|
|
177
|
+
if (Value10.bstrVal && Value10.bstrVal[0])
|
|
178
|
+
return S_OK;
|
|
179
|
+
m_qb.addSeekKeyValue(Value10.bstrVal, false);
|
|
180
|
+
return S_OK;
|
|
144
181
|
}
|
|
145
182
|
|
|
146
183
|
void CQueryBase::setResult(IQueryBase** retVal)
|
|
147
184
|
{
|
|
148
|
-
|
|
185
|
+
this->QueryInterface(IID_IQueryBase, (void**)retVal);
|
|
149
186
|
}
|
|
150
187
|
|
|
151
188
|
STDMETHODIMP CQueryBase::QueryString(BSTR Value, IQueryBase** retVal)
|
|
152
189
|
{
|
|
153
190
|
m_qb.queryString(Value);
|
|
154
|
-
|
|
155
|
-
|
|
191
|
+
setResult(retVal);
|
|
192
|
+
return S_OK;
|
|
156
193
|
}
|
|
157
194
|
|
|
158
195
|
STDMETHODIMP CQueryBase::Reject(long Value, IQueryBase** retVal)
|
|
159
196
|
{
|
|
160
197
|
m_qb.reject(Value);
|
|
161
|
-
|
|
162
|
-
|
|
198
|
+
setResult(retVal);
|
|
199
|
+
return S_OK;
|
|
163
200
|
}
|
|
164
201
|
|
|
165
202
|
STDMETHODIMP CQueryBase::Limit(long Value, IQueryBase** retVal)
|
|
166
203
|
{
|
|
167
204
|
m_qb.limit(Value);
|
|
168
|
-
|
|
169
|
-
|
|
205
|
+
setResult(retVal);
|
|
206
|
+
return S_OK;
|
|
170
207
|
}
|
|
171
208
|
|
|
172
|
-
STDMETHODIMP CQueryBase::Direction(
|
|
209
|
+
STDMETHODIMP CQueryBase::Direction(eFindType FindType, IQueryBase** retVal)
|
|
173
210
|
{
|
|
174
211
|
m_qb.direction((bzs::db::protocol::tdap::client::table::eFindType)FindType);
|
|
175
|
-
|
|
176
|
-
|
|
212
|
+
setResult(retVal);
|
|
213
|
+
return S_OK;
|
|
177
214
|
}
|
|
178
215
|
|
|
179
216
|
STDMETHODIMP CQueryBase::All(IQueryBase** retVal)
|
|
180
217
|
{
|
|
181
218
|
m_qb.all();
|
|
182
|
-
|
|
183
|
-
|
|
219
|
+
setResult(retVal);
|
|
220
|
+
return S_OK;
|
|
184
221
|
}
|
|
185
222
|
|
|
186
223
|
STDMETHODIMP CQueryBase::ToString(BSTR* retVal)
|
|
187
224
|
{
|
|
188
|
-
|
|
189
|
-
|
|
225
|
+
|
|
226
|
+
CComBSTR ret;
|
|
190
227
|
ret = m_qb.toString();
|
|
191
228
|
*retVal = ret.Copy();
|
|
192
|
-
|
|
229
|
+
return S_OK;
|
|
193
230
|
}
|
|
194
231
|
|
|
195
232
|
STDMETHODIMP CQueryBase::GetDirection(eFindType* retVal)
|
|
196
233
|
{
|
|
197
234
|
*retVal = (eFindType)m_qb.getDirection();
|
|
198
|
-
|
|
235
|
+
return S_OK;
|
|
199
236
|
}
|
|
200
237
|
|
|
201
238
|
STDMETHODIMP CQueryBase::GetReject(long* retVal)
|
|
@@ -207,25 +244,67 @@ STDMETHODIMP CQueryBase::GetReject(long* retVal)
|
|
|
207
244
|
STDMETHODIMP CQueryBase::GetLimit(long* retVal)
|
|
208
245
|
{
|
|
209
246
|
*retVal = m_qb.getLimit();
|
|
210
|
-
|
|
247
|
+
return S_OK;
|
|
211
248
|
}
|
|
212
249
|
|
|
213
250
|
STDMETHODIMP CQueryBase::IsAll(VARIANT_BOOL* retVal)
|
|
214
251
|
{
|
|
215
252
|
*retVal = m_qb.isAll();
|
|
216
|
-
|
|
253
|
+
return S_OK;
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
STDMETHODIMP CQueryBase::Optimize(eOptimize v, IQueryBase** retVal)
|
|
257
|
+
{
|
|
258
|
+
m_qb.optimize((bzs::db::protocol::tdap::client::queryBase::eOptimize)v);
|
|
259
|
+
setResult(retVal);
|
|
260
|
+
return S_OK;
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
STDMETHODIMP CQueryBase::GetOptimize(eOptimize* retVal)
|
|
264
|
+
{
|
|
265
|
+
*retVal = (eOptimize)m_qb.getOptimize();
|
|
266
|
+
return S_OK;
|
|
217
267
|
}
|
|
218
268
|
|
|
269
|
+
STDMETHODIMP CQueryBase::SelectCount(short* retVal)
|
|
270
|
+
{
|
|
271
|
+
*retVal = m_qb.selectCount();
|
|
272
|
+
return S_OK;
|
|
273
|
+
}
|
|
219
274
|
|
|
220
|
-
STDMETHODIMP CQueryBase::
|
|
275
|
+
STDMETHODIMP CQueryBase::GetSelect(short index, BSTR* retVal)
|
|
221
276
|
{
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
277
|
+
if (index >= 0 && index < m_qb.selectCount())
|
|
278
|
+
*retVal = ::SysAllocString(m_qb.getSelect(index));
|
|
279
|
+
else
|
|
280
|
+
return Error("Invalid index", IID_IQueryBase);
|
|
281
|
+
return S_OK;
|
|
225
282
|
}
|
|
226
283
|
|
|
227
|
-
STDMETHODIMP CQueryBase::
|
|
284
|
+
STDMETHODIMP CQueryBase::WhereTokenCount(short* retVal)
|
|
228
285
|
{
|
|
229
|
-
|
|
230
|
-
|
|
286
|
+
*retVal = m_qb.whereTokens();
|
|
287
|
+
return S_OK;
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
STDMETHODIMP CQueryBase::GetWhereToken(short index, BSTR* retVal)
|
|
291
|
+
{
|
|
292
|
+
if (index >= 0 && index < m_qb.whereTokens())
|
|
293
|
+
*retVal = ::SysAllocString(m_qb.getWhereToken(index));
|
|
294
|
+
else
|
|
295
|
+
return Error("Invalid index", IID_IQueryBase);
|
|
296
|
+
return S_OK;
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
STDMETHODIMP CQueryBase::BookmarkAlso(VARIANT_BOOL v, IQueryBase** retVal)
|
|
300
|
+
{
|
|
301
|
+
m_qb.bookmarkAlso(v == -1);
|
|
302
|
+
setResult(retVal);
|
|
303
|
+
return S_OK;
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
STDMETHODIMP CQueryBase::IsBookmarkAlso(VARIANT_BOOL* retVal)
|
|
307
|
+
{
|
|
308
|
+
*retVal = m_qb.isBookmarkAlso();
|
|
309
|
+
return S_OK;
|
|
231
310
|
}
|
|
@@ -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,73 +24,69 @@
|
|
|
24
24
|
|
|
25
25
|
using namespace ATL;
|
|
26
26
|
|
|
27
|
-
class ATL_NO_VTABLE CQueryBase
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
27
|
+
class ATL_NO_VTABLE CQueryBase
|
|
28
|
+
: public CComObjectRootEx<CComSingleThreadModel>,
|
|
29
|
+
public CComCoClass<CQueryBase, &CLSID_QueryBase>,
|
|
30
|
+
public IDispatchImpl<IQueryBase, &IID_IQueryBase, &LIBID_transactd,
|
|
31
|
+
/*wMajor =*/1, /*wMinor =*/0>
|
|
31
32
|
{
|
|
32
|
-
|
|
33
|
-
|
|
33
|
+
bzs::db::protocol::tdap::client::queryBase& m_qb;
|
|
34
|
+
void setResult(IQueryBase** retVal);
|
|
34
35
|
|
|
35
36
|
public:
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
37
|
+
CQueryBase() : m_qb(*bzs::db::protocol::tdap::client::queryBase::create())
|
|
38
|
+
{
|
|
39
|
+
}
|
|
39
40
|
|
|
40
|
-
|
|
41
|
+
DECLARE_REGISTRY_RESOURCEID(IDR_QUERYBASE)
|
|
41
42
|
|
|
43
|
+
BEGIN_COM_MAP(CQueryBase)
|
|
44
|
+
COM_INTERFACE_ENTRY(IQueryBase)
|
|
45
|
+
COM_INTERFACE_ENTRY(IDispatch)
|
|
46
|
+
END_COM_MAP()
|
|
42
47
|
|
|
43
|
-
|
|
44
|
-
COM_INTERFACE_ENTRY(IQueryBase)
|
|
45
|
-
COM_INTERFACE_ENTRY(IDispatch)
|
|
46
|
-
END_COM_MAP()
|
|
48
|
+
DECLARE_PROTECT_FINAL_CONSTRUCT()
|
|
47
49
|
|
|
50
|
+
HRESULT FinalConstruct() { return S_OK; }
|
|
48
51
|
|
|
49
|
-
|
|
50
|
-
DECLARE_PROTECT_FINAL_CONSTRUCT()
|
|
51
|
-
|
|
52
|
-
HRESULT FinalConstruct()
|
|
53
|
-
{
|
|
54
|
-
return S_OK;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
void FinalRelease()
|
|
58
|
-
{
|
|
59
|
-
}
|
|
52
|
+
void FinalRelease() { m_qb.release(); }
|
|
60
53
|
|
|
61
54
|
public:
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
55
|
+
bzs::db::protocol::tdap::client::queryBase& query() { return m_qb; };
|
|
56
|
+
STDMETHOD(Reset)(void);
|
|
57
|
+
STDMETHOD(ClearSeekKeyValues)(void);
|
|
58
|
+
STDMETHOD(ClearSelectFields)(void);
|
|
59
|
+
STDMETHOD(Select)(BSTR Value, BSTR Value1, BSTR Value2, BSTR Value3,
|
|
60
|
+
BSTR Value4, BSTR Value5, BSTR Value6, BSTR Value7,
|
|
61
|
+
BSTR Value8, BSTR Value9, BSTR Value10,
|
|
62
|
+
IQueryBase** retVal);
|
|
63
|
+
|
|
64
|
+
STDMETHOD(Where)(BSTR Name, BSTR Logic, VARIANT Value, IQueryBase** retVal);
|
|
65
|
+
STDMETHOD(And)(BSTR Name, BSTR Logic, VARIANT Value, IQueryBase** retVal);
|
|
66
|
+
STDMETHOD(Or)(BSTR Name, BSTR Logic, VARIANT Value, IQueryBase** retVal);
|
|
67
|
+
STDMETHOD(AddInValue)(VARIANT Value, VARIANT_BOOL Reset);
|
|
68
|
+
STDMETHOD(In)(VARIANT Value, VARIANT Value1, VARIANT Value2, VARIANT Value3,
|
|
69
|
+
VARIANT Value4, VARIANT Value5, VARIANT Value6,
|
|
70
|
+
VARIANT Value7, VARIANT Value8, VARIANT Value9,
|
|
71
|
+
VARIANT Value10, IQueryBase** retVal);
|
|
72
|
+
STDMETHOD(QueryString)(BSTR Value, IQueryBase** retVal);
|
|
73
|
+
STDMETHOD(Reject)(long Value, IQueryBase** retVal);
|
|
74
|
+
STDMETHOD(Limit)(long Value, IQueryBase** retVal);
|
|
75
|
+
STDMETHOD(Direction)(eFindType FindType, IQueryBase** retVal);
|
|
76
|
+
STDMETHOD(All)(IQueryBase** retVal);
|
|
77
|
+
STDMETHOD(ToString)(BSTR* retVal);
|
|
78
|
+
STDMETHOD(GetDirection)(eFindType* retVal);
|
|
79
|
+
STDMETHOD(GetReject)(long* retVal);
|
|
80
|
+
STDMETHOD(GetLimit)(long* retVal);
|
|
81
|
+
STDMETHOD(IsAll)(VARIANT_BOOL* retVal);
|
|
82
|
+
STDMETHOD(Optimize)(eOptimize Value, IQueryBase** retVal);
|
|
83
|
+
STDMETHOD(GetOptimize)(eOptimize* retVal);
|
|
84
|
+
STDMETHOD(SelectCount)(short* retVal);
|
|
85
|
+
STDMETHOD(GetSelect)(short index, BSTR* retVal);
|
|
86
|
+
STDMETHOD(WhereTokenCount)(short* retVal);
|
|
87
|
+
STDMETHOD(GetWhereToken)(short index, BSTR* retVal);
|
|
88
|
+
STDMETHOD(BookmarkAlso)(VARIANT_BOOL Value, IQueryBase** retVal);
|
|
89
|
+
STDMETHOD(IsBookmarkAlso)(VARIANT_BOOL* retVal);
|
|
94
90
|
};
|
|
95
91
|
|
|
96
92
|
OBJECT_ENTRY_AUTO(__uuidof(QueryBase), CQueryBase)
|