Definindo propriedades no provedor
Localize o grupo de propriedades e a ID da propriedade desejada. Para obter mais informações, confira Propriedades do OLE DB na Referência do programador OLE DB.
No código do provedor gerado pelo assistente, localize o mapa de propriedades correspondente ao grupo de propriedades. O nome do grupo de propriedades geralmente corresponde ao nome do objeto. As propriedades de comando e conjunto de linhas podem ser encontradas no comando ou conjunto de linhas; as propriedades de fonte de dados e inicialização podem ser encontradas no objeto de fonte de dados.
No mapa de propriedades, adicione uma macro PROPERTY_INFO_ENTRY_EX. PROPERTY_INFO_ENTRY_EX usa quatro parâmetros:
A ID da propriedade correspondente à sua propriedade. Remova os primeiros sete caracteres ("DBPROP_") do início do nome da propriedade. Por exemplo, se você quiser adicionar
DBPROP_MAXROWS
, passeMAXROWS
como o primeiro elemento. Se essa for uma propriedade personalizada, passe o nome completo do GUID (por exemplo,DBMYPROP_MYPROPERTY
).O tipo variante da propriedade (em Propriedades do OLE DB na Referência do programador OLE DB). Insira o tipo VT_ (como VT_BOOL ou VT_I2) correspondente ao tipo de dados.
Sinalizadores para indicar se a propriedade é legível e gravável e o grupo ao qual ela pertence. Por exemplo, o seguinte código indica uma propriedade de leitura/gravação que pertence ao grupo de conjuntos de linhas:
DBPROPFLAGS_ROWSET | DBPROPFLAGS_READ | DBPROPFLAGS_WRITE
O valor base da propriedade. Isso pode ser
VARIANT_FALSE
para um tipo booliano ou zero para um tipo inteiro, por exemplo. A propriedade tem esse valor, a menos que seja alterada.Observação
Algumas propriedades são conectadas ou encadeadas com outras propriedades, como indicadores ou atualização. Quando um consumidor define uma propriedade como true, outra propriedade também pode ser definida. Para dar suporte a isso, os modelos de provedor OLE DB usam o método CUtlProps::OnPropertyChanged.
Propriedades ignoradas por provedores OLE DB da Microsoft
Os Provedores OLE DB da Microsoft ignoram as seguintes propriedades do OLE DB:
DBPROP_MAXROWS
só funciona para provedores somente leitura (ou seja, ondeDBPROP_IRowsetChange
eDBPROP_IRowsetUpdate
sãofalse
); caso contrário, essa propriedade não é compatível.DBPROP_MAXPENDINGROWS
é ignorado; o provedor especifica o próprio limite.DBPROP_MAXOPENROWS
é ignorado; o provedor especifica o próprio limite.DBPROP_CANHOLDROWS
é ignorado; o provedor especifica o próprio limite.