Установка свойств в поставщике
Определите группу и идентификатор требуемого свойства.Дополнительные сведения см. в разделе Свойства OLE DBСправочника программиста по OLE DB.
В коде поставщика, сгенерированном мастером, найдите сопоставление свойства, соответствующее группе свойств.Имя группы свойств, как правило, соответствует имени объекта.Свойства команд и наборов строк можно найти в командах или наборах строк, свойства источников данных и инициализационные свойства — в объекте источника данных.
В сопоставлении свойств добавьте макрос PROPERTY_INFO_ENTRY_EX.Макрос PROPERTY_INFO_ENTRY_EX имеет четыре параметра:
Идентификатор свойства, соответствующий свойству.Необходимо удалить первые семь символов ("DBPROP_") из имени свойства.Например, если добавляется свойство DBPROP_MAXROWS, передайте в качестве первого параметра MAXROWS.Для пользовательских свойств необходимо передать полное GUID-имя (например, DBMYPROP_MYPROPERTY).
Значение типа variant свойства (см. раздел Свойства OLE DBсправочника программиста по OLE DB).Введите VT_-тип (например, VT_BOOL или VT_I2), соответствующий типу данных.
Флаги, указывающие, будет ли свойство доступно для чтения и записи, и к какой группе оно принадлежит.Например, следующий код определяет свойство, доступное для чтения и записи и принадлежащее группе набора строк:
DBPROPFLAGS_ROWSET | DBPROPFLAGS_READ | DBPROPFLAGS_WRITE
Базовое значение свойства.Например, для логического типа это может быть значение VARIANT_FALSE, а для целого типа — ноль.Свойство будет иметь это значение до тех пор, пока оно не будет изменено.
Примечание
Некоторые свойства (например, закладки или обновляющиеся свойства) соединены (сцеплены) с другими свойствами.Когда потребитель устанавливает значение одного свойства, при этом значение другого свойства также может быть изменено.Шаблоны поставщиков 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 игнорируется; поставщик устанавливает собственное ограничение.