transactd 1.0.1
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 +7 -0
- data/BUILD_UNIX-JA +174 -0
- data/BUILD_WIN-JA +256 -0
- data/CMakeLists.txt +96 -0
- data/COPYING +339 -0
- data/README +406 -0
- data/README-JA +424 -0
- data/bin/common/tdclc_32_1_0.dll +0 -0
- data/bin/common/tdclc_64_1_0.dll +0 -0
- data/build/common/check_for_link_iconv.cmake +73 -0
- data/build/common/copyifgreater.cmd +30 -0
- data/build/common/copyifgreater.js +290 -0
- data/build/common/get_boost_libs.cmake +106 -0
- data/build/common/get_ruby_path.cmake +115 -0
- data/build/common/options.cmake +127 -0
- data/build/common/smart_install.cmake +263 -0
- data/build/common/system.cmake +122 -0
- data/build/common/transactd.rc.in +52 -0
- data/build/common/transactd_cl_common.cmake +101 -0
- data/build/common/transactd_cl_output.cmake +93 -0
- data/build/common/transactd_common.cmake +237 -0
- data/build/common/transactd_required.cmake +28 -0
- data/build/swig/ruby/generate.cmake.in +35 -0
- data/build/swig/ruby/generate.cmd.in +19 -0
- data/build/swig/ruby/ruby.swg +101 -0
- data/build/swig/tdcl.i +188 -0
- data/build/tdclc/BUILDNUMBER.txt +1 -0
- data/build/tdclc/CMakeLists.txt +170 -0
- data/build/tdclc/tdclc_32.cbproj +181 -0
- data/build/tdclc/tdclc_64.cbproj +205 -0
- data/build/tdclcpp/BUILDNUMBER.txt +1 -0
- data/build/tdclcpp/CMakeLists.txt +142 -0
- data/build/tdclcpp/tdclcpp_bcb_32.cbproj +239 -0
- data/build/tdclcpp/tdclcpp_bcb_64.cbproj +304 -0
- data/build/tdclrb/BUILDNUMBER.txt +1 -0
- data/build/tdclrb/CMakeLists.txt +258 -0
- data/build/tdclrb/GEM_VERSION +3 -0
- data/build/tdclrb/bldgem/extconf.rb +123 -0
- data/build/tdclrb/gem/INSTALLLOG.win32 +9 -0
- data/build/tdclrb/gem/Makefile.win32-VS +65 -0
- data/build/tdclrb/gem/Makefile.win32-prebuilt +48 -0
- data/build/tdclrb/gem/detect.rb +31 -0
- data/build/tdclrb/gem/helper.rb +113 -0
- data/build/tdclrb/gem/transactd.rb +22 -0
- data/build/tdclrb/gem_output.cmake +44 -0
- data/source/bzs/db/IBlobBuffer.h +51 -0
- data/source/bzs/db/blobBuffer.h +177 -0
- data/source/bzs/db/blobStructs.h +85 -0
- data/source/bzs/db/engine/mysql/IReadRecords.h +52 -0
- data/source/bzs/db/engine/mysql/bookmark.h +195 -0
- data/source/bzs/db/engine/mysql/database.cpp +1882 -0
- data/source/bzs/db/engine/mysql/database.h +465 -0
- data/source/bzs/db/engine/mysql/dbManager.cpp +303 -0
- data/source/bzs/db/engine/mysql/dbManager.h +143 -0
- data/source/bzs/db/engine/mysql/errorMessage.cpp +75 -0
- data/source/bzs/db/engine/mysql/errorMessage.h +43 -0
- data/source/bzs/db/engine/mysql/fieldAccess.h +158 -0
- data/source/bzs/db/engine/mysql/mydebuglog.cpp +349 -0
- data/source/bzs/db/engine/mysql/mydebuglog.h +89 -0
- data/source/bzs/db/engine/mysql/mysqlInternal.h +171 -0
- data/source/bzs/db/engine/mysql/mysqlThd.cpp +169 -0
- data/source/bzs/db/engine/mysql/mysqlThd.h +35 -0
- data/source/bzs/db/engine/mysql/percentageKey.h +260 -0
- data/source/bzs/db/protocol/ICommandExecuter.h +49 -0
- data/source/bzs/db/protocol/hs/hsCommandExecuter.cpp +689 -0
- data/source/bzs/db/protocol/hs/hsCommandExecuter.h +228 -0
- data/source/bzs/db/protocol/tdap/btrDate.cpp +437 -0
- data/source/bzs/db/protocol/tdap/btrDate.h +227 -0
- data/source/bzs/db/protocol/tdap/client/bulkInsert.h +127 -0
- data/source/bzs/db/protocol/tdap/client/client.cpp +106 -0
- data/source/bzs/db/protocol/tdap/client/client.h +292 -0
- data/source/bzs/db/protocol/tdap/client/connMgr.cpp +144 -0
- data/source/bzs/db/protocol/tdap/client/connMgr.h +82 -0
- data/source/bzs/db/protocol/tdap/client/database.cpp +863 -0
- data/source/bzs/db/protocol/tdap/client/database.h +118 -0
- data/source/bzs/db/protocol/tdap/client/databaseFactory.cpp +100 -0
- data/source/bzs/db/protocol/tdap/client/dbDef.cpp +1640 -0
- data/source/bzs/db/protocol/tdap/client/dbDef.h +135 -0
- data/source/bzs/db/protocol/tdap/client/dllmain.cpp +434 -0
- data/source/bzs/db/protocol/tdap/client/errorMessage.cpp +92 -0
- data/source/bzs/db/protocol/tdap/client/errorMessage_ja.cpp +98 -0
- data/source/bzs/db/protocol/tdap/client/fieldDDF.cpp +174 -0
- data/source/bzs/db/protocol/tdap/client/fieldDDF.h +91 -0
- data/source/bzs/db/protocol/tdap/client/fileDDF.cpp +140 -0
- data/source/bzs/db/protocol/tdap/client/fileDDF.h +86 -0
- data/source/bzs/db/protocol/tdap/client/filter.cpp +527 -0
- data/source/bzs/db/protocol/tdap/client/filter.h +154 -0
- data/source/bzs/db/protocol/tdap/client/indexDDF.cpp +137 -0
- data/source/bzs/db/protocol/tdap/client/indexDDF.h +84 -0
- data/source/bzs/db/protocol/tdap/client/nsDatabase.cpp +724 -0
- data/source/bzs/db/protocol/tdap/client/nsDatabase.h +123 -0
- data/source/bzs/db/protocol/tdap/client/nsTable.cpp +899 -0
- data/source/bzs/db/protocol/tdap/client/nsTable.h +199 -0
- data/source/bzs/db/protocol/tdap/client/request.h +198 -0
- data/source/bzs/db/protocol/tdap/client/sharedData.cpp +58 -0
- data/source/bzs/db/protocol/tdap/client/sharedData.h +56 -0
- data/source/bzs/db/protocol/tdap/client/sqlBuilder.cpp +574 -0
- data/source/bzs/db/protocol/tdap/client/sqlBuilder.h +53 -0
- data/source/bzs/db/protocol/tdap/client/stringConverter.h +627 -0
- data/source/bzs/db/protocol/tdap/client/table.cpp +2613 -0
- data/source/bzs/db/protocol/tdap/client/table.h +221 -0
- data/source/bzs/db/protocol/tdap/client/trdboostapi.h +1096 -0
- data/source/bzs/db/protocol/tdap/client/trdboostapiInternal.h +179 -0
- data/source/bzs/db/protocol/tdap/client/trdclcppautolink.h +40 -0
- data/source/bzs/db/protocol/tdap/client/trnsctcl.def +11 -0
- data/source/bzs/db/protocol/tdap/myDateTime.cpp +500 -0
- data/source/bzs/db/protocol/tdap/mysql/characterset.cpp +184 -0
- data/source/bzs/db/protocol/tdap/mysql/characterset.h +60 -0
- data/source/bzs/db/protocol/tdap/mysql/databaseSchema.cpp +284 -0
- data/source/bzs/db/protocol/tdap/mysql/databaseSchema.h +53 -0
- data/source/bzs/db/protocol/tdap/mysql/debuglog.cpp +383 -0
- data/source/bzs/db/protocol/tdap/mysql/debuglog.h +106 -0
- data/source/bzs/db/protocol/tdap/mysql/recordsetReader.h +680 -0
- data/source/bzs/db/protocol/tdap/mysql/request.h +202 -0
- data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.cpp +1020 -0
- data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.h +141 -0
- data/source/bzs/db/protocol/tdap/tdapRequest.h +190 -0
- data/source/bzs/db/protocol/tdap/tdapSchema.cpp +295 -0
- data/source/bzs/db/protocol/tdap/tdapSchema.h +558 -0
- data/source/bzs/db/protocol/tdap/tdapcapi.h +423 -0
- data/source/bzs/db/transactd/appBuilderImple.h +55 -0
- data/source/bzs/db/transactd/appModule.cpp +183 -0
- data/source/bzs/db/transactd/appModule.h +80 -0
- data/source/bzs/db/transactd/connManager.cpp +201 -0
- data/source/bzs/db/transactd/connManager.h +60 -0
- data/source/bzs/db/transactd/connectionRecord.h +69 -0
- data/source/bzs/db/transactd/transactd.cpp +325 -0
- data/source/bzs/env/compiler.h +135 -0
- data/source/bzs/env/crosscompile.cpp +130 -0
- data/source/bzs/env/crosscompile.h +150 -0
- data/source/bzs/env/fileopen.h +36 -0
- data/source/bzs/env/mbcswchrLinux.cpp +40 -0
- data/source/bzs/env/mbcswchrLinux.h +88 -0
- data/source/bzs/env/tstring.h +183 -0
- data/source/bzs/example/changeSchema.cpp +117 -0
- data/source/bzs/example/changeSchema_c.cpp +78 -0
- data/source/bzs/example/connection_pool_c.cpp +171 -0
- data/source/bzs/example/createDatabase.cpp +305 -0
- data/source/bzs/example/createDatabase_c.cpp +202 -0
- data/source/bzs/example/deleteRecords.cpp +87 -0
- data/source/bzs/example/deleteRecords_c.cpp +57 -0
- data/source/bzs/example/dropDatabase.cpp +59 -0
- data/source/bzs/example/dropDatabase_c.cpp +34 -0
- data/source/bzs/example/insertRecords.cpp +212 -0
- data/source/bzs/example/insertRecords_c.cpp +153 -0
- data/source/bzs/example/readRecords.cpp +141 -0
- data/source/bzs/example/readRecords_c.cpp +107 -0
- data/source/bzs/example/updateRecords.cpp +99 -0
- data/source/bzs/example/updateRecords_c.cpp +71 -0
- data/source/bzs/example/update_with_transaction.cpp +104 -0
- data/source/bzs/example/update_with_transaction_c.cpp +80 -0
- data/source/bzs/netsvc/client/tcpClient.cpp +226 -0
- data/source/bzs/netsvc/client/tcpClient.h +489 -0
- data/source/bzs/netsvc/server/IAppModule.h +94 -0
- data/source/bzs/netsvc/server/iserver.h +65 -0
- data/source/bzs/netsvc/server/serverCpt.cpp +522 -0
- data/source/bzs/netsvc/server/serverCpt.h +88 -0
- data/source/bzs/netsvc/server/serverPipe.cpp +705 -0
- data/source/bzs/netsvc/server/serverPipe.h +96 -0
- data/source/bzs/netsvc/server/serverTpool.cpp +416 -0
- data/source/bzs/netsvc/server/serverTpool.h +84 -0
- data/source/bzs/rtl/benchmark.cpp +96 -0
- data/source/bzs/rtl/benchmark.h +65 -0
- data/source/bzs/rtl/datetime.cpp +375 -0
- data/source/bzs/rtl/datetime.h +53 -0
- data/source/bzs/rtl/debuglog.cpp +106 -0
- data/source/bzs/rtl/debuglog.h +97 -0
- data/source/bzs/rtl/exception.h +116 -0
- data/source/bzs/rtl/stl_uty.cpp +35 -0
- data/source/bzs/rtl/stl_uty.h +29 -0
- data/source/bzs/rtl/stringBuffers.cpp +101 -0
- data/source/bzs/rtl/stringBuffers.h +58 -0
- data/source/bzs/rtl/strtrim.cpp +135 -0
- data/source/bzs/rtl/strtrim.h +46 -0
- data/source/bzs/test/tdclatl/bench_tdclatl.js +445 -0
- data/source/bzs/test/tdclrb/bench_tdclcpp.rb +375 -0
- data/source/bzs/test/tdclrb/prepare.rb +226 -0
- data/source/bzs/test/tdclrb/transactd_datetime_spec.rb +172 -0
- data/source/bzs/test/tdclrb/transactd_kanjischema_spec.rb +208 -0
- data/source/bzs/test/tdclrb/transactd_spec.rb +1536 -0
- data/source/bzs/test/transactdBench/transactdBench.cpp +430 -0
- data/source/bzs/test/transactdBench/transactdBench2.cpp +342 -0
- data/source/bzs/test/trdclengn/test_trdclengn.cpp +2030 -0
- data/source/global/tdclatl/Database.cpp +503 -0
- data/source/global/tdclatl/Database.h +139 -0
- data/source/global/tdclatl/DbDef.cpp +242 -0
- data/source/global/tdclatl/DbDef.h +79 -0
- data/source/global/tdclatl/Field.cpp +92 -0
- data/source/global/tdclatl/Field.h +59 -0
- data/source/global/tdclatl/FieldDef.cpp +238 -0
- data/source/global/tdclatl/FieldDef.h +87 -0
- data/source/global/tdclatl/Flags.cpp +111 -0
- data/source/global/tdclatl/Flags.h +55 -0
- data/source/global/tdclatl/KeyDef.cpp +51 -0
- data/source/global/tdclatl/KeyDef.h +55 -0
- data/source/global/tdclatl/KeySegment.cpp +55 -0
- data/source/global/tdclatl/Table.cpp +600 -0
- data/source/global/tdclatl/Table.h +144 -0
- data/source/global/tdclatl/TableDef.cpp +291 -0
- data/source/global/tdclatl/TableDef.h +86 -0
- data/source/global/tdclatl/TdVersion.cpp +74 -0
- data/source/global/tdclatl/TdVersion.h +54 -0
- data/source/global/tdclatl/_IDatabaseEvents_CP.h +113 -0
- data/source/global/tdclatl/dllmain.cpp +30 -0
- data/source/global/tdclatl/dllmain.h +27 -0
- data/source/global/tdclatl/keySegment.h +57 -0
- data/source/global/tdclatl/resource.h +0 -0
- data/source/global/tdclatl/stdafx.cpp +2 -0
- data/source/global/tdclatl/stdafx.h +25 -0
- data/source/global/tdclatl/targetver.h +4 -0
- data/source/global/tdclatl/tdclatl.cpp +68 -0
- data/source/global/tdclatl/tdclatl.def +10 -0
- data/source/global/tdclatl/tdclatl.idl +1035 -0
- data/source/linux/charsetConvert.h +112 -0
- data/source/linux/linuxTypes.h +33 -0
- data/source/linux/tchar.h +428 -0
- data/transactd.gemspec +97 -0
- metadata +267 -0
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
#include <stdio.h>
|
|
2
|
+
#include <bzs/db/protocol/tdap/client/database.h>
|
|
3
|
+
#include <bzs/db/protocol/tdap/client/table.h>
|
|
4
|
+
#include <bzs/db/protocol/tdap/client/dbdef.h>
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
using namespace bzs::db::protocol::tdap::client;
|
|
8
|
+
using namespace bzs::db::protocol::tdap;
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
@brief read and delete example
|
|
13
|
+
|
|
14
|
+
This program deletes one record of a "user" table.
|
|
15
|
+
|
|
16
|
+
Please execute "create database" , "change schema" and "insert records" example
|
|
17
|
+
before execute this example.
|
|
18
|
+
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
static const short fieldnum_id = 0;
|
|
22
|
+
static const short fieldnum_name = 1;
|
|
23
|
+
static const short fieldnum_group = 2;
|
|
24
|
+
static const short fieldnum_tel = 3;
|
|
25
|
+
static const char_td keynum_id = 0;
|
|
26
|
+
|
|
27
|
+
/** show database operation error
|
|
28
|
+
*/
|
|
29
|
+
void showError(const _TCHAR* caption,const _TCHAR* tableName, short statusCode)
|
|
30
|
+
{
|
|
31
|
+
_TCHAR tmp[1024]={0x00};
|
|
32
|
+
nstable::tdapErr(0x00, statusCode, tableName, tmp);
|
|
33
|
+
_tprintf(_T("%s error No.%ld %s\n"),caption, statusCode, tmp);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
bool deleteUser(table* tb)
|
|
38
|
+
{
|
|
39
|
+
tb->clearBuffer();
|
|
40
|
+
tb->setKeyNum(keynum_id); //use id key
|
|
41
|
+
tb->setFV(fieldnum_id, 3);//id=3 satoshi
|
|
42
|
+
tb->seek();
|
|
43
|
+
if (tb->stat() == 0)
|
|
44
|
+
tb->del();
|
|
45
|
+
if (tb->stat()!=0)
|
|
46
|
+
showError(_T("update user"), tb->tableDef()->tableName(), tb->stat());
|
|
47
|
+
return (tb->stat()== 0);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
/** Open database
|
|
53
|
+
*/
|
|
54
|
+
bool openDatabase(database* db, const _TCHAR* uri)
|
|
55
|
+
{
|
|
56
|
+
db->open(uri, TYPE_SCHEMA_BDF);
|
|
57
|
+
if (db->stat() != 0)
|
|
58
|
+
{
|
|
59
|
+
showError(_T("open daatabase"), NULL, db->stat());
|
|
60
|
+
return false;
|
|
61
|
+
}
|
|
62
|
+
return true;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
#pragma argsused
|
|
66
|
+
int _tmain(int argc, _TCHAR* argv[])
|
|
67
|
+
{
|
|
68
|
+
int result = 0;
|
|
69
|
+
static const _TCHAR* uri = _T("tdap://localhost/test?dbfile=test.bdf");
|
|
70
|
+
database* db = database::create();
|
|
71
|
+
|
|
72
|
+
if (openDatabase(db, uri))
|
|
73
|
+
{
|
|
74
|
+
table* tbu = db->openTable(_T("user"));
|
|
75
|
+
if (db->stat() != 0)
|
|
76
|
+
showError(_T("open user table"), NULL, db->stat());
|
|
77
|
+
else
|
|
78
|
+
{
|
|
79
|
+
if (deleteUser(tbu))
|
|
80
|
+
_tprintf(_T("Update records success. \n"));
|
|
81
|
+
tbu->release();
|
|
82
|
+
}
|
|
83
|
+
db->close();
|
|
84
|
+
}
|
|
85
|
+
database::destroy(db);
|
|
86
|
+
return result;
|
|
87
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
#include <bzs/db/protocol/tdap/client/trdboostapi.h>
|
|
2
|
+
#include <iostream>
|
|
3
|
+
|
|
4
|
+
using namespace bzs::db::protocol::tdap::client;
|
|
5
|
+
using namespace bzs::db::protocol::tdap;
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
@brief read and delete example
|
|
10
|
+
|
|
11
|
+
This program deletes one record of a "user" table.
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
Please execute "create database" , "change schema" and "insert records" example
|
|
15
|
+
before execute this example.
|
|
16
|
+
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
static const short fieldnum_id = 0;
|
|
22
|
+
static const char_td keynum_id = 0;
|
|
23
|
+
|
|
24
|
+
void deleteUser(table_ptr tb)
|
|
25
|
+
{
|
|
26
|
+
//Seek record that user id = 3 "satoshi"
|
|
27
|
+
indexIterator it = readIndex_v(tb, eSeekEqual, keynum_id, 3);
|
|
28
|
+
|
|
29
|
+
if (it != indexIterator::eos)
|
|
30
|
+
deleteRecord(it); //delete id = 3
|
|
31
|
+
else
|
|
32
|
+
THROW_BZS_ERROR_WITH_MSG(_T("User id = 3 was not found"));
|
|
33
|
+
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
#pragma argsused
|
|
38
|
+
int _tmain(int argc, _TCHAR* argv[])
|
|
39
|
+
{
|
|
40
|
+
database_ptr db = createDatadaseObject();
|
|
41
|
+
try
|
|
42
|
+
{
|
|
43
|
+
connectParams param(_T("tdap"), _T("localhost"), _T("test"), _T("test"));
|
|
44
|
+
openDatabase(db, param);
|
|
45
|
+
|
|
46
|
+
table_ptr tb = openTable(db, _T("user"));
|
|
47
|
+
deleteUser(tb);
|
|
48
|
+
std::cout << "Insert records success." << std::endl;
|
|
49
|
+
return 0;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
catch(bzs::rtl::exception& e)
|
|
53
|
+
{
|
|
54
|
+
std::tcout << *bzs::rtl::getMsg(e) << std::endl;
|
|
55
|
+
}
|
|
56
|
+
return 1;
|
|
57
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
#include <stdio.h>
|
|
2
|
+
#include <bzs/db/protocol/tdap/client/database.h>
|
|
3
|
+
#include <bzs/db/protocol/tdap/client/table.h>
|
|
4
|
+
#include <bzs/db/protocol/tdap/client/dbdef.h>
|
|
5
|
+
|
|
6
|
+
using namespace bzs::db::protocol::tdap::client;
|
|
7
|
+
using namespace bzs::db::protocol::tdap;
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
@brief drop database example
|
|
12
|
+
|
|
13
|
+
This program drop "test" database.
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
/** show database operation error
|
|
19
|
+
*/
|
|
20
|
+
void showError(const _TCHAR* caption,const _TCHAR* tableName, short statusCode)
|
|
21
|
+
{
|
|
22
|
+
_TCHAR tmp[1024]={0x00};
|
|
23
|
+
nstable::tdapErr(0x00, statusCode, tableName, tmp);
|
|
24
|
+
_tprintf(_T("%s error No.%ld %s\n"),caption, statusCode, tmp);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
/** Open database
|
|
29
|
+
*/
|
|
30
|
+
bool openDbExclusive(database* db, const _TCHAR* uri)
|
|
31
|
+
{
|
|
32
|
+
db->open(uri, TYPE_SCHEMA_BDF, TD_OPEN_EXCLUSIVE);
|
|
33
|
+
if (db->stat() != 0)
|
|
34
|
+
{
|
|
35
|
+
showError(_T("open daatabase"), NULL, db->stat());
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
return true;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
#pragma argsused
|
|
43
|
+
int _tmain(int argc, _TCHAR* argv[])
|
|
44
|
+
{
|
|
45
|
+
int result = 1;
|
|
46
|
+
static const _TCHAR* uri = _T("tdap://localhost/test?dbfile=test.bdf");
|
|
47
|
+
database* db = database::create();
|
|
48
|
+
|
|
49
|
+
if (openDbExclusive(db, uri))
|
|
50
|
+
{
|
|
51
|
+
db->drop();
|
|
52
|
+
if (db->stat() != 0)
|
|
53
|
+
showError(_T("drop daatabase"), NULL, db->stat());
|
|
54
|
+
result = db->stat();
|
|
55
|
+
db->close();
|
|
56
|
+
}
|
|
57
|
+
database::destroy(db);
|
|
58
|
+
return result;
|
|
59
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
#include <bzs/db/protocol/tdap/client/trdboostapi.h>
|
|
2
|
+
#include <iostream>
|
|
3
|
+
using namespace bzs::db::protocol::tdap::client;
|
|
4
|
+
using namespace bzs::db::protocol::tdap;
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
@brief drop database example
|
|
9
|
+
|
|
10
|
+
This program drop "test" database.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
#pragma argsused
|
|
15
|
+
int _tmain(int argc, _TCHAR* argv[])
|
|
16
|
+
{
|
|
17
|
+
database_ptr db = createDatadaseObject();
|
|
18
|
+
try
|
|
19
|
+
{
|
|
20
|
+
connectParams prams(_T("tdap"), _T("localhost"), _T("test"), _T("test"));
|
|
21
|
+
prams.setMode(TD_OPEN_EXCLUSIVE);
|
|
22
|
+
|
|
23
|
+
openDatabase(db, prams);
|
|
24
|
+
dropDatabase(db);
|
|
25
|
+
|
|
26
|
+
std::cout << "drop databse success." << std::endl;
|
|
27
|
+
return 0;
|
|
28
|
+
}
|
|
29
|
+
catch(bzs::rtl::exception& e)
|
|
30
|
+
{
|
|
31
|
+
std::tcout << *bzs::rtl::getMsg(e) << std::endl;
|
|
32
|
+
}
|
|
33
|
+
return 1;
|
|
34
|
+
}
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
#include <stdio.h>
|
|
2
|
+
#include <bzs/db/protocol/tdap/client/database.h>
|
|
3
|
+
#include <bzs/db/protocol/tdap/client/table.h>
|
|
4
|
+
#include <bzs/db/protocol/tdap/client/dbdef.h>
|
|
5
|
+
#include <iostream>
|
|
6
|
+
#include <fstream>
|
|
7
|
+
#include <vector>
|
|
8
|
+
|
|
9
|
+
using namespace bzs::db::protocol::tdap::client;
|
|
10
|
+
using namespace bzs::db::protocol::tdap;
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
@brief Insert records example
|
|
15
|
+
|
|
16
|
+
This program inserts some records to "user" and "group1" table.
|
|
17
|
+
|
|
18
|
+
user table
|
|
19
|
+
----------------------------------------
|
|
20
|
+
id | name |group| tel
|
|
21
|
+
----------------------------------------
|
|
22
|
+
1 | "akio" | 1 | "81-3-2222-3569"
|
|
23
|
+
2 | "yoko" | 2 | "81-263-80-5555"
|
|
24
|
+
3 | "satoshi" | 1 | "81-3-1111-1234"
|
|
25
|
+
4 | "keiko" | 2 | "81-26-222-3569"
|
|
26
|
+
5 | "john" | 3 | "81-26-222-3565"
|
|
27
|
+
-------------------------------------
|
|
28
|
+
|
|
29
|
+
gropu1 table
|
|
30
|
+
----------------------------------------
|
|
31
|
+
id | name |
|
|
32
|
+
----------------------------------------
|
|
33
|
+
1 | "develop" |
|
|
34
|
+
2 | "sales" |
|
|
35
|
+
3 | "finance" |
|
|
36
|
+
----------------------------------------
|
|
37
|
+
|
|
38
|
+
picture table
|
|
39
|
+
----------------------------------------
|
|
40
|
+
type | id | picture
|
|
41
|
+
----------------------------------------
|
|
42
|
+
1 | 1 | dummy picture (this program bianry image)
|
|
43
|
+
----------------------------------------
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
Please execute the "create database" and "change schema" example
|
|
47
|
+
before execute this example.
|
|
48
|
+
|
|
49
|
+
*/
|
|
50
|
+
|
|
51
|
+
static const short fieldnum_id = 0;
|
|
52
|
+
static const short fieldnum_name = 1;
|
|
53
|
+
static const short fieldnum_group = 2;
|
|
54
|
+
static const short fieldnum_tel = 3;
|
|
55
|
+
|
|
56
|
+
static const short fieldnum_pic_type = 0;
|
|
57
|
+
static const short fieldnum_pic_id = 1;
|
|
58
|
+
static const short fieldnum_pic_pic = 2;
|
|
59
|
+
|
|
60
|
+
/** show database operation error
|
|
61
|
+
*/
|
|
62
|
+
void showError(const _TCHAR* caption,const _TCHAR* tableName, short statusCode)
|
|
63
|
+
{
|
|
64
|
+
_TCHAR tmp[1024]={0x00};
|
|
65
|
+
nstable::tdapErr(0x00, statusCode, tableName, tmp);
|
|
66
|
+
_tprintf(_T("%s error No.%ld %s\n"),caption, statusCode, tmp);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
bool insertUser(table* tb, int id, const _TCHAR* name, int groupid
|
|
70
|
+
, const _TCHAR* tel)
|
|
71
|
+
{
|
|
72
|
+
tb->clearBuffer();
|
|
73
|
+
tb->setFV(fieldnum_id, id);
|
|
74
|
+
tb->setFV(fieldnum_name, name);
|
|
75
|
+
tb->setFV(fieldnum_group, groupid);
|
|
76
|
+
tb->setFV(fieldnum_tel, tel);
|
|
77
|
+
tb->insert();
|
|
78
|
+
if (tb->stat() != 0)
|
|
79
|
+
showError(_T("insert user record"), tb->tableDef()->tableName(), tb->stat());
|
|
80
|
+
return (tb->stat() == 0);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
bool insertUsers(table* tb)
|
|
84
|
+
{
|
|
85
|
+
bool ret = insertUser(tb, 1, _T("akio") , 1, _T("81-3-2222-3569"));
|
|
86
|
+
if (ret == false) return false;
|
|
87
|
+
|
|
88
|
+
ret = insertUser(tb, 2, _T("yoko") , 2, _T("81-263-80-5555"));
|
|
89
|
+
if (ret == false) return false;
|
|
90
|
+
|
|
91
|
+
ret = insertUser(tb, 3, _T("satoshi"), 1, _T("81-3-1111-1234"));
|
|
92
|
+
if (ret == false) return false;
|
|
93
|
+
|
|
94
|
+
ret = insertUser(tb, 4, _T("keiko") , 2, _T("81-26-222-3569"));
|
|
95
|
+
if (ret == false) return false;
|
|
96
|
+
|
|
97
|
+
ret = insertUser(tb, 5, _T("john") , 3, _T("81-26-222-3565"));
|
|
98
|
+
if (ret == false) return false;
|
|
99
|
+
return true;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
bool insertGroup(table* tb, int id, const _TCHAR* name)
|
|
104
|
+
{
|
|
105
|
+
tb->clearBuffer();
|
|
106
|
+
tb->setFV(fieldnum_id, id);
|
|
107
|
+
tb->setFV(fieldnum_name, name);
|
|
108
|
+
tb->insert();
|
|
109
|
+
if (tb->stat() != 0)
|
|
110
|
+
showError(_T("insert group1 record"), tb->tableDef()->tableName(), tb->stat());
|
|
111
|
+
return (tb->stat() == 0);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
bool insertGroups(table* tb)
|
|
115
|
+
{
|
|
116
|
+
bool ret = insertGroup(tb, 1, _T("develop"));
|
|
117
|
+
if (ret == false) return false;
|
|
118
|
+
|
|
119
|
+
ret = insertGroup(tb, 2, _T("sales"));
|
|
120
|
+
if (ret == false) return false;
|
|
121
|
+
|
|
122
|
+
ret = insertGroup(tb, 3, _T("finance"));
|
|
123
|
+
if (ret == false) return false;
|
|
124
|
+
return true;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
bool insertPicure(table* tb, short type, int id, const void* img, size_t size)
|
|
128
|
+
{
|
|
129
|
+
tb->clearBuffer();
|
|
130
|
+
tb->setFV(fieldnum_pic_type, type);
|
|
131
|
+
tb->setFV(fieldnum_pic_id, id);
|
|
132
|
+
tb->setFV(fieldnum_pic_pic, img, (uint_td)size);
|
|
133
|
+
tb->insert();
|
|
134
|
+
|
|
135
|
+
if (tb->stat() != 0)
|
|
136
|
+
showError(_T("insert picture record"), tb->tableDef()->tableName(), tb->stat());
|
|
137
|
+
return (tb->stat() == 0);
|
|
138
|
+
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
void readImage(const _TCHAR* path, std::vector<char>& s)
|
|
142
|
+
{
|
|
143
|
+
std::ifstream ifs(path, std::ios::in | std::ios::binary );
|
|
144
|
+
|
|
145
|
+
ifs.seekg(0, std::ios::end);
|
|
146
|
+
s.resize(ifs.tellg());
|
|
147
|
+
|
|
148
|
+
ifs.seekg(0, std::ios::beg);
|
|
149
|
+
ifs.read(&s[0], s.size());
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
/** Open database
|
|
153
|
+
*/
|
|
154
|
+
bool openDatabase(database* db, const _TCHAR* uri)
|
|
155
|
+
{
|
|
156
|
+
db->open(uri, TYPE_SCHEMA_BDF);
|
|
157
|
+
if (db->stat() != 0)
|
|
158
|
+
{
|
|
159
|
+
showError(_T("open daatabase"), NULL, db->stat());
|
|
160
|
+
return false;
|
|
161
|
+
}
|
|
162
|
+
return true;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
#pragma argsused
|
|
166
|
+
int _tmain(int argc, _TCHAR* argv[])
|
|
167
|
+
{
|
|
168
|
+
int result = 0;
|
|
169
|
+
static const _TCHAR* uri = _T("tdap://localhost/test?dbfile=test.bdf");
|
|
170
|
+
database* db = database::create();
|
|
171
|
+
|
|
172
|
+
if (openDatabase(db, uri))
|
|
173
|
+
{
|
|
174
|
+
table* tbg = db->openTable(_T("group1"));
|
|
175
|
+
if (db->stat() != 0)
|
|
176
|
+
showError(_T("open group1 table"), NULL, db->stat());
|
|
177
|
+
else
|
|
178
|
+
{
|
|
179
|
+
if (insertGroups(tbg))
|
|
180
|
+
{
|
|
181
|
+
table* tbu = db->openTable(_T("user"));
|
|
182
|
+
if (db->stat() != 0)
|
|
183
|
+
showError(_T("open user table"), NULL, db->stat());
|
|
184
|
+
else
|
|
185
|
+
{
|
|
186
|
+
if (insertUsers(tbu))
|
|
187
|
+
{
|
|
188
|
+
table* tbp = db->openTable(_T("picture"));
|
|
189
|
+
if (db->stat() != 0)
|
|
190
|
+
showError(_T("open user table"), NULL, db->stat());
|
|
191
|
+
else
|
|
192
|
+
{
|
|
193
|
+
std::vector<char> s;
|
|
194
|
+
readImage(argv[0], s);
|
|
195
|
+
if (insertPicure(tbp, 1, 1, &s[0], s.size()))
|
|
196
|
+
{
|
|
197
|
+
_tprintf(_T("Insert records success. \n"));
|
|
198
|
+
result = 0;
|
|
199
|
+
}
|
|
200
|
+
tbp->release();
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
tbu->release();
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
tbg->release();
|
|
207
|
+
}
|
|
208
|
+
db->close();
|
|
209
|
+
}
|
|
210
|
+
database::destroy(db);
|
|
211
|
+
return result;
|
|
212
|
+
}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
#include <bzs/db/protocol/tdap/client/trdboostapi.h>
|
|
2
|
+
#include <iostream>
|
|
3
|
+
#include <fstream>
|
|
4
|
+
#include <vector>
|
|
5
|
+
|
|
6
|
+
using namespace bzs::db::protocol::tdap::client;
|
|
7
|
+
using namespace bzs::db::protocol::tdap;
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
@brief Insert records example
|
|
12
|
+
|
|
13
|
+
This program inserts some records to "user" and "group1" table.
|
|
14
|
+
|
|
15
|
+
user table
|
|
16
|
+
----------------------------------------
|
|
17
|
+
id | name |group| tel
|
|
18
|
+
----------------------------------------
|
|
19
|
+
1 | "akio" | 1 | "81-3-2222-3569"
|
|
20
|
+
2 | "yoko" | 2 | "81-263-80-5555"
|
|
21
|
+
3 | "satoshi" | 1 | "81-3-1111-1234"
|
|
22
|
+
4 | "keiko" | 2 | "81-26-222-3569"
|
|
23
|
+
5 | "john" | 3 | "81-26-222-3565"
|
|
24
|
+
-------------------------------------
|
|
25
|
+
|
|
26
|
+
gropu1 table
|
|
27
|
+
----------------------------------------
|
|
28
|
+
id | name |
|
|
29
|
+
----------------------------------------
|
|
30
|
+
1 | "develop" |
|
|
31
|
+
2 | "sales" |
|
|
32
|
+
3 | "finance" |
|
|
33
|
+
----------------------------------------
|
|
34
|
+
|
|
35
|
+
picture table
|
|
36
|
+
----------------------------------------
|
|
37
|
+
type | id | picture
|
|
38
|
+
----------------------------------------
|
|
39
|
+
1 | 1 | dummy picture (this program bianry image)
|
|
40
|
+
----------------------------------------
|
|
41
|
+
|
|
42
|
+
Please execute the "create database" and "change schema" example
|
|
43
|
+
before execute this example.
|
|
44
|
+
|
|
45
|
+
*/
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
static const short fieldnum_id = 0;
|
|
50
|
+
static const short fieldnum_name = 1;
|
|
51
|
+
static const short fieldnum_group = 2;
|
|
52
|
+
static const short fieldnum_tel = 3;
|
|
53
|
+
|
|
54
|
+
static const short fieldnum_pic_type = 0;
|
|
55
|
+
static const short fieldnum_pic_id = 1;
|
|
56
|
+
static const short fieldnum_pic_pic = 2;
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
void insertUser(fields& fds, int id, const _TCHAR* name, int groupid
|
|
60
|
+
, const _TCHAR* tel)
|
|
61
|
+
{
|
|
62
|
+
|
|
63
|
+
fds.clearValues();
|
|
64
|
+
fds[fieldnum_id] = id;
|
|
65
|
+
fds[fieldnum_name] = name;
|
|
66
|
+
fds[fieldnum_group] = groupid;
|
|
67
|
+
fds[fieldnum_tel] = tel;
|
|
68
|
+
|
|
69
|
+
insertRecord(fds);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
void insertUsers(table_ptr tb)
|
|
73
|
+
{
|
|
74
|
+
fields fds(tb);
|
|
75
|
+
insertUser(fds, 1, _T("akio") , 1, _T("81-3-2222-3569"));
|
|
76
|
+
insertUser(fds, 2, _T("yoko") , 2, _T("81-263-80-5555"));
|
|
77
|
+
insertUser(fds, 3, _T("satoshi"), 1, _T("81-3-1111-1234"));
|
|
78
|
+
insertUser(fds, 4, _T("keiko") , 2, _T("81-26-222-3569"));
|
|
79
|
+
insertUser(fds, 5, _T("john") , 3, _T("81-26-222-3565"));
|
|
80
|
+
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
void insertGroup(fields& fds, int id, const _TCHAR* name)
|
|
85
|
+
{
|
|
86
|
+
|
|
87
|
+
fds.clearValues();
|
|
88
|
+
fds[fieldnum_id] = id;
|
|
89
|
+
fds[fieldnum_name] = name;
|
|
90
|
+
insertRecord(fds);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
void insertGroups(table_ptr tb)
|
|
94
|
+
{
|
|
95
|
+
fields fds(tb);
|
|
96
|
+
insertGroup(fds, 1, _T("develop"));
|
|
97
|
+
insertGroup(fds, 2, _T("sales"));
|
|
98
|
+
insertGroup(fds, 3, _T("finance"));
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
void insertPicure(table_ptr tb, short type, int id, const void* img, size_t size)
|
|
103
|
+
{
|
|
104
|
+
fields fds(tb);
|
|
105
|
+
fds.clearValues();
|
|
106
|
+
fds[fieldnum_pic_type] = type;
|
|
107
|
+
fds[fieldnum_pic_id] = id;
|
|
108
|
+
fds[fieldnum_pic_pic].setBin(img, size);
|
|
109
|
+
insertRecord(fds);
|
|
110
|
+
|
|
111
|
+
}
|
|
112
|
+
void readImage(const _TCHAR* path, std::vector<char>& s)
|
|
113
|
+
{
|
|
114
|
+
std::ifstream ifs(path, std::ios::in | std::ios::binary );
|
|
115
|
+
|
|
116
|
+
ifs.seekg(0, std::ios::end);
|
|
117
|
+
s.resize(ifs.tellg());
|
|
118
|
+
|
|
119
|
+
ifs.seekg(0, std::ios::beg);
|
|
120
|
+
ifs.read(&s[0], s.size());
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
#pragma argsused
|
|
124
|
+
int _tmain(int argc, _TCHAR* argv[])
|
|
125
|
+
{
|
|
126
|
+
database_ptr db = createDatadaseObject();
|
|
127
|
+
try
|
|
128
|
+
{
|
|
129
|
+
connectParams param(_T("tdap"), _T("localhost"), _T("test"), _T("test"));
|
|
130
|
+
openDatabase(db, param);
|
|
131
|
+
|
|
132
|
+
table_ptr tb = openTable(db, _T("group1"));
|
|
133
|
+
insertGroups(tb);
|
|
134
|
+
|
|
135
|
+
tb = openTable(db, _T("user"));
|
|
136
|
+
insertUsers(tb);
|
|
137
|
+
|
|
138
|
+
tb = openTable(db, _T("picture"));
|
|
139
|
+
|
|
140
|
+
std::vector<char> s;
|
|
141
|
+
readImage(argv[0], s);
|
|
142
|
+
insertPicure(tb, 1, 1, &s[0], s.size());
|
|
143
|
+
|
|
144
|
+
std::cout << "Insert records success." << std::endl;
|
|
145
|
+
return 0;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
catch(bzs::rtl::exception& e)
|
|
149
|
+
{
|
|
150
|
+
std::tcout << *bzs::rtl::getMsg(e) << std::endl;
|
|
151
|
+
}
|
|
152
|
+
return 1;
|
|
153
|
+
}
|