プロバイダーでのプロパティの設定
必要なプロパティのプロパティ グループとプロパティ 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_IRowsetChangeとDBPROP_IRowsetUpdateがfalseの場合) の場合にのみ機能します。それ以外の場合、このプロパティはサポートされません。DBPROP_MAXPENDINGROWSは無視されます。プロバイダーは独自の制限を指定します。DBPROP_MAXOPENROWSは無視されます。プロバイダーは独自の制限を指定します。DBPROP_CANHOLDROWSは無視されます。プロバイダーは独自の制限を指定します。