プロバイダでのプロパティの設定
更新 : 2007 年 11 月
必要なプロパティのプロパティ グループとプロパティ ID を検索します。詳細については、『OLE DB Programmer's Reference』の「OLE DB Properties」を参照してください。
ウィザードで生成されたプロバイダ コードで、プロパティ グループに対応するプロパティ マップを検索します。通常、プロパティ グループの名前はオブジェクト名に対応します。コマンドと行セットのプロパティは、コマンドまたは行セットにあります。データ ソースと初期化のプロパティは、データ ソース オブジェクトにあります。
プロパティ マップで、PROPERTY_INFO_ENTRY_EX マクロを追加します。PROPERTY_INFO_ENTRY_EX は、4 つのパラメータを持ちます。
プロパティのプロパティ ID。プロパティ名から最初の 7 文字 ("DBPROP_") を削除する必要があります。たとえば、DBPROP_MAXROWS を追加する場合は、MAXROWS を最初の要素として渡します。これがカスタム プロパティである場合は、GUID 名全体 (DBMYPROP_MYPROPERTY など) を渡します。
プロパティのバリアント型 (『OLE DB Programmer's Reference』の「OLE DB Properties」を参照)。データ型に対応する VT_ の型 (VT_BOOL や VT_I2 など) を入力します。
プロパティが読み取りおよび書き込み可能かどうかを示すフラグと、プロパティが属するグループ。たとえば、次のコードは行セット グループに属する読み取り/書き込みプロパティを示します。
DBPROPFLAGS_ROWSET | DBPROPFLAGS_READ | DBPROPFLAGS_WRITE
プロパティの基本値。これには、ブール型の VARIANT_FALSE や整数型の 0 などがあります。プロパティは、変更されない限りこの値を保持します。
メモ : 一部のプロパティは、ブックマークや更新などの他のプロパティに接続またはチェーンされています。このため、コンシューマが 1 つのプロパティを true に設定すると、別のプロパティも設定される場合があります。OLE DB プロバイダ テンプレートは、CUtlProps::OnPropertyChanged メソッドを通じてこれをサポートします。
Microsoft OLE DB プロバイダが無視するプロパティ
Microsoft OLE DB プロバイダは、以下の OLE DB プロパティを無視します。
DBPROP_MAXROWS は、読み取り専用プロバイダ (DBPROP_IRowsetChange と DBPROP_IRowsetUpdate が false の場合) に対してだけ動作します。それ以外の場合、このプロパティはサポートされません。
DBPROP_MAXPENDINGROWS は無視されます。プロバイダは独自の制限値を指定します。
DBPROP_MAXOPENROWS は無視されます。プロバイダは独自の制限値を指定します。
DBPROP_CANHOLDROWS は無視されます。プロバイダは独自の制限値を指定します。