transactd 1.2.0-x86-mswin32-100 → 2.0.0-x86-mswin32-100
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/1.9/transactd.so +0 -0
- data/bin/2.0/transactd.so +0 -0
- data/bin/common/tdclc_32_2_0.dll +0 -0
- data/bin/common/tdclcpp_vc100_32mr_2_0.dll +0 -0
- data/build/tdclrb/bldgem/extconf.rb +28 -3
- data/build/tdclrb/gem/helper.rb +11 -1
- data/index_ja.html +15 -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/transactd.gemspec +24 -16
- metadata +9 -5
- data/bin/common/tdclc_32_1_2.dll +0 -0
- data/bin/common/tdclcpp_vc100_32m_1_2.dll +0 -0
data/README-JA
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
Transactd リリースノート
|
2
2
|
===============================================================================
|
3
3
|
Transactd PluginはMySQL/MariaDBにNoSQLアクセスを追加するプラグインです。
|
4
4
|
|
@@ -13,6 +13,8 @@ Transactd PluginはMySQL/MariaDBにNoSQLアクセスを追加するプラグイ
|
|
13
13
|
* アプリケーションの開発
|
14
14
|
* Testプログラム
|
15
15
|
* ベンチマークプログラム
|
16
|
+
* C++ O/Rマッピングソースコードジェネレータ
|
17
|
+
* クエリーエグゼキューター
|
16
18
|
* Transactd Pluginのライセンス
|
17
19
|
* Transactdクライアントのライセンス
|
18
20
|
* バグ報告・要望・質問など
|
@@ -43,14 +45,14 @@ show variables like 'version';
|
|
43
45
|
```
|
44
46
|
ダウンロードするファイルは
|
45
47
|
|
46
|
-
* Windowsの場合 transactd-[platform]-
|
47
|
-
* Linuxの場合 transactd-linux-x86_64-
|
48
|
+
* Windowsの場合 transactd-[platform]-2.0.0_[mysql-version].zip
|
49
|
+
* Linuxの場合 transactd-linux-x86_64-2.0.0_[mysql-version].tar.gz
|
48
50
|
|
49
51
|
といった形式です。
|
50
52
|
[platform]はwin32またはwin64、[mysql-version]はmysql-5.x.xまたはmariadb-5.5.xです。
|
51
53
|
たとえば、Linux-x86_64bit mysql-5.6.14用の完全なURLは以下の通りです。
|
52
54
|
|
53
|
-
http://www.bizstation.jp/al/transactd/download/transactd-
|
55
|
+
http://www.bizstation.jp/al/transactd/download/transactd-2.0.0/transactd-linux-x86_64-2.0.0_mysql-5.6.14.tar.gz
|
54
56
|
|
55
57
|
また、ソースをダウンロードしてビルドすることもできます。その場合は、
|
56
58
|
MySQL/MariaDBのソースコードも必要です。ビルド方法はソースコード内の
|
@@ -71,53 +73,53 @@ MySQL/MariaDBのバイナリに変更を加えることなく、所定の位置
|
|
71
73
|
2. [MySQL|MariaDBインストールフォルダ]/lib/pluginに、transactd.dllをコピーします。
|
72
74
|
MySQL|MariaDBインストールフォルダが不明な場合は、MySQL Command Line clientを
|
73
75
|
起動し以下のコマンドでplugin_dirを確認してください。
|
74
|
-
```
|
75
|
-
mysql>show variables like 'Plugin%';
|
76
|
-
+---------------+----------------------------------------------------+
|
77
|
-
| Variable_name | Value |
|
78
|
-
+---------------+----------------------------------------------------+
|
79
|
-
| plugin_dir | C:\Program Files\MySQL\MySQL Server 5.6\lib\plugin |
|
80
|
-
+---------------+----------------------------------------------------+
|
81
|
-
```
|
76
|
+
```
|
77
|
+
mysql>show variables like 'Plugin%';
|
78
|
+
+---------------+----------------------------------------------------+
|
79
|
+
| Variable_name | Value |
|
80
|
+
+---------------+----------------------------------------------------+
|
81
|
+
| plugin_dir | C:\Program Files\MySQL\MySQL Server 5.6\lib\plugin |
|
82
|
+
+---------------+----------------------------------------------------+
|
83
|
+
```
|
82
84
|
|
83
85
|
3. MySQL Command Line clientを起動し、以下のコマンドを実行します。
|
84
|
-
```
|
85
|
-
mysql>INSTALL PLUGIN transactd SONAME 'transactd.dll';
|
86
|
-
```
|
87
|
-
これでPluginのインストールは終了です。
|
86
|
+
```
|
87
|
+
mysql>INSTALL PLUGIN transactd SONAME 'transactd.dll';
|
88
|
+
```
|
89
|
+
これでPluginのインストールは終了です。
|
88
90
|
|
89
91
|
|
90
92
|
### Linuxでのインストール
|
91
93
|
1. ダウンロードしたtar.gzのあるフォルダに移動します。
|
92
|
-
```
|
93
|
-
|
94
|
-
```
|
94
|
+
```
|
95
|
+
cd [TargetFolder]
|
96
|
+
```
|
95
97
|
|
96
98
|
2. ダウンロードしたtar.gzを解凍し、解凍したフォルダに移動します。
|
97
|
-
```
|
98
|
-
|
99
|
-
|
100
|
-
```
|
99
|
+
```
|
100
|
+
tar zxf transactd-linux-x86_64-2.0.0_mysql-5.6.14.tar.gz
|
101
|
+
cd transactd-linux-x86_64-2.0.0_mysql-5.6.14
|
102
|
+
```
|
101
103
|
|
102
104
|
3. [MySQL|MariaDBインストールフォルダ]/lib/pluginに、libtransactd.soをコピー
|
103
105
|
します。MySQL|MariaDBインストールが不明な場合は、mysqlを起動し以下の
|
104
106
|
コマンドでplugin_dirを確認してください。
|
105
|
-
```
|
106
|
-
mysql>show variables like 'plugin%';
|
107
|
-
+---------------+-----------------------------+
|
108
|
-
| Variable_name | Value |
|
109
|
-
+---------------+-----------------------------+
|
110
|
-
| plugin_dir | /usr/local/mysql/lib/plugin |
|
111
|
-
+---------------+-----------------------------+
|
112
|
-
mysql>exit
|
113
|
-
|
114
|
-
```
|
107
|
+
```
|
108
|
+
mysql>show variables like 'plugin%';
|
109
|
+
+---------------+-----------------------------+
|
110
|
+
| Variable_name | Value |
|
111
|
+
+---------------+-----------------------------+
|
112
|
+
| plugin_dir | /usr/local/mysql/lib/plugin |
|
113
|
+
+---------------+-----------------------------+
|
114
|
+
mysql>exit
|
115
|
+
cp libtransactd.so /usr/local/mysql/lib/plugin/
|
116
|
+
```
|
115
117
|
|
116
118
|
4. mysqlを起動し、以下のコマンドを実行します。
|
117
|
-
```
|
118
|
-
|
119
|
-
```
|
120
|
-
これでPluginのインストールは終了です。
|
119
|
+
```
|
120
|
+
mysql>INSTALL PLUGIN transactd SONAME 'libtransactd.so';
|
121
|
+
```
|
122
|
+
これでPluginのインストールは終了です。
|
121
123
|
|
122
124
|
|
123
125
|
|
@@ -127,13 +129,13 @@ Transactd Pluginを介してデータにアクセスするにはTransactdクラ
|
|
127
129
|
プラットフォームに合ったビルド済Transactdクライアントをダウンロードします。
|
128
130
|
ダウンロードするファイルは
|
129
131
|
|
130
|
-
* Windowsの場合 transactd-client-[platform]_with_sdk-
|
131
|
-
* Linuxの場合 transactd-client-linux-x86_64_with_sdk-
|
132
|
+
* Windowsの場合 transactd-client-[platform]_with_sdk-2.0.0.zip
|
133
|
+
* Linuxの場合 transactd-client-linux-x86_64_with_sdk-2.0.0.tar.gz
|
132
134
|
|
133
135
|
といった形式です。[platform]はwin32またはwin64です。
|
134
136
|
たとえば、LINUXの完全なURLは以下の通りです。
|
135
137
|
|
136
|
-
http://www.bizstation.jp/al/transactd/download/transactd-client/transactd-client-linux-x86_64_with_sdk-
|
138
|
+
http://www.bizstation.jp/al/transactd/download/transactd-client/transactd-client-linux-x86_64_with_sdk-2.0.0.tar.gz
|
137
139
|
|
138
140
|
|
139
141
|
|
@@ -141,36 +143,48 @@ Transactdクライアントのインストール
|
|
141
143
|
-------------------------------------------------------------------------------
|
142
144
|
|
143
145
|
### Windowsでのインストール
|
144
|
-
1. transactd-client-[platform]_with_sdk-
|
145
|
-
|
146
|
-
|
146
|
+
1. ダウンロードしたtransactd-client-[platform]_with_sdk-2.0.0.zipを開きます。
|
147
|
+
2. ルートフォルダーのtransactd-client-[platform]_with_sdk-2.0.0ごと適当なフォルダに
|
148
|
+
コピーします。
|
149
|
+
3. transactd-client-[platform]_with_sdk-2.0.0直下にあるinstall.cmdを実行します。
|
150
|
+
これによりtransactd-client-[platform]_with_sdk-2.0.0\binフォルダをシステム環境変数
|
151
|
+
PATHに追加します。
|
147
152
|
|
148
|
-
|
149
|
-
シリーズ用のクライアントも選択できます。インストールできるコンパイラターゲットは
|
153
|
+
C++クライアントは binフォルダに配置された以下の3つのDLLからなります。
|
150
154
|
|
151
|
-
*
|
152
|
-
*
|
155
|
+
* tdclc_xx_[version].dll
|
156
|
+
* tdclcpp_xx_[Compiler]_[version].dll
|
157
|
+
* tdclstmt_xx_[Compiler]_[version].dll
|
158
|
+
|
159
|
+
このうち下の2つはC++のクラスをエクスポートするための、コンパイラごとに異なった
|
160
|
+
モジュールです。また、それを利用したテストやベンチマーク、その他のプログラムも
|
161
|
+
コンパイラごとになっていますです。それらはbin配下にコンパイラの名前のフォルダに
|
162
|
+
配置されています。
|
163
|
+
開発コンパイラが特定されている場合には、不要なモジュールは削除しても構いません。
|
153
164
|
|
154
|
-
|
165
|
+
ビルド済みバイナリーが含まれるコンパイラは以下の7種類です。
|
166
|
+
|
167
|
+
* Microsoft Visual studio 2010用 (ActiveX(COM)クライアントを含みます)
|
168
|
+
* Embarcadero C++Builder XE~XE6シリーズ用
|
155
169
|
|
156
170
|
|
157
171
|
### Linuxでのインストール
|
158
172
|
1. ダウンロードしたtar.gzのあるフォルダに移動します。
|
159
|
-
```
|
160
|
-
|
161
|
-
```
|
173
|
+
```
|
174
|
+
cd [TargetFolder]
|
175
|
+
```
|
162
176
|
|
163
177
|
2. ダウンロードしたtar.gzを解凍し、解凍したフォルダに移動します。
|
164
|
-
```
|
165
|
-
|
166
|
-
|
167
|
-
```
|
178
|
+
```
|
179
|
+
tar zxf transactd-client-linux-x86_64_with_sdk-2.0.0.tar.gz
|
180
|
+
cd transactd-client-linux-x86_64_with_sdk-2.0.0
|
181
|
+
```
|
168
182
|
|
169
183
|
3. インストールスクリプトを実行します。
|
170
|
-
```
|
171
|
-
|
172
|
-
```
|
173
|
-
これでクライアントのインストールは終了です。
|
184
|
+
```
|
185
|
+
./install_client.sh
|
186
|
+
```
|
187
|
+
これでクライアントのインストールは終了です。
|
174
188
|
|
175
189
|
|
176
190
|
|
@@ -187,21 +201,21 @@ Transactdへアクセスするには、事前にMySQLのuserテーブルにroot@
|
|
187
201
|
```
|
188
202
|
mysql>CREATE USER root@'192.168.0.0/255.255.255.0';
|
189
203
|
```
|
190
|
-
この操作はroot
|
204
|
+
この操作はrootでのアクセスを可能にするので、rootのパスワードが未設定の場合は、
|
191
205
|
必ず設定してください。
|
192
206
|
|
193
207
|
|
194
208
|
### Windowsでのrootパスワードの設定
|
195
209
|
コマンドプロンプトを開きます。
|
196
210
|
```
|
197
|
-
|
211
|
+
"C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqladmin" -u root password 'xxxxx'
|
198
212
|
```
|
199
213
|
(xxxxxは実際のパスワードに置き換えてください)
|
200
214
|
|
201
215
|
|
202
216
|
### Linuxでのrootパスワードの設定
|
203
217
|
```
|
204
|
-
|
218
|
+
/usr/local/mysql/bin/mysqladmin -u root password 'xxxxx'
|
205
219
|
```
|
206
220
|
(xxxxxは実際のパスワードに置き換えてください)
|
207
221
|
|
@@ -224,23 +238,58 @@ Transactd Pluginとクライアントのインストールが済んだら、テ
|
|
224
238
|
テストとベンチマークの詳しい内容は、このトピックス以降にあるそれぞれのトピックス
|
225
239
|
を参照してください。
|
226
240
|
|
241
|
+
テストスクリプトは、以下の内容を順に実行します。
|
242
|
+
* test_tdclcpp_xx_xxm_xxx.exe マルチバイト版テスト
|
243
|
+
* test_tdclcpp_xx_xxu_xxx.exe ユニコード版テスト(Windowsのみ)
|
244
|
+
* bench_tdclcpp_xx.exe Insert read update ベンチマーク
|
245
|
+
* bench_query_xx.exe クエリーのベンチマーク
|
246
|
+
* querystmtsxx.exe コマンドライン クエリー実行モジュール
|
247
|
+
|
248
|
+
最後の コマンドライン クエリー実行モジュールは、ターゲットhostが localhost の場合
|
249
|
+
にのみ実行されます。
|
250
|
+
|
251
|
+
|
227
252
|
### Windowsでの起動
|
228
|
-
1.
|
229
|
-
|
230
|
-
|
231
|
-
|
253
|
+
1. クライアントのインストールで解凍したフォルダに移動します
|
254
|
+
```
|
255
|
+
cd transactd-client-[platform]_with_sdk-2.0.0
|
256
|
+
```
|
257
|
+
|
258
|
+
2. テストの起動
|
259
|
+
```
|
260
|
+
TestClient.cmd
|
261
|
+
```
|
262
|
+
|
263
|
+
最初にホスト名を聞かれるので、Transactdサーバーのホスト名を指定します。
|
264
|
+
何も指定しない場合は localhostが自動で設定されます。
|
265
|
+
|
266
|
+
次に、テストするコンパイラーを番号で選択します。
|
267
|
+
テストおよびベンチマークなどが連続して実行されます。
|
268
|
+
|
269
|
+
3. ActiveX(COM)のテストの起動
|
270
|
+
```
|
271
|
+
TestClient_ATL.cmd
|
272
|
+
```
|
273
|
+
|
274
|
+
最初にホスト名を聞かれるので、Transactdサーバーのホスト名を指定します。
|
275
|
+
何も指定しない場合は localhostが自動で設定されます。
|
276
|
+
テストおよびベンチマークなどが連続して実行されます。
|
232
277
|
|
233
278
|
|
234
279
|
### Linuxでの起動
|
235
280
|
1. クライアントのインストールで解凍したフォルダに移動します
|
236
|
-
```
|
237
|
-
|
238
|
-
```
|
281
|
+
```
|
282
|
+
cd transactd-client-linux-x86_64_with_sdk-2.0.0
|
283
|
+
```
|
239
284
|
|
240
285
|
2. テストの起動
|
241
|
-
```
|
242
|
-
./
|
243
|
-
```
|
286
|
+
```
|
287
|
+
./exec_test_all.sh
|
288
|
+
```
|
289
|
+
|
290
|
+
最初にホスト名を聞かれるので、Transactdサーバーのホスト名を指定します。
|
291
|
+
何も指定しない場合は localhostが自動で設定されます。
|
292
|
+
テストおよびベンチマークなどが連続して実行されます。
|
244
293
|
|
245
294
|
|
246
295
|
|
@@ -251,6 +300,22 @@ Transactdクライアントによるアプリケーションの開発は以下
|
|
251
300
|
|
252
301
|
http://www.bizstation.jp/ja/transactd/client/sdk/doc/
|
253
302
|
|
303
|
+
source/bzs/exampleフォルダに、簡単なサンプルコードがあります。
|
304
|
+
|
305
|
+
build/exampleフォルダにコンパイラに応じたプロジェクトファイル(Windows)があります。
|
306
|
+
または、make_example.shスクリプト(Linux)でこれらをビルドできます。
|
307
|
+
|
308
|
+
Visual C++ 2010のExpress版 64Bitでコンパイルする際は、各プロジェクトの[オプション]
|
309
|
+
-[構成プロパティー]-[全般]-[プラットフォームツールセット]を"v100"から"Windows7.1SDK"
|
310
|
+
に変更してください。
|
311
|
+
|
312
|
+
C++ Builderの場合は、事前にコンパイラ付属のboostをインストールが必要です。また、
|
313
|
+
[ツール]-[オプション]-[環境オプション]-[C++ オプション]-[パスとディレクトリ]の
|
314
|
+
[システムインクルードパス]に以下の変数を追加します。
|
315
|
+
|
316
|
+
* 32Bitの場合 $(CG_BOOST_ROOT)
|
317
|
+
* 64Bitの場合 $(CG_64_BOOST_ROOT)
|
318
|
+
|
254
319
|
|
255
320
|
|
256
321
|
Testプログラム
|
@@ -288,9 +353,12 @@ character-set-server=utf8
|
|
288
353
|
|
289
354
|
ベンチマークプログラム
|
290
355
|
-------------------------------------------------------------------------------
|
291
|
-
|
292
|
-
|
293
|
-
|
356
|
+
ベンチマークプログラムは、基本的なCRUDオペレーションのベンチマーク(bench_tdclcpp_xxx)
|
357
|
+
と、SQLライクな読み取りクエリーのベンチマーク(bench_query_xxx)の2種類あります。
|
358
|
+
|
359
|
+
bench_tdclcpp_xxxベンチマークプログラムは、コマンドライン引数のprocessNumberを
|
360
|
+
変えることで複数のインスタンスを同時に実行して計測することができます。
|
361
|
+
bench_tdclcpp_xxxプログラムのコマンドラインオプションは以下の通りです。
|
294
362
|
|
295
363
|
```
|
296
364
|
bench_tdclcpp_xxx.exe databaseUri processNumber functionNumber
|
@@ -318,8 +386,71 @@ bench_tdclcpp_xxx.exe databaseUri processNumber functionNumber
|
|
318
386
|
| | 8: update in transaction. 20rec x 1000times |
|
319
387
|
|----------------|--------------------------------------------------------|
|
320
388
|
ex)
|
321
|
-
|
389
|
+
bench_tdclcpp_bc200_64u.exe "tdap://localhost/test?dbfile=test.bdf" 0 -1
|
390
|
+
```
|
391
|
+
|
392
|
+
bench_query_xxxベンチマークプログラムは、以下のSQLと同等な結果を得る速度を計測
|
393
|
+
します。
|
394
|
+
```
|
395
|
+
select
|
396
|
+
`user`.`id`
|
397
|
+
,`user`.`name`
|
398
|
+
,`extention`.`comment`
|
399
|
+
,`groups`.`name` as `group_name`
|
400
|
+
from
|
401
|
+
`user` INNER JOIN `extention`
|
402
|
+
ON `user`.`id` = `extention`.`id`
|
403
|
+
LEFT JOIN `groups`
|
404
|
+
ON `user`.`group` = `groups`.`code`
|
405
|
+
where
|
406
|
+
`user`.`id` > 0 and `user`.`id` <= 15000;
|
407
|
+
|
408
|
+
```
|
409
|
+
コマンドラインオプションは以下の通りです。
|
322
410
|
```
|
411
|
+
bench_query_xxx createdb hostname type n
|
412
|
+
|----------------|--------------------------------------------------------|
|
413
|
+
| パラメータ | 内容 |
|
414
|
+
|----------------|--------------------------------------------------------|
|
415
|
+
| createdb | テスト用データベースを新しく作成するかどうかを 1 または|
|
416
|
+
| | 0で指定します。デフォルトは1です。 |
|
417
|
+
|----------------|--------------------------------------------------------|
|
418
|
+
| hostname | テストを行うホストをIPアドレスまたは名前で指定します。 |
|
419
|
+
| | デフォルトは localhostです。 |
|
420
|
+
|----------------|--------------------------------------------------------|
|
421
|
+
| type | クエリーの内容を番号で指定します。デフォルトは15です。 |
|
422
|
+
| | 1: userテーブルから15000レコードの取得 |
|
423
|
+
| | 3: 1の結果にextentionテーブルのcommentフィールドをJOIN |
|
424
|
+
| | 7: 3の結果にgroupsテーブルのnameをJOIN |
|
425
|
+
| | 5: 1の結果にgroupsテーブルのnameをJOIN |
|
426
|
+
| |+8: 繰り返しの実行プログレスを.で表示 |
|
427
|
+
|----------------|--------------------------------------------------------|
|
428
|
+
| n | typeで指定したクエリの実行回数を指定します。 |
|
429
|
+
| | デフォルトは100です。 |
|
430
|
+
|----------------|--------------------------------------------------------|
|
431
|
+
ex)
|
432
|
+
bench_query_xxx 0 localhost 15 100
|
433
|
+
```
|
434
|
+
|
435
|
+
|
436
|
+
|
437
|
+
C++ O/Rマッピングソースコードジェネレータ
|
438
|
+
-------------------------------------------------------------------------------
|
439
|
+
ormsrcgen(32|64)はC++ O/Rマッピングのためのソースコードジェネレータです。C++で
|
440
|
+
O/Rマッピングを利用する場合はこのプログラムを使って、モデルクラスをデータベース
|
441
|
+
定義から生成することができます。
|
442
|
+
|
443
|
+
詳しくはSDKに付属するREADME_ORMSRCGEN-JA.mdを参照してください。
|
444
|
+
|
445
|
+
|
446
|
+
|
447
|
+
クエリーエグゼキューター
|
448
|
+
-------------------------------------------------------------------------------
|
449
|
+
querystmts(32|64)はXMLファイルに記述されたTransactdクエリーの実行プログラムです。
|
450
|
+
|
451
|
+
querystmtsにXMLファイルを渡すとその内容に従ってクエリーを実行し、結果を標準出力
|
452
|
+
に出力します。XMLファイルは、queryBuilderプログラムにて作成します。queryBuilderは
|
453
|
+
現在まだリリースされていません。近日中にリリースされる予定です。
|
323
454
|
|
324
455
|
|
325
456
|
|
data/README_ORMSRCGEN
ADDED
@@ -0,0 +1,118 @@
|
|
1
|
+
ormsrcgen C ++ O/R mapping source code generator
|
2
|
+
===============================================================================
|
3
|
+
ormsrcgen (32|64) is a source code generator for C++ O/R mapping.
|
4
|
+
|
5
|
+
C++ does not allow to define classes dynamically. So we need to generate model
|
6
|
+
classes with the source code generator. You can use O/R mapping fast and easy
|
7
|
+
in C++ with it.
|
8
|
+
|
9
|
+
|
10
|
+
|
11
|
+
Introduction
|
12
|
+
-------------------------------------------------------------------------------
|
13
|
+
Related files of the generator is in `source/global/ormsrcgen/template`.
|
14
|
+
The descriptions of each files are:
|
15
|
+
|
16
|
+
* ormDataClass_template.cpp : Template of C ++ model class.
|
17
|
+
* ormDataClass_template.h : Template of C ++ model class.
|
18
|
+
* ormMapClass_template.cpp : Template of C ++ map class.
|
19
|
+
* ormMapClass_template.h : Template of C ++ map class.
|
20
|
+
* template.cnf : Template of the configuration file
|
21
|
+
* fieldNameList_sample.txt : Sample file of field name alias.
|
22
|
+
|
23
|
+
Edit `fieldNameList_sample.txt` and `template.cnf` as needed.
|
24
|
+
|
25
|
+
|
26
|
+
|
27
|
+
Command-line options
|
28
|
+
-------------------------------------------------------------------------------
|
29
|
+
Command line options are:
|
30
|
+
|
31
|
+
```
|
32
|
+
command line option:
|
33
|
+
-d [ --database_uri ] database uri ex:tdap://hostname/dbname?dbfile=trnasctd_schema
|
34
|
+
-t [ --table_name ] table name.
|
35
|
+
-c [ --class_name ] class name.
|
36
|
+
-f [ --conf_name ] configuration file.
|
37
|
+
|
38
|
+
-d :Specify the database URI.
|
39
|
+
-t :Specify the table name to generate the model class.
|
40
|
+
The class is generated for each table.
|
41
|
+
-c :Specify the name of the model class.
|
42
|
+
-f :Specify the path of configuration file.
|
43
|
+
```
|
44
|
+
|
45
|
+
In many cases, you can use same configuration file even if tables are different.
|
46
|
+
Template of configuration file is `source/global/ormsrcgen/template/template.cnf`.
|
47
|
+
You can copy and edit it.
|
48
|
+
|
49
|
+
|
50
|
+
|
51
|
+
Descriptions of the configuration file
|
52
|
+
-------------------------------------------------------------------------------
|
53
|
+
* `lang = (language)`
|
54
|
+
|
55
|
+
Specify the language of the code to be generated. Only `C++` is supported in
|
56
|
+
current version.
|
57
|
+
|
58
|
+
* `files = (number of file)`
|
59
|
+
|
60
|
+
Specify the number of template files required for a model. In the case of
|
61
|
+
C++, the number is `2`.
|
62
|
+
|
63
|
+
* `file1 = (file path) file2 = (file path) ... fileN = (file path)`
|
64
|
+
|
65
|
+
Specify the path of the template file, with the number that was specified in
|
66
|
+
`files=`.
|
67
|
+
Default values are `file1 = ormDataClass_template` `file2 = ormMapClass_template`,
|
68
|
+
but please specify the absolute path in actually.
|
69
|
+
|
70
|
+
* `saveDir = (output dir)`
|
71
|
+
|
72
|
+
Specify the output directory to save generated source code files.
|
73
|
+
|
74
|
+
* `setPrefix = (setter prefix)`
|
75
|
+
|
76
|
+
Specify the prefix of the setter method of member variables in the class.
|
77
|
+
If `setPrefix = set`is specified, the setter function for `name` field is:
|
78
|
+
|
79
|
+
```
|
80
|
+
setName(const char* v)
|
81
|
+
```
|
82
|
+
|
83
|
+
* `getPrefix = (getter prefix)`
|
84
|
+
|
85
|
+
Specify the prefix of the getter method as well as setPrefix.
|
86
|
+
|
87
|
+
* `externWord = (extern keyword)`
|
88
|
+
|
89
|
+
Add export keyword in class declaration when make shared libraries
|
90
|
+
such as `.SO` or `.DLL`.
|
91
|
+
|
92
|
+
```
|
93
|
+
class $externWord someModel
|
94
|
+
{
|
95
|
+
...
|
96
|
+
};
|
97
|
+
```
|
98
|
+
|
99
|
+
* `fieldRenameList = (alias list file)`
|
100
|
+
|
101
|
+
Normally, the member variable name of the class is same as the name of
|
102
|
+
field in the table. If you want to change the name, specify fieldRenameList
|
103
|
+
which contains alias list.
|
104
|
+
The fieldRenameList format is:
|
105
|
+
|
106
|
+
```
|
107
|
+
originalName1=alias1
|
108
|
+
originalName2=alias2
|
109
|
+
```
|
110
|
+
|
111
|
+
* `name_space = (namespace of model class)`
|
112
|
+
|
113
|
+
Specify the namespace of the model class.
|
114
|
+
|
115
|
+
* `name_space_map = (namespace of map class)`
|
116
|
+
|
117
|
+
Specify the namespace of the map class.
|
118
|
+
The map class maps the members of the model class and the fields in the table.
|
data/README_ORMSRCGEN-JA
ADDED
@@ -0,0 +1,115 @@
|
|
1
|
+
ormsrcgen C++ O/Rマッピングソースコードジェネレータ
|
2
|
+
===============================================================================
|
3
|
+
ormsrcgen(32|64) はC++ O/Rマッピングのためのソースコードジェネレータです。
|
4
|
+
|
5
|
+
C++では動的にクラスを定義することはできないため、ソースコードジェネレータで
|
6
|
+
モデルクラスを生成しコンパイルする形式を採ります。
|
7
|
+
これを使うとC++で簡単に高速なO/Rマッピングを行うことができます。
|
8
|
+
|
9
|
+
|
10
|
+
|
11
|
+
はじめに
|
12
|
+
-------------------------------------------------------------------------------
|
13
|
+
ジェネレータの関連ファイルは source/global/ormsrcgen/templateに格納されています。
|
14
|
+
それぞれのファイルの役割を説明します。
|
15
|
+
|
16
|
+
* ormDataClass_template.cpp : C++ モデルクラスのテンプレート
|
17
|
+
* ormDataClass_template.h : C++ モデルクラスのテンプレート
|
18
|
+
* ormMapClass_template.cpp : C++ マップクラスのテンプレート
|
19
|
+
* ormMapClass_template.h : C++ マップクラスのテンプレート
|
20
|
+
* template.cnf : 設定ファイルのひな形
|
21
|
+
* fieldNameList_sample.txt : フィールド名変換ファイルのサンプル
|
22
|
+
|
23
|
+
このうち、template.cnfとfieldNameList_sample.txtを必要に応じて編集します。
|
24
|
+
|
25
|
+
|
26
|
+
|
27
|
+
コマンドラインオプション
|
28
|
+
-------------------------------------------------------------------------------
|
29
|
+
コマンドラインオプションは以下の通りです。
|
30
|
+
|
31
|
+
```
|
32
|
+
command line options:
|
33
|
+
-d [ --database_uri ] database uri ex:tdap://hostname/dbname?dbfile=trnasctd_schema
|
34
|
+
-t [ --table_name ] table name
|
35
|
+
-c [ --class_name ] class name
|
36
|
+
-f [ --conf_name ] configuration filename
|
37
|
+
|
38
|
+
-d :データベースを指定します。
|
39
|
+
-t :生成するモデルのテーブルを指定します。生成はテーブルごとに行います。
|
40
|
+
-c :-tで指定したテーブルに対応するモデルのクラス名を指定します。
|
41
|
+
-f :その他の設定項目を記述したテキストファイル(configuration file)です。
|
42
|
+
```
|
43
|
+
|
44
|
+
configuration fileは、多くの場合、テーブルが異なっても共通の内容です。ひな形が
|
45
|
+
`source/global/ormsrcgen/template/template.cnf`として用意されています。
|
46
|
+
これをコピーして内容を編集します。
|
47
|
+
|
48
|
+
|
49
|
+
|
50
|
+
configuration fileの書式
|
51
|
+
-------------------------------------------------------------------------------
|
52
|
+
* `lang = (language)`
|
53
|
+
|
54
|
+
生成するコードの言語を指定します。現在のバージョンでは`C++`のみサポートされます。
|
55
|
+
|
56
|
+
* `files = (number of file)`
|
57
|
+
|
58
|
+
1つのモデルのために必要なテンプレートファイルの数を指定します。C++の場合は`2`です。
|
59
|
+
|
60
|
+
* `file1 = (file path) file2 = (file path) ... fileN = (file path)`
|
61
|
+
|
62
|
+
`files =`で指定した数のテンプレートファイルのパスを指定します。
|
63
|
+
デフォルトでは`file1 = ormDataClass_template` `file2 = ormMapClass_template`
|
64
|
+
となっていますが、実際に使用する際は絶対パスで指定してください。
|
65
|
+
|
66
|
+
* `saveDir = (output dir)`
|
67
|
+
|
68
|
+
生成したソースコードを保存するフォルダを指定します。
|
69
|
+
|
70
|
+
* `setPrefix = (setter prefix)`
|
71
|
+
|
72
|
+
クラスのメンバ変数に値をセットするアクセスメソッド名のプレフィックスを指定します。
|
73
|
+
例えば、`setPrefix = set`とした場合、`name`というフィールドの値をセットする
|
74
|
+
メンバ関数は以下のようになります。
|
75
|
+
|
76
|
+
```
|
77
|
+
setName(const char* v)
|
78
|
+
```
|
79
|
+
|
80
|
+
* `getPrefix = (getter prefix)`
|
81
|
+
|
82
|
+
setPrefixと同様に値の取得メソッドにつけられるプレフィックスを指定します。
|
83
|
+
|
84
|
+
* `externWord = (extern keyword)`
|
85
|
+
|
86
|
+
出力されたクラスをDLLやSOなどのライブラリに含めて共有する場合は、class 宣言の後ろに
|
87
|
+
エクスポートのためのキーワードを付加できます。
|
88
|
+
|
89
|
+
```
|
90
|
+
class $externWord someModel
|
91
|
+
{
|
92
|
+
...
|
93
|
+
};
|
94
|
+
```
|
95
|
+
|
96
|
+
* `fieldRenameList = (alias list file)`
|
97
|
+
|
98
|
+
通常はテーブルに含まれるフィールド名がそのままクラスのメンバ変数名になります。
|
99
|
+
異なる名前に変更したい場合は、このfieldRenameListで変換リストの書かれたテキスト
|
100
|
+
ファイルを指定できます。変換リストは以下のように、変換前=変換後の形式で指定します。
|
101
|
+
|
102
|
+
```
|
103
|
+
customer_id=id
|
104
|
+
customer_name=name
|
105
|
+
```
|
106
|
+
|
107
|
+
* `name_space = (namespace of model class)`
|
108
|
+
|
109
|
+
モデルクラスの名前空間を指定します。
|
110
|
+
|
111
|
+
* `name_space_map = (namespace of map class)`
|
112
|
+
|
113
|
+
C++の場合、モデルクラスとともに、テーブルとクラスの復元と保存をマッピングする
|
114
|
+
mapクラスも同時に生成されます。
|
115
|
+
name_space_mapはそのマップクラスの名前空間を指定します。
|
data/bin/1.9/transactd.so
CHANGED
Binary file
|
data/bin/2.0/transactd.so
CHANGED
Binary file
|
Binary file
|
Binary file
|