DataControl オブジェクト (RDS)
データ クエリ Recordset を 1 つ以上のコントロール (テキスト ボックス、グリッド コントロール、コンボ ボックスなど) にバインドして、Recordset データを Web ページに表示します。
重要
Windows 8 および Windows Server 2012 から、RDS サーバー コンポーネントが Windows オペレーティング システムに含まれなくなりました (詳細については、Windows 8 および Windows Server 2012 の互換性クックブックを参照してください)。 RDS クライアント コンポーネントは、今後のバージョンの Windows で削除される予定です。 新規の開発作業ではこの機能を使用しないようにし、現在この機能を使用しているアプリケーションは修正することを検討してください。 RDS を使用するアプリケーションを、WCF Data Service に移行する必要があります。
構文
<OBJECT CLASSID="clsid:BD96C556-65A3-11D0-983A-00C04FC29E33" ID="DataControl"
<PARAM NAME="Connect" VALUE="DSN=DSNName;UID=MyUserID;PWD=MyPassword;">
<PARAM NAME="Server" VALUE="https://awebsrvr">
<PARAM NAME="SQL" VALUE="QueryText">
</OBJECT>
解説
RDS.DataControl オブジェクトのクラス ID は BD96C556-65A3-11D0-983A-00C04FC29E33 です。
Note
RDS.DataSpace または RDS.DataControl オブジェクトは読み込まれないというエラーが発生した場合、正しいクラス ID を使用していることを確認してください。 これらのオブジェクトのクラス ID は、バージョン 1.0 および 1.1 から変更されています。 また、RDS DataControl オブジェクトを使用する場合は、null 許容列も設定する必要があることに注意してください。
基本的なシナリオでは、RDS.DataControl オブジェクトの SQL、Connect、Server の各プロパティのみを設定する必要があります。これによって、既定のビジネス オブジェクト RDSServer.DataFactory が自動的に呼び出されます。
カスタム ビジネス オブジェクトで機能を置き換えることができるため、RDS.DataControl 内のすべてのプロパティが省略可能です。
Note
複数の結果のクエリを実行すると、最初の Recordset のみが返されます。 複数の結果セットが必要な場合は、それぞれを独自の DataControl に割り当てます。 複数の結果に対するクエリの例は "Select * from Authors, Select * from Topics"
です。
RDS.DataControl オブジェクトを使用するときに接続文字列に "DFMode=20;" を追加すると、データの更新時にサーバーのパフォーマンスを向上させることができます。 この設定では、サーバー上の RDSServer.DataFactory オブジェクトによって、リソース消費量が少ないモードが使用されます。 ただし、この構成では以下の機能は使用できません。
パラメーター化されたクエリの使用。
Execute メソッドを呼び出す前にパラメーターまたは列の情報を取得。
Transact Updates を True に設定。
行の状態の取得。
Resync メソッドの呼び出し。
Update Resync プロパティを使用した (明示的または自動的な) 更新。
Command または Recordset プロパティの設定。
adCmdTableDirect の使用。
RDS.DataControl オブジェクトは、既定で非同期モードで実行されます。 アプリケーションの同期実行が必要な場合は、次の例に示すように、ExecuteOptions パラメーターを adcExecSync に、FetchOptions パラメーターを adcFetchUpFront と等しく設定します。
<OBJECT CLASSID="clsid:BD96C556-65A3-11D0-983A-00C04FC29E33"
ID="DataControl"
<PARAM NAME="Connect" VALUE="DSN=DSNName;UID=MyUserID;PWD=MyPassword;">
<PARAM NAME="Server" VALUE="https://awebsrvr">
<PARAM NAME="SQL" VALUE="QueryText">
<PARAM NAME="ExecuteOptions" VALUE="1"> <PARAM NAME="FetchOptions" VALUE="1">
</OBJECT>
RDS.DataControl オブジェクトを 1 つ使用して、1 つのクエリの結果を 1 つ以上のビジュアル コントロールにリンクします。 たとえば、名前、居住地、出生地、年齢、優先顧客状態などの顧客データを要求するクエリをコーディングするとします。 1 つの RDS.DataControl オブジェクトを使用して、3 つの別個のテキスト ボックスに顧客の名前、年齢、地域、チェック ボックスに優先顧客状態、グリッド コントロールにすべてのデータを表示することができます。
別の RDS.DataControl オブジェクトを使用して、複数のクエリの結果を異なるビジュアル コントロールにリンクします。 たとえば、1 つのクエリを使用して顧客に関する情報を取得し、2 つ目のクエリを使用して顧客が購入した商品に関する情報を取得するとします。 最初のクエリの結果を 3 つのテキスト ボックスと 1 つのチェック ボックスに表示し、2 番目のクエリの結果をグリッド コントロールに表示する必要があります。 既定のビジネス オブジェクト (RDSServer.DataFactory) を使用する場合は、次の操作を行う必要があります。
2 つの RDS.DataControl オブジェクトを Web ページに追加します。
2 つのクエリ (2 つの RDS.DataControl オブジェクトの SQL プロパティごとに 1 つずつ) を記述します。 1 つの RDS.DataControl オブジェクトには、顧客情報を要求する SQL クエリが含められ、2 つ目には、顧客が購入した商品の一覧を要求するクエリが含められます。
バインドされた各コントロールの OBJECT タグで、DATAFLD 値を指定して、各ビジュアル コントロールに表示するデータの値を設定します。
1 つの Web ページで OBJECT タグを使用して埋め込むことができる RDS.DataControl オブジェクトの数にカウント制限はありません。
Web ページで RDS.DataControl オブジェクトを定義する場合、1 などの 0 以外の Height および Width 値を使用します (余分なスペースが含まれないようにするため)。
リモート データ サービス クライアント コンポーネントは、Internet Explorer 4.0 の一部として既に含まれています。そのため、RDS.DataControl オブジェクト タグに CODEBASE パラメーターを含める必要はありません。
インターネット エクスプローラー 4.0 以降では、HTML コントロールと ActiveX コントロールがアパートメント モデル コントロールとしてマークされている場合にのみ、データにバインドできます。
Note
Microsoft Visual Basic ユーザーRDS.DataControl でのスクリプト作成は安全であり、Web ベースのアプリケーションでのみ使用されます。 これには Visual Basic クライアント アプリケーションは必要ありません。
このセクションでは、次のトピックを扱います。