プロバイダーでのプロパティの設定

必要なプロパティのプロパティ グループとプロパティ ID を検索します。 詳細については、「OLE DB プログラマーズ リファレンス」の OLE DB のプロパティに関するページを参照してください。

ウィザードによって生成されたプロバイダー コードから、プロパティ グループに対応するプロパティ マップを見つけます。 通常、プロパティ グループの名前はオブジェクトの名前に対応しています。 コマンドと行セットのプロパティは、コマンドまたは行セット内にあります。データ ソースと初期化プロパティは、データ ソース オブジェクト内にあります。

プロパティ マップに PROPERTY_INFO_ENTRY_EX マクロを追加します。 PROPERTY_INFO_ENTRY_EX は次の 4 つのパラメーターを受け取ります。

  • プロパティに対応するプロパティ ID。 プロパティ名の先頭の 7 文字 ("DBPROP_") を削除します。 たとえば、DBPROP_MAXROWS を追加する場合は、MAXROWS を 1 つ目の要素として渡します。 これがカスタム プロパティの場合は、完全な GUID 名 (たとえば、DBMYPROP_MYPROPERTY) を渡します。

  • プロパティのバリアント型 (「OLE DB プログラマーズ リファレンス」の OLE DB プロパティに関するページ)。 データ型に対応する VT_ 型 (VT_BOOL、VT_I2 など) を入力します。

  • プロパティが読み取り可能か書き込み可能か、またそのプロパティが属するグループを示すフラグ。 たとえば、次のコードは、行セット グループに属する読み取り/書き込みプロパティを示しています。

    DBPROPFLAGS_ROWSET | DBPROPFLAGS_READ | DBPROPFLAGS_WRITE
    
  • プロパティの基本値。 たとえば、ブール型の場合は VARIANT_FALSE、整数型の場合は 0 になります。 このプロパティは、変更されない限り、この値のままです。

    Note

    一部のプロパティは、ブックマークや更新など、他のプロパティに接続またはチェーンされています。 コンシューマーがあるプロパティを true に設定すると、別のプロパティも設定される場合があります。 OLE DB プロバイダー テンプレートは CUtlProps::OnPropertyChanged メソッドを介してこれをサポートしています。

Microsoft OLE DB プロバイダーによって無視されるプロパティ

Microsoft OLE DB プロバイダーは、次の OLE DB プロパティを無視します。

  • DBPROP_MAXROWS は読み取り専用のプロバイダー (つまり、DBPROP_IRowsetChangeDBPROP_IRowsetUpdatefalseの場合) の場合にのみ機能します。それ以外の場合、このプロパティはサポートされません。

  • DBPROP_MAXPENDINGROWS は無視されます。プロバイダーは独自の制限を指定します。

  • DBPROP_MAXOPENROWS は無視されます。プロバイダーは独自の制限を指定します。

  • DBPROP_CANHOLDROWS は無視されます。プロバイダーは独自の制限を指定します。

関連項目

OLE DB プロバイダー テンプレートの操作