ADOData コントロールの使用
ADOData コントロールは、Microsoft ActiveX データ オブジェクト (ADO) を使用して、データ バインド コントロールとデータ プロバイダー間の接続を迅速に確立します。データ バインド コントロールは、DataSource プロパティを持つ任意のコントロールです。データ プロバイダーには、OLEDB 仕様に準拠する任意のデータ ソースを使用できます。 Visual Basic のクラス モジュールを使用して、サブセット データ プロバイダーを簡単に作成することもできます。
ActiveX データ オブジェクトをアプリケーションで直接使用できますが、ADOData コントロールには、グラフィカル コントロール (「進む」ボタンと「戻る」ボタンを備えた) であること、および最小限のコードを使用できる使いやすいインターフェイスという利点があります。データベースアプリケーション。
Visual Basic の「ツールボックス」では、チェック ボックス、コンボ ボックス、イメージ、ラベル、リスト ボックス、ピクチャ ボックス、テキスト ボックス コントロールなど、多くのコントロールをデータ バインド コントロールとして使用できます。さらに、Visual Basic には、DataGrid、DataCombo、Chart、DataList コントロールなど、いくつかのデータ バインディング ActiveX コントロールも含まれています。ユーザーは、独自のデータ バインドされた ActiveX コントロールを作成したり、他の開発者からコントロールを購入したりすることもできます。
Visual Basic の以前のバージョンでは、データ アクセス用に組み込みの Data コントロールと RemoteData コントロール (RDC) が提供されていました。どちらのコントロールも、下位互換性を提供するために Visual Basic に引き続き組み込まれています。ただし、ADO の方が適応性が高いため、ユーザーは ADOData コントロールを使用して新しいデータベース アプリケーションを作成することをお勧めします。
詳細データ バインドされたコントロールの完全なリストは、「ADOData コントロールにバインドされたコントロール」にあります。これらの組み込みデータ コントロールまたは RemoteData コントロールの使用方法については、「データ コントロールの使用」または「RemoteData コントロールの使用」を参照してください。データプロバイダーの作成の詳細については、「データ認識クラスの作成」を参照してください。
考えられる用途
ローカルまたはリモートのデータベースに接続します。
指定されたデータベース テーブルを開くか、構造化照会言語 (SQL) クエリ、ストアド プロシージャ、またはデータベース内のテーブルのビューに基づいてレコードのセットを定義します。
データ フィールドの値をデータ バインド コントロールに渡し、そこで値を表示または変更できます。
新しいレコードを追加するか、バインドされたコントロールに表示されるデータの変更に基づいてデータベースを更新します。
クライアントまたはフロントエンド データベース アプリケーションを作成するには、ADOData コントロールとその他の必要な Visual Basic コントロールをフォームに追加します。ニーズに基づいて、フォームに複数の ADOData コントロールを配置できます。ただし、このコントロールは接続を作成するかなり「高価な」方法であり、最初のコントロールに少なくとも 2 つの接続があり、後続の各コントロールに少なくとも 1 つ以上の接続がある場合に使用する必要があることに注意してください。
最小限のコードでフロントエンド データベース アプリケーションを作成する
設計時にいくつかのプロパティを設定することで、最小限のコードでデータベース アプリケーションを作成できます。 OLEDB データ ソースを使用している場合は、対応する Microsoft DataLinkName (.MDL) をマシン上に作成する必要があります。段階的な例については、「Northwind の OLEDBDataLink の作成」を参照してください。
単純なフロントエンド データベース アプリケーションを作成するには、次の手順を実行します。
1. ADOData コントロールをフォーム上に配置します (アイコンのツールチップは ADODC)。コントロールが「ツールボックス」にない場合は、CTRL T キーを押して「パーツ」ダイアログ ボックスを表示します。 [コンポーネント] ダイアログ ボックスで、[MicrosoftADODataControl] をクリックします。
2. [ツールボックス] で、[ADOData コントロール] をクリックして選択します。次に、F4 キーを押して、「プロパティ」ウィンドウを表示します。
3. [プロパティ] ウィンドウで、[接続文字列] をクリックして、[接続文字列] ダイアログ ボックスを表示します。
4. Microsoft DataLinkfile (.MDL) を作成した場合は、[OLEDB ファイルを使用する] を選択し、[参照] をクリックしてコンピュータ上のファイルを見つけます。 DSN を使用する場合は、「ODBC データ ソース名を使用」をクリックしてボックスから DSN を選択するか、「新規」をクリックして DSN を作成します。接続文字列を作成する場合は、[Use ConnectionString] を選択し、[生成] をクリックして、[データ リンク プロパティ] ダイアログ ボックスを使用して接続文字列を作成します。接続文字列を作成したら、「OK」をクリックします。 ConnectionString プロパティには、次の行のような文字列が設定されます。
driver={SQLServer};server=bigsmile;uid=sa;pwd=pwd;database=pubs
5. [プロパティ] ウィンドウで、[レコード ソース] プロパティを SQL ステートメントに設定します。例: SELECT*FROMTitlesWHEREAuthorID=72 テーブルにアクセスするときは、常に WHERE 句を含める必要があります。そうしないとテーブル全体がロックされ、他のユーザーにとって重大な障害となります。
6. フォーム上に別の「テキスト ボックス」コントロールを配置して、データベース情報を表示します。
7. [プロパティ] ウィンドウで、Text1 の [データ ソース] プロパティを ADOData コントロール (ADODC1) の名前に設定します。これにより、テキスト ボックスと ADOData コントロールがバインドされます。
8. [プロパティ] ウィンドウで [データ フィールド] をクリックして、使用可能なフィールドのドロップダウン リストを表示します。表示したいフィールドの名前をクリックします。
9. アクセスする他のフィールドごとに手順 6、7、および 8 を繰り返します。
10. F5 キーを押してアプリケーションを実行します。ユーザーは ADOData コントロールの 4 つの矢印ボタンを使用して、データの先頭やレコードの末尾に到達したり、データ内のあるレコードから別のレコードに移動したりできます。
プログラムで ConnectionString、Source、DataSource、および DataField を設定する 次のコードは、プログラムでこれら 4 つのプロパティを設定する方法を示しています。 DataSource プロパティを設定するには Set ステートメントを使用する必要があることに注意してください。
PRivateSubForm_Load()
ADODC1あり
.ConnectionString=driver={SQLServer};&_
サーバー=ビッグスマイル;uid=sa;pwd=pwd;データベース=パブ
.RecordSource=Select*FromTitlesWhereAuthorID=7
EndWith
SetText1.DataSource=ADODC1
Text1.DataField=タイトル
EndSub
ADOData コントロール イベント
ADOData コントロールは、いくつかのプログラム可能なイベントを提供します。次の表では、これらのイベントとその発生タイミングについて説明しますが、この表はこれらのイベントが発生するすべての条件を完全にリストしたものではありません。詳細については、個々のイベントのリファレンス トピックを参照してください。
詳細については、 ADOData コントロールを段階的に使用しようとしている場合は、「DataGrid と ADO データ コントロールを使用した単純なデータベース アプリケーションの作成」、「単純な DataCombo アプリケーションの作成」、および「DataList に接続された DataGrid の作成」を参照してください。コントロール。"
ADOData コントロールのデータベース関連のプロパティを設定する
接続を作成するときは、接続文字列、OLEDB ファイル (.MDL)、または ODBC データ ソース名 (DSN) の 3 つのソースのいずれかを使用できます。 DSN を使用する場合、コントロールの他のプロパティを変更する必要はありません。
ただし、データベース テクノロジについて詳しく知っている場合は、ADOData コントロールに表示される他のいくつかのプロパティを変更できます。次のリストでは、このコントロールのデータベース関連のプロパティのいくつかについて説明します。このリストは、これらのプロパティを設定する論理的な順序も示しています。
データベース テクノロジは複雑であるため、次の提案はルールとして考慮されるものではないことに注意してください。
1.ConnectionString - ConnectionString プロパティは、接続を確立するために必要なすべての設定値を含むことができる文字列です。この文字列で渡されるパラメータはドライバー固有です。たとえば、ODBC ドライバーでは、文字列にドライバー、プロバイダー、デフォルトのデータベース、サーバー、ユーザー名、パスワードなどを含めることができます。
2.UserName - データベースがパスワードで保護されている場合、この属性を指定する必要があります。 Provider プロパティと同様に、このプロパティは ConnectionString で指定できます。 ConnectionString プロパティと UserName プロパティの両方が指定されている場合、ConnectionString の値が UserName プロパティの値をオーバーライドします。
3.PassWord - 保護されたデータベースにアクセスする場合にも必要です。 Provider 属性や UserName 属性と同様、ConnectionString 属性にパスワードを指定した場合、この属性に指定した値は上書きされます。
4.RecordSource - このプロパティには通常、データベースから取得する情報を決定するために使用されるステートメントが含まれます。
5.CommandType - CommandType 属性は、Source 属性が SQL ステートメント、テーブルの名前、ストアド プロシージャ、または不明なタイプであるかどうかをデータ プロバイダーに伝えます。
6.CursorLocation - この属性は、カーソルの位置 (カーソルがクライアント上にあるかサーバー上にあるか) を指定します。
優れた。この決定は、次のプロパティの設定に影響します。
7.CursorType - CursorType 属性は、レコード セットが静的タイプ、動的タイプ、またはキー セット カーソル タイプのいずれであるかを決定します。
8.LockType - LockType プロパティは、編集中のデータを他の人が変更しようとしたときにどのようにロックするかを決定します。この LockType プロパティをどのように設定するかは、複数の要因に依存する複雑な決定です。
9.Mode - Mode 属性は、レコードセットに対して実行する操作を決定します。たとえば、レポートを作成するだけの場合は、このプロパティを読み取り専用に設定するとパフォーマンスが向上します。
10.MaxRecords - このプロパティはカーソルのサイズを決定します。このプロパティの値がどのように決定されるかは、取得されるレコードのサイズと、コンピューター上で利用可能なリソース (メモリ) の量によって異なります。大きなレコード (多数の列と長い文字列を含む) は、小さなレコードよりも多くのリソースを必要とします。したがって、MaxRecords プロパティを大きくしすぎることはできません。
11.ConnectionTimeout - 接続の確立を待機する時間を秒単位で設定します。接続がタイムアウトすると、エラーが返されます。
12.CacheSize - CacheSize 属性は、カーソルから取得できるレコードの数を指定します。 CursorLocation がクライアントに設定されている場合、このプロパティは小さな数値 (おそらく 1) にのみ設定できますが、悪影響はありません。カーソル位置がサーバー側にある場合は、この数を一度に表示できる行数に調整できます。たとえば、DataGrid コントロールを使用して 30 行を表示する場合、CacheSize を 60 に設定すると、それ以上データを取得せずにスクロールできるようになります。
13.BOFAction、EOFAction - これら 2 つのプロパティは、コントロールがカーソルの先頭と末尾にあるときの動作を決定します。使用可能なオプションには、先頭または末尾に留まる、最初または最後のレコードに移動する、または新しいレコードを追加する (末尾のみ) などがあります。
ADOData コントロールにバインドされたコントロール
DataSource プロパティを持つコントロールはすべて ADOData コントロールにバインドできます。次の組み込みコントロールを ADOData コントロールにバインドできます。
チェックボックス
コンボボックス
画像
ラベル
リストボックス
ピクチャーボックス
テキストボックス
次のデータ バインド ActiveX コントロールも、Visual Basic のすべてのバージョンで使用できます。
データリスト
データコンボ
データグリッド
MicrosoftHierarchicalFlexGrid
リッチテキストボックス
マイクロソフトチャート
日時ピッカー
画像コンボ
月ビュー
最後に、ユーザーは DataBinding オブジェクトを使用して、独自のデータ バインドされた ActiveX コントロールを作成できます。
独自のデータ バインド コントロールの作成の詳細については、「データ バインド ユーザー コントロールの作成」を参照してください。
->