この章では、TTClasses開発環境の使用を開始する際に役立つ情報を示します。
TTClassesは、TimesTenのインストール時にコンパイルおよび事前構成されます。TTClassesがコンパイルされたものとは別のC++ランタイムを使用する場合は、make
(UNIX)またはnmake
(Microsoft Windows)ユーティリティを使用してライブラリを再コンパイルする必要があります。
ここでは、TTClasses自体の環境変数とコンパイルについての説明、およびTTClassesアプリケーションのコンパイルとリンクに関する情報を示し、TTClassesのクイック・スタート・デモ・アプリケーションを紹介します。この付録は、次の項で構成されています。
この項では、TTClassesの設定方法について、次の内容で説明します。
この項では、UNIX環境でTTClassesを設定する方法を、次の内容で説明します。
TTClassesを使用するには、シェル環境変数がinstall_dir
/bin
ディレクトリの適切なttenv
スクリプト、つまりUNIXプラットフォームの場合ttenv.sh
またはttenv.csh
のいずれか(シェルに応じていずれかを使用)で正しく設定されていることを確認します。詳細は、『Oracle TimesTen In-Memory Databaseインストレーション・ガイド』の環境変数に関する説明を参照してください。
これを直接実行するかわりに、必要なスクリプトの行をログイン初期化スクリプト(例: .profile
または.cshrc
)に追加することができます。
アプリケーションのリンクで問題が発生する場合は、TTClassesのコンパイルに使用したものとは別のC++ランタイムを使用したことが原因である可能性があるため、ライブラリをmake
ユーティリティで再コンパイルします。
TTClassesを再コンパイルする場合は、ttclasses
ディレクトリに移動します(ここでinstall_dir
は、TimesTenのインストール・ディレクトリです)。
$ cd install_dir/ttclasses
最初からコンパイルしなおすには、make clean
を実行します。
$ make clean
直接接続の場合にTTClassesを再コンパイルするには、次のようにします。
$ make
クライアント/サーバー接続の場合にTTClassesを再コンパイルするには、MakefileCS
Makeファイルを使用します。
$ make -f MakefileCS
UNIX環境でTTClassesをコンパイルする際に、次のmake
ターゲット・オプションを利用できます。
all
: 共有最適化済ライブラリ(複数可)をビルドします(デフォルト)。これは、直接接続の場合はMakefile
と、クライアント/サーバー接続の場合はMakefileCS
と使用します。
make
ターゲットを指定するには、コマンドラインでmake
ターゲット名を使用します。
たとえば、TTClassesの共有デバッグ・バージョンをビルドするには、次を実行します。
$ make clean shared_debug
この項では、Windows環境にTTClassesを設定する方法について、次の内容で説明します。
注意: Windowsでは、TTClassesライブラリはコンパイル後、自動的にインストールされます。 |
再コンパイルの前に、PATH
、INCLUDE
およびLIB
環境変数が正しいVisual Studioのディレクトリをポイントしていることを確認します。これには、適切なVisual Studio C++バッチ・ファイル(たとえば、VCVARS32.BAT
またはVSVARS32.BAT
)を実行します。
その後、次を実行してTimesTenの環境変数を設定します(インストール時に設定されていない場合)。
install_dir\bin\ttenv.bat
アプリケーションのリンクで問題が発生する場合は、TTClassesのコンパイルに使用したものとは別のC++ランタイムを使用したことが原因である可能性があるため、ライブラリをnmake
ユーティリティで再コンパイルします。
TTClassesを再コンパイルする場合は、ttclasses
ディレクトリに移動します(ここでinstall_dir
は、TimesTenのインストール・ディレクトリです)。
install_dir\ttclasses
最初からコンパイルしなおすには、nmake clean
を実行します。
install_dir\ttclasses> nmake clean
その後、再コンパイルします。デフォルトで、これは直接接続およびクライアント/サーバー接続の両方で使用できます。
install_dir\ttclasses> nmake
必要に応じて、TTClassesのMakeファイルを手動で変更して、TTClassesコンパイラ・マクロにフラグを追加できます。UNIXの場合、-D
flagname
を追加します。Windowsの場合、/D
flagname
を追加します。
この項では、次のコンパイラ・マクロについて説明します。
TTClassesでにC++例外がスローさせるようにするには、-DTTEXCEPT
フラグを使用してTTClassesとアプリケーションをコンパイルします。(TTClassesはデフォルトでこの方法でコンパイルされます。)すべてのTTClasses関数コールの前後に{try/catch}
ブロックを配置し、TTStatus
型の例外を捕捉します。
または、推奨されませんが、TTClassesとアプリケーションをTTEXCEPT
を無効にしてコンパイルする操作モードもあります。このモードでは、以前のTimesTenリリースの場合のように、明示的なTTStatus&
パラメータを使用した古いメソッド・バージョンを使用してエラーが処理されます。
「TTStatus」を参照してください。
C++ストリームには複数のタイプがあり、それぞれに互換性はありません。TimesTenは2つの関連フラグを提供します。アプリケーションで使用するストリームに応じて、設定するフラグが決まったり、またはいずれのフラグも設定しないかどうかが決まります(次に、新しいストリーム型から古い型の順に示します)。
<iostream>
を含め、ostringstream
クラスを使用するストリームの場合、TTC_USE_STRINGSTREAM
フラグを設定します。
<iostream>
を含め、ostrstream
クラスを使用するストリームの場合、いずれのフラグも設定しません。これは、ほとんどのプラットフォームおよびコンパイラのデフォルトです。
<iostream.h>
を含め、ostrstream
クラスを使用するストリームの場合、USE_OLD_CPP_STREAMS
フラグを設定します。これは、一部の古いプラットフォームおよびコンパイラのデフォルトです。
TTClasses Makeファイルを確認します。フラグが適切に設定されていない場合、Makeファイルを適切に更新して、TTClassesを再コンパイルした後、以前のTTClassesライブラリ・ファイルを再コンパイルしたものに置き換えます。
以降の項も参照してください。
このコンパイラ・フラグは、ostringstream
クラスを使用しC++ストリーム・タイプを確実にサポートするC++コンパイラで使用するためのものです。プログラムでC++ストリーム・コードを使用し、<iostream>
を含め、ostringstream
クラスを使用する場合、TTClassesは-DTTC_USE_STRINGSTREAM
も設定してコンパイルする必要があります。
その場合、USE_OLD_CPP_STREAMS
フラグは設定しないことも注意します。
注意: バージョン3.2以上のgcc では、デフォルトでTTC_USE_STRINGSTREAM フラグがinstall_dir /include/ttclasses/TTIostream.h に設定されています。 |
追加のデバッグ情報を生成するには、-DTTDEBUG
を使用してTTClassesをコンパイルします。この追加情報はパフォーマンスを多少低下させるため、このフラグは(本番ではなく)開発システムでのみ使用してください。
64-bitのTimesTenアプリケーションを作成する場合は、-DTT_64BIT
を使用してTTClassesをコンパイルします。
ここでは、UNIXおよびWindowsでTTClassesアプリケーションをコンパイルおよびリンクする方法について説明します(WindowsでODBCドライバ・マネージャを使用する場合の考慮事項に関する項もあります)。
また、関連情報については『Oracle TimesTen In-Memory Database C開発者ガイド』の次の項を参照してください。
ダイレクト・ドライバとクライアント・ドライバの使用の対比、Windows上でドライバ・マネージャを使用するかどうかなど、TimesTenのリンク・オプションに関する一般情報については、リンク・オプションに関する説明
アプリケーションのコンパイルおよびリンクに関する説明
アプリケーションをコンパイルする場合、install_dir
/include/ttclasses
ディレクトリにあるTTClassesヘッダー・ファイルを含めます。これは、このディレクトリのTTInclude.h
を、次のように含めるだけで実行できます。
次のコンパイル・コマンドを使用します。
-Iinstall_dir/include
コードで、次の行を使用します。
#include <ttclasses/TTInclude.h>
TTClasses XLAプログラムには、次も含める必要があります。
#include <ttclasses/TTXla.h>
次の表に、UNIXプラットフォームでアプリケーションのリンクに使用できるTTClassesライブラリをリストします。
使用方法 | ライブラリ |
---|---|
TimesTen直接接続 | libttclasses.so |
TimesTenクライアント/サーバー接続 | libttclassesCS.so |
たとえば、次をリンク・コマンドに追加すると、クライアント・ドライバが使用されます。
-Linstall_dir/lib -lttclassesCS
-L
オプションを指定すると、リンカーでライブラリ・ファイル用のTimesTen lib
ディレクトリが検索されます。-lttclassesCS
オプションを指定すると、ドライバでリンクが行われます。
Solarisでは、デフォルトのTimesTen ODBCクライアント・ドライバは、Studio 11を使用してコンパイルされています。このライブラリによって、Sun Studio 11 C/C++コンパイラでコンパイルされたアプリケーションをTimesTen Clientに直接リンクできます。
AIXでは、アプリケーションとTimesTen ODBCクライアント・ドライバをリンクする場合、リンク・コマンドには、クライアント・ドライバの後に、C++ランタイム・ライブラリを含める必要があります(クライアント・ドライバはC++で記述されており、AIXでは自動的にはリンクされないため)。
-Linstall_dir/lib -lttclassesCS -lC_r
quickstart/sample_code/ttclasses
ディレクトリのMakeファイルを使用すると、独自のMakeファイルを作成できます。
アプリケーションをコンパイルする場合、install_dir
\include\ttclasses
ディレクトリにあるTTClassesヘッダー・ファイルを含めます。これは、このディレクトリのTTInclude.h
を、次のように含めるだけで実行できます。
次のコンパイル・コマンドを使用します。
/Iinstall_dir\include
コードで、次の行を使用します。
#include <ttclasses/TTInclude.h>
TTClasses XLAプログラムには、次も含める必要があります。
#include <ttclasses/TTXla.h>
次の表に、Windowsプラットフォームでアプリケーションのリンクに使用できるTTClassesライブラリをリストします。
使用方法 | ライブラリ |
---|---|
TimesTen直接接続 | ttclasses1122.lib |
TimesTenクライアント/サーバー接続 | ttclasses1122CS.lib |
Microsoft ODBCドライバ・マネージャ | ttclasses1122DM.lib
次の「ODBCドライバ・マネージャ使用時の考慮事項(Windows)」の項を参照してください。 |
リンク・コマンドに、install_dir
\lib\ttclasses1122.lib
などの適切なライブラリを追加します。
quickstart\sample_code\ttclasses
ディレクトリのMakeファイルを使用すると、独自のMakeファイルを作成できます。
WindowsでODBCドライバ・マネージャを使用する場合、TTClassesには次の制限があることに注意してください。(これらの制限は、TimesTenクイック・スタートで提供されているデモのttdm
ドライバ・マネージャには適用されません。)
XLA機能はサポートされません。
REF CURSOR機能はサポートされません。
このドライバ・マネージャでは、ODBCの標準ではないLOBロケータAPIまたはLOBデータ型はサポートしていません。ただし、ユーザーは「LOBの使用」で説明するとおり、LOBの簡易データ・インタフェースは使用できます。
また、ドライバ・マネージャは、TimesTenで使用する場合、SQL_C_BIGINT
およびSQL_C_TINYINT
のODBC Cデータ型もサポートしていません。ドライバ・マネージャを使用する場合、シグネチャでこれらのデータ型のいずれかを使用するメソッドをコールすることはできません(たとえば、TTCmd
のgetColumn()
、getColumnNullable()
、getNextColumn()
、getNextColumnNullable()
、setParam()
、getParam()
またはBindParameter()
の各メソッドの適用可能なオーバーロード・バージョンなどです)。
注意: TimesTenでは、WindowsとUNIX両方用のドライバ・マネージャを用意しており、クイック・スタート・サンプル・アプリケーションが付属しています。このドライバ・マネージャは完全にはサポートされていません。TimesTenのダイレクト・ドライバおよびクライアント・ドライバのみのサポートに限定されています。前述の機能またはパフォーマンスの制限はありません。直接接続およびクライアント/サーバー接続の両方を同時に使用する必要のあるアプリケーションでは、パフォーマンスにあまり影響を与えず、このドライバ・マネージャを使用してこれを実現できます。 |
C++環境を構成した後、TimesTenクイック・スタート・デモ・アプリケーションをコンパイルおよび実行することで、すべてが適切に設定されたことを確認できます。クイック・スタートのようこそページ(install_dir
/quickstart.html
)の「SAMPLE PROGRAMS」の下にあるリンクで、次の事項の説明を参照してください。
デモ・スキーマおよび設定: build_sampledb
スクリプト(UNIXでは.sh
またはWindowsでは.bat
)は、サンプル・データベースおよびデモ・スキーマを作成します。デモの使用を開始する前に、これを使用する必要があります。
デモ環境および設定: ttquickstartenv
スクリプト(UNIXでは.sh
または.csh
、Windowsでは.bat
)(通常、TimesTenの設定に使用するttenv
スクリプトのスーパーセット)によって、デモ環境を設定します。いずれかのデモをコンパイルおよび実行するセッションに入るたびに、これを使用する必要があります。
デモおよび設定: install_dir
/quickstart/sample_code
ディレクトリの下にあるサブディレクトリには、TTClassesおよびXLA用のデモが提供されています。デモのコンパイルおよび実行方法については、サブディレクトリにあるREADMEファイルを参照してください。
デモの実行内容: 「SAMPLE PROGRAMS」の下の「TTClasses(C++)」をクリックすると、各デモの概要を参照できます。