TTClassesは様々な方法で使用が可能ですが、次の一般的なアプローチは、多くのプロジェクトでの成功実績があり、様々なアプリケーションに簡単に適用できます。
リアルタイム・アプリケーションでは、最適なパフォーマンスを得るために、準備済のSQL文を排他的に使用する必要があります。アプリケーションで使用されるすべてのSQL文について、文ごとに個別のTTCmdオブジェクトを使用して、アプリケーションの開始時に準備するのが理想的です。ODBCでは(したがってC++クラスでも)、文が特定の接続にバインドされるので、アプリケーションで使用されるすべての文の完全なセットが、TimesTen Databaseとのあらゆる接続に関連付けられるということがよく起こります。
最適なパフォーマンスを簡単に実現する方法は、TTConnectionから導出したアプリケーション固有のクラスを開発することです。たとえば、「XYZ」という名前のアプリケーションに対して、TTConnectionから導出した「XYZConnection」という名前のクラスを作成します。XYZConnectionクラスには、アプリケーションで使用できる準備済のSQL文を表すプライベートTTCmdメンバーが含まれます。さらに、XYZConnectionクラスでは、このプライベートTTCmdメンバーを使用して、アプリケーション固有のデータベース機能を実装する新しいパブリック・メソッドを提供します。
例として、次のようなクラスを想定します。
この例では、XYZConnectionオブジェクトが、アプリケーション固有の3つの操作(addUser、updateUserおよびqueryUser)の実行に使用できるTimesTenへの接続となっています。これらの操作はアプリケーション固有のものです(預金残高の格納など)。この3つのメソッドの実装では、アプリケーションの特定の機能を実装するために、クラス内で提供されるupdateData、insertDataおよびqueryData TTCmdオブジェクトが使用される可能性があります。
アプリケーションで使用するSQL文を準備させるために、XYZConnectionクラスはTTConnection基本クラスによって提供されるConnectメソッドをオーバーロードします。XYZConnection::Connect()メソッドは、(実際にデータベース接続を確立するために)基本クラスのConnectメソッドをコールしますが、TTCmdオブジェクトごとにPrepareメソッドもコールして、後で使用するSQL文を準備させます。
例:
このConnectメソッドによって、XYZConnectionが完全に操作可能になります。Connectがコールされた後に、アプリケーション固有のメソッドが完全に機能します。
このアプリケーション設計のアプローチは、TTConnectionPoolの設計でうまく機能します。アプリケーションでは、XYZConnection型のオブジェクトを多数作成し、それらをTTConnectionPoolに追加できます。アプリケーションはその後、TTConnectionPool::ConnectAll()をコールすることで、コード内の単一行において、プール内のすべての接続をデータベースに接続させるとともに、すべてのSQL文を準備させることができます。
このアプリケーション設計のアプローチによって、アプリケーションのデータベース・コンポーネントをアプリケーションの残りの部分から分離できます。つまり、XYZConnectionクラス(または、ご使用のアプリケーションでのバージョン)のみにデータベース固有のコードが含まれます。
このタイプの設計例は、TTClassesに付属するサンプル・プログラムのいくつかに見られます。最良かつ最も簡単な例は、<demo/ttclasses/sample.cpp>です。
他の構成が可能なことに注意してください。アプリケーションで使用されるSQL文が、アプリケーション自体にハードコードされるのではなく、データベース内の表にリストされるよう、このスキームをさらに拡張したユーザーもいます。このようにすれば、アプリケーションの変更ではなくデータベースの変更によって、データベースの機能の変更を実装できます。