Macros e funções globais para modelos de consumidor de banco de dados OLE
Os Modelos de Consumidor OLE DB incluem as seguintes macros e funções globais:
Funções globais
Nome | Descrição |
---|---|
AtlTraceErrorRecords | Despeja informações do Registro de Erro do OLE DB no dispositivo de despejo se um erro é retornado. |
Macros de mapa do acessador
Nome | Descrição |
---|---|
BEGIN_ACCESSOR | Marca o início de uma entrada do acessador. |
BEGIN_ACCESSOR_MAP | Marca o início de entradas do mapa do acessador. |
END_ACCESSOR | Marca o término de uma entrada do acessador. |
END_ACCESSOR_MAP | Marca o término de entradas do mapa do acessador. |
Macros de mapa de colunas
Nome | Descrição |
---|---|
BEGIN_COLUMN_MAP | Marca o início de entradas de mapa de colunas na classe de registro do usuário. |
BLOB_ENTRY | Usado para associar um BLOB (objeto binário grande). |
BLOB_ENTRY_LENGTH | Relata o comprimento da coluna de dados do BLOB. |
BLOB_ENTRY_LENGTH_STATUS | Relata o comprimento e o status da coluna de dados do BLOB. |
BLOB_ENTRY_STATUS | Relata o status da coluna de dados do BLOB. |
BLOB_NAME | Usado para associar um objeto binário grande por nome de coluna. |
BLOB_NAME_LENGTH | Relata o comprimento da coluna de dados do BLOB. |
BLOB_NAME_LENGTH_STATUS | Relata o comprimento e o status da coluna de dados do BLOB. |
BLOB_NAME_STATUS | Relata o status da coluna de dados do BLOB. |
BOOKMARK_ENTRY | Representa uma entrada de indicador no conjunto de linhas. Uma entrada de indicador é um tipo especial de entrada de coluna. |
COLUMN_ENTRY | Representa uma associação a uma coluna específica no banco de dados. |
COLUMN_ENTRY_EX | Representa uma associação à coluna específica no banco de dados. Dá suporte a parâmetros type, length, precision, scale e status. |
COLUMN_ENTRY_LENGTH | Representa uma associação à coluna específica no banco de dados. Dá suporte à variável length. |
COLUMN_ENTRY_LENGTH_STATUS | Representa uma associação à coluna específica no banco de dados. Dá suporte aos parâmetros status e length. |
COLUMN_ENTRY_PS | Representa uma associação à coluna específica no banco de dados. Dá suporte aos parâmetros precision e scale. |
COLUMN_ENTRY_PS_LENGTH | Representa uma associação à coluna específica no banco de dados. Dá suporte à variável length e aos parâmetros precision e scale. |
COLUMN_ENTRY_PS_LENGTH_STATUS | Representa uma associação à coluna específica no banco de dados. Dá suporte às variáveis status e length e aos parâmetros precision e scale. |
COLUMN_ENTRY_PS_STATUS | Representa uma associação à coluna específica no banco de dados. Dá suporte à variável status e aos parâmetros precision e scale. |
COLUMN_ENTRY_STATUS | Representa uma associação à coluna específica no banco de dados. Dá suporte à variável status. |
COLUMN_ENTRY_TYPE | Representa uma associação a uma coluna específica no banco de dados. Dá suporte ao parâmetro type. |
COLUMN_ENTRY_TYPE_SIZE | Representa uma associação à coluna específica no banco de dados. Dá suporte aos parâmetros type e size. |
COLUMN_NAME | Representa uma associação a uma coluna específica no banco de dados por nome. |
COLUMN_NAME_EX | Representa uma associação a uma coluna específica no banco de dados por nome. Dá suporte à especificação de tipo de dados, tamanho, precisão, escala, comprimento da coluna e status da coluna. |
COLUMN_NAME_LENGTH | Representa uma associação a uma coluna específica no banco de dados por nome. Dá suporte à especificação de comprimento da coluna. |
COLUMN_NAME_LENGTH_STATUS | Representa uma associação a uma coluna específica no banco de dados por nome. Dá suporte à especificação de status e comprimento da coluna. |
COLUMN_NAME_PS | Representa uma associação a uma coluna específica no banco de dados por nome. Dá suporte à especificação de precisão e escala. |
COLUMN_NAME_PS_LENGTH | Representa uma associação a uma coluna específica no banco de dados por nome. Dá suporte à especificação de precisão, escala e comprimento da coluna. |
COLUMN_NAME_PS_LENGTH_STATUS | Representa uma associação a uma coluna específica no banco de dados por nome. Dá suporte à especificação de precisão, escala, comprimento da coluna e status da coluna. |
COLUMN_NAME_PS_STATUS | Representa uma associação a uma coluna específica no banco de dados por nome. Dá suporte à especificação de precisão, escala e status da coluna. |
COLUMN_NAME_STATUS | Representa uma associação a uma coluna específica no banco de dados por nome. Dá suporte à especificação de status da coluna. |
COLUMN_NAME_TYPE | Representa uma associação a uma coluna específica no banco de dados por nome. Dá suporte à especificação de tipo de dados. |
COLUMN_NAME_TYPE_PS | Representa uma associação a uma coluna específica no banco de dados por nome. Dá suporte à especificação de tipo de dados, precisão e escala. |
COLUMN_NAME_TYPE_SIZE | Representa uma associação a uma coluna específica no banco de dados por nome. Dá suporte à especificação de tipo de dados e tamanho. |
COLUMN_NAME_TYPE_STATUS | Representa uma associação a uma coluna específica no banco de dados por nome. Dá suporte à especificação de tipo de dados e status da coluna. |
END_COLUMN_MAP | Marca o final das entradas do mapa de colunas. |
Macros de comando
Nome | Descrição |
---|---|
DEFINE_COMMAND | Especifica o comando que será usado para criar o conjunto de linhas ao usar a classe CCommand. Aceita apenas tipos de cadeia de caracteres que correspondem ao tipo de aplicativo especificado (ANSI ou Unicode). É recomendável que você use DEFINE_COMMAND_EX em vez de DEFINE_COMMAND. |
DEFINE_COMMAND_EX | Especifica o comando que será usado para criar o conjunto de linhas ao usar a classe CCommand. Dá suporte a aplicativos ANSI e Unicode. |
Macros de mapa de parâmetro
Nome | Descrição |
---|---|
BEGIN_PARAM_MAP | Marca o início de entradas de mapa de parâmetros na classe de registro do usuário. |
END_PARAM_MAP | Marca o final das entradas do mapa de parâmetros. |
SET_PARAM_TYPE | Especifica macros COLUMN_ENTRY que seguem a macro SET_PARAM_TYPE como entrada, saída ou entrada/saída. |
AtlTraceErrorRecords
Despeja informações do Registro de Erro do OLE DB no dispositivo de despejo se um erro é retornado.
Sintaxe
inline void AtlTraceErrorRecords(HRESULT hrErr = S_OK);
Parâmetros
hErr
[in] Um HRESULT retornado por uma função membro do Modelo de Consumidor OLE DB.
Comentários
Se hErr não for S_OK, AtlTraceErrorRecords
despejará informações do Registro de Erro OLE DB no dispositivo de despejo (a guia Depurar da janela Saída ou um arquivo). As informações de Registro de Erro, obtidas do provedor, incluem número de linha, origem, descrição, arquivo de ajuda, contexto e GUID para cada entrada de registro de erro. AtlTraceErrorRecords
despeja essas informações somente em builds de depuração. Em builds de versão, é um stub vazio otimizado. Para obter mais informações, confira Classe CDBErrorInfo.
BEGIN_ACCESSOR
Marca o início de uma entrada do acessador.
Sintaxe
BEGIN_ACCESSOR(num, bAuto)
Parâmetros
num
[in] O número de deslocamento zero para o acessador neste mapa do acessador.
bAuto
[in] Especifica se esse acessador é um acessador automático ou manual. Se true
, o acessador é automático; se false
, o acessador é manual. Um acessador automático significa que os dados são buscados para você em operações de movimentação.
Comentários
No caso de vários acessadores em um conjunto de linhas, você precisa especificar BEGIN_ACCESSOR_MAP e usar a macro BEGIN_ACCESSOR para cada acessador individual. A macro BEGIN_ACCESSOR é concluída com a macro END_ACCESSOR. A macro BEGIN_ACCESSOR_MAP é concluída com a macro END_ACCESSOR_MAP.
Exemplo
Confira BEGIN_ACCESSOR_MAP.
BEGIN_ACCESSOR_MAP
Marca o início de entradas do mapa do acessador.
Sintaxe
BEGIN_ACCESSOR_MAP(x, num)
Parâmetros
x
[in] O nome da classe de registro do usuário.
num
[in] O número de acessadores neste mapa do acessador.
Comentários
No caso de vários acessadores em um conjunto de linhas, você precisa especificar BEGIN_ACCESSOR_MAP no início e usar a macro BEGIN_ACCESSOR para cada acessador individual. A macro BEGIN_ACCESSOR é concluída com a macro END_ACCESSOR. O mapa do acessador é concluído com a macro END_ACCESSOR_MAP.
Se você tiver apenas um acessador no registro de usuário, use a macro BEGIN_COLUMN_MAP.
Exemplo
class CArtistsAccessor
{
public:
// Data Elements
TCHAR m_szFirstName[21];
TCHAR m_szLastName[31];
short m_nAge;
// Output binding map
BEGIN_ACCESSOR_MAP(CArtistsAccessor, 2)
BEGIN_ACCESSOR(0, true)
COLUMN_ENTRY(1, m_szFirstName)
COLUMN_ENTRY(2, m_szLastName)
END_ACCESSOR()
BEGIN_ACCESSOR(1, false) // Not an auto accessor
COLUMN_ENTRY(3, m_nAge)
END_ACCESSOR()
END_ACCESSOR_MAP()
HRESULT OpenDataSource()
{
CDataSource _db;
_db.Open();
return m_session.Open(_db);
}
void CloseDataSource()
{
m_session.Close();
}
CSession m_session;
DEFINE_COMMAND_EX(CArtistsAccessor, L" \
SELECT \
FirstName, \
LastName, \
Age \
FROM Artists")
};
END_ACCESSOR
Marca o término de uma entrada do acessador.
Sintaxe
END_ACCESSOR()
Comentários
No caso de vários acessadores em um conjunto de linhas, você precisa especificar BEGIN_ACCESSOR_MAP e usar a macro BEGIN_ACCESSOR para cada acessador individual. A macro BEGIN_ACCESSOR é concluída com a macro END_ACCESSOR. A macro BEGIN_ACCESSOR_MAP é concluída com a macro END_ACCESSOR_MAP.
Exemplo
Confira BEGIN_ACCESSOR_MAP.
END_ACCESSOR_MAP
Marca o término de entradas do mapa do acessador.
Sintaxe
END_ACCESSOR_MAP()
Comentários
No caso de vários acessadores em um conjunto de linhas, você precisa especificar BEGIN_ACCESSOR_MAP e usar a macro BEGIN_ACCESSOR para cada acessador individual. A macro BEGIN_ACCESSOR é concluída com a macro END_ACCESSOR. A macro BEGIN_ACCESSOR_MAP é concluída com a macro END_ACCESSOR_MAP.
Exemplo
Confira BEGIN_ACCESSOR_MAP.
BEGIN_COLUMN_MAP
Marca o início de uma entrada de mapa de coluna.
Sintaxe
BEGIN_COLUMN_MAP(x)
Parâmetros
x
[in] O nome da classe de registro do usuário derivada de CAccessor
.
Comentários
Essa macro é usada no caso de apenas um acessador em um conjunto de linhas. Se você tiver vários acessadores em um conjunto de linhas, use BEGIN_ACCESSOR_MAP.
A macro BEGIN_COLUMN_MAP é concluída com a macro END_COLUMN_MAP. Essa macro é usada quando há apenas um acessador necessário no registro do usuário.
As colunas correspondem aos campos no conjunto de linhas que você deseja associar.
Exemplo
Aqui está um mapa de parâmetros e uma coluna de exemplo:
BLOB_ENTRY
Usado com BEGIN_COLUMN_MAP e END_COLUMN_MAP para associar um BLOB (objeto binário grande).
Sintaxe
BLOB_ENTRY(nOrdinal, IID, flags, data)
Parâmetros
nOrdinal
[in] O número da coluna.
IID
[in] GUID de interface, como IDD_ISequentialStream
, usado para recuperar o BLOB.
sinalizadores
[in] Sinalizadores do modo de armazenamento, conforme definido pelo modelo de Armazenamento Estruturado OLE (por exemplo, STGM_READ
).
data
[in] O membro de dados correspondente no registro de usuário.
Exemplo
Confira Como posso recuperar um BLOB?.
BLOB_ENTRY_LENGTH
Usado com BEGIN_COLUMN_MAP e END_COLUMN_MAP para associar um BLOB (objeto binário grande). Semelhante a BLOB_ENTRY, exceto que essa macro também obtém o comprimento em bytes da coluna BLOB.
Sintaxe
BLOB_ENTRY_LENGTH(nOrdinal, IID, flags, data, length)
Parâmetros
nOrdinal
[in] O número da coluna.
IID
[in] GUID de interface, como IDD_ISequentialStream
, usado para recuperar o BLOB.
sinalizadores
[in] Sinalizadores do modo de armazenamento, conforme definido pelo modelo de Armazenamento Estruturado OLE (por exemplo, STGM_READ
).
data
[in] O membro de dados correspondente no registro de usuário.
length
[out] O comprimento (real) em bytes da coluna BLOB.
Exemplo
Confira Como posso recuperar um BLOB?.
BLOB_ENTRY_LENGTH_STATUS
Usado com BEGIN_COLUMN_MAP e END_COLUMN_MAP para associar um BLOB (objeto binário grande). Semelhante a BLOB_ENTRY, exceto que essa macro também obtém o comprimento e o status da coluna BLOB.
Sintaxe
BLOB_ENTRY_LENGTH_STATUS(
nOrdinal,
IID,
flags,
data,
length,
status )
Parâmetros
nOrdinal
[in] O número da coluna.
IID
[in] GUID de interface, como IDD_ISequentialStream
, usado para recuperar o BLOB.
sinalizadores
[in] Sinalizadores do modo de armazenamento, conforme definido pelo modelo de Armazenamento Estruturado OLE (por exemplo, STGM_READ
).
data
[in] O membro de dados correspondente no registro de usuário.
length
[out] O comprimento (real) em bytes da coluna BLOB.
status
[out] O status da coluna de dados do BLOB.
Exemplo
Confira Como posso recuperar um BLOB?.
BLOB_ENTRY_STATUS
Usado com BEGIN_COLUMN_MAP ou BEGIN_ACCESSOR_MAP para associar um BLOB (objeto binário grande). Semelhante a BLOB_ENTRY, exceto que essa macro também obtém o status da coluna BLOB.
Sintaxe
BLOB_ENTRY_STATUS(nOrdinal, IID, flags, data, status)
Parâmetros
nOrdinal
[in] O número da coluna.
IID
[in] GUID de interface, como IDD_ISequentialStream
, usado para recuperar o BLOB.
sinalizadores
[in] Sinalizadores do modo de armazenamento, conforme definido pelo modelo de Armazenamento Estruturado OLE (por exemplo, STGM_READ
).
data
[in] O membro de dados correspondente no registro de usuário.
status
[out] O status do campo de BLOB.
Exemplo
Confira Como posso recuperar um BLOB?.
BLOB_NAME
Usado com BEGIN_COLUMN_MAP e END_COLUMN_MAP para associar um BLOB (objeto binário grande). Semelhante a BLOB_ENTRY, exceto que essa macro usa um nome de coluna em vez de um número de coluna.
Sintaxe
BLOB_NAME(pszName, IID, flags, data )
Parâmetros
pszName
[in] Um ponteiro para o nome da coluna. O nome precisa ser uma cadeia de caracteres Unicode. Você pode fazer isso colocando um 'L' na frente do nome, por exemplo: L"MyColumn"
.
IID
[in] GUID de interface, como IDD_ISequentialStream
, usado para recuperar o BLOB.
sinalizadores
[in] Sinalizadores do modo de armazenamento, conforme definido pelo modelo de Armazenamento Estruturado OLE (por exemplo, STGM_READ
).
data
[in] O membro de dados correspondente no registro de usuário.
Exemplo
Confira Como posso recuperar um BLOB?.
BLOB_NAME_LENGTH
Usado com BEGIN_COLUMN_MAP e END_COLUMN_MAP para associar um BLOB (objeto binário grande). Semelhante a BLOB_NAME, exceto que essa macro também obtém o comprimento em bytes da coluna de dados de BLOB.
Sintaxe
BLOB_NAME_LENGTH(pszName, IID, flags, data, length )
Parâmetros
pszName
[in] Um ponteiro para o nome da coluna. O nome precisa ser uma cadeia de caracteres Unicode. Você pode fazer isso colocando um 'L' na frente do nome, por exemplo: L"MyColumn"
.
IID
[in] GUID de interface, como IDD_ISequentialStream
, usado para recuperar o BLOB.
sinalizadores
[in] Sinalizadores do modo de armazenamento, conforme definido pelo modelo de Armazenamento Estruturado OLE (por exemplo, STGM_READ
).
data
[in] O membro de dados correspondente no registro de usuário.
length
[out] O comprimento (real) em bytes da coluna BLOB.
BLOB_NAME_LENGTH_STATUS
Usado com BEGIN_COLUMN_MAP e END_COLUMN_MAP para associar um BLOB (objeto binário grande). Semelhante a BLOB_NAME, exceto que essa macro também obtém o comprimento e o status da coluna de dados de BLOB.
Sintaxe
BLOB_NAME_LENGTH_STATUS(pszName, IID, flags, data, length, status )
Parâmetros
pszName
[in] Um ponteiro para o nome da coluna. O nome precisa ser uma cadeia de caracteres Unicode. Você pode fazer isso colocando um 'L' na frente do nome, por exemplo: L"MyColumn"
.
IID
[in] GUID de interface, como IDD_ISequentialStream
, usado para recuperar o BLOB.
sinalizadores
[in] Sinalizadores do modo de armazenamento, conforme definido pelo modelo de Armazenamento Estruturado OLE (por exemplo, STGM_READ
).
data
[in] O membro de dados correspondente no registro de usuário.
length
[out] O comprimento (real) em bytes da coluna BLOB.
status
[out] O status do campo de BLOB.
BLOB_NAME_STATUS
Usado com BEGIN_COLUMN_MAP e END_COLUMN_MAP para associar um BLOB (objeto binário grande). Semelhante a BLOB_NAME, exceto que essa macro também obtém o status da coluna de dados de BLOB.
Sintaxe
BLOB_NAME_STATUS(pszName, IID, flags, data, status )
Parâmetros
pszName
[in] Um ponteiro para o nome da coluna. O nome precisa ser uma cadeia de caracteres Unicode. Você pode fazer isso colocando um 'L' na frente do nome, por exemplo: L"MyColumn"
.
IID
[in] GUID de interface, como IDD_ISequentialStream
, usado para recuperar o BLOB.
sinalizadores
[in] Sinalizadores do modo de armazenamento, conforme definido pelo modelo de Armazenamento Estruturado OLE (por exemplo, STGM_READ
).
data
[in] O membro de dados correspondente no registro de usuário.
status
[out] O status do campo de BLOB.
BOOKMARK_ENTRY
Associa a coluna de indicador.
Sintaxe
BOOKMARK_ENTRY(variable)
Parâmetros
variable
[in] A variável a ser associada à coluna de indicador.
Exemplo
class CArtistsBookmark
{
public:
// Data Elements
CBookmark<4> m_bookmark;
short m_nAge;
TCHAR m_szFirstName[21];
TCHAR m_szLastName[31];
// Output binding map
BEGIN_COLUMN_MAP(CArtistsBookmark)
BOOKMARK_ENTRY(m_bookmark)
COLUMN_ENTRY(1, m_nAge)
COLUMN_ENTRY(2, m_szFirstName)
COLUMN_ENTRY(3, m_szLastName)
END_COLUMN_MAP()
void GetRowsetProperties(CDBPropSet* pPropSet)
{
pPropSet->AddProperty(DBPROP_BOOKMARKS, true);
}
HRESULT OpenDataSource()
{
CDataSource _db;
_db.Open();
return m_session.Open(_db);
}
void CloseDataSource()
{
m_session.Close();
}
CSession m_session;
DEFINE_COMMAND_EX(CArtistsBookmark, L" \
SELECT \
Age, \
FirstName, \
LastName \
FROM Artists")
};
Para obter mais informações, confira Usando indicadores e Classe CBookmark.
COLUMN_ENTRY
Representa uma associação no conjunto de linhas à coluna específica no conjunto de linhas.
Sintaxe
COLUMN_ENTRY(nOrdinal, data)
Parâmetros
Confira DBBINDING na Referência de programador do OLE DB.
nOrdinal
[in] O número da coluna.
data
[in] O membro de dados correspondente no registro de usuário.
Comentários
A macro COLUMN_ENTRY é usada nos seguintes locais:
Entre as macros BEGIN_COLUMN_MAP e END_COLUMN_MAP.
Entre as macros BEGIN_ACCESSOR e END_ACCESSOR.
Entre as macros BEGIN_PARAM_MAP e END_PARAM_MAP.
Exemplo
Veja os exemplos nos tópicos de macro, BEGIN_COLUMN_MAP e BEGIN_ACCESSOR_MAP.
COLUMN_ENTRY_EX
Representa uma associação no conjunto de linhas à coluna específica no banco de dados.
Sintaxe
COLUMN_ENTRY_EX(nOrdinal, wType, nLength, nPrecision, nScale, data, length, status)
Parâmetros
Confira DBBINDING na Referência de programador do OLE DB.
nOrdinal
[in] O número da coluna.
wType
[in] O tipo de dados.
nLength
[in] O tamanho dos dados em bytes.
nPrecision
[in] A precisão máxima a ser usada ao obter dados e wType é DBTYPE_NUMERIC
. Caso contrário, esse parâmetro é ignorado.
nScale
[in] A escala a ser usada ao obter dados e wType é DBTYPE_NUMERIC
ou DBTYPE_DECIMAL
.
data
[in] O membro de dados correspondente no registro de usuário.
length
[in] A variável a ser associada ao comprimento da coluna.
status
[in] A variável a ser associada ao status da coluna.
Comentários
A macro COLUMN_ENTRY_EX é usada nos seguintes locais:
Entre as macros BEGIN_COLUMN_MAP e END_COLUMN_MAP.
Entre as macros BEGIN_ACCESSOR e END_ACCESSOR.
Entre as macros BEGIN_PARAM_MAP e END_PARAM_MAP.
Exemplo
Confira BOOKMARK_ENTRY.
COLUMN_ENTRY_LENGTH
Representa uma associação no conjunto de linhas à coluna específica no banco de dados.
Sintaxe
COLUMN_ENTRY_LENGTH(nOrdinal, data, length)
Parâmetros
Confira DBBINDING na Referência de programador do OLE DB.
nOrdinal
[in] O número da coluna, começando com um. O indicador corresponde à coluna zero.
data
[in] O membro de dados correspondente no registro de usuário.
length
[in] A variável a ser associada ao comprimento da coluna.
Comentários
Essa macro dá suporte à variável length. Ela é usada das seguintes maneiras:
Entre as macros BEGIN_COLUMN_MAP e END_COLUMN_MAP.
Entre as macros BEGIN_ACCESSOR e END_ACCESSOR.
Entre as macros BEGIN_PARAM_MAP e END_PARAM_MAP.
COLUMN_ENTRY_LENGTH_STATUS
Representa uma associação no conjunto de linhas à coluna específica no banco de dados.
Sintaxe
COLUMN_ENTRY_LENGTH_STATUS(nOrdinal, data, length, status)
Parâmetros
Confira DBBINDING na Referência de programador do OLE DB.
nOrdinal
[in] O número da coluna.
data
[in] O membro de dados correspondente no registro de usuário.
length
[in] A variável a ser associada ao comprimento da coluna.
status
[in] A variável a ser associada ao status da coluna.
Comentários
Use essa macro quando quiser dar suporte às variáveis length e status. Ela é usada das seguintes maneiras:
Entre as macros BEGIN_COLUMN_MAP e END_COLUMN_MAP.
Entre as macros BEGIN_ACCESSOR e END_ACCESSOR.
Entre as macros BEGIN_PARAM_MAP e END_PARAM_MAP.
COLUMN_ENTRY_PS
Representa uma associação no conjunto de linhas à coluna específica no conjunto de linhas.
Sintaxe
COLUMN_ENTRY_PS(nOrdinal, nPrecision, nScale, data)
Parâmetros
Confira DBBINDING na Referência de programador do OLE DB.
nOrdinal
[in] O número da coluna.
nPrecision
[in] A precisão máxima da coluna que você deseja associar.
nScale
[in] A escala da coluna que você deseja associar.
data
[in] O membro de dados correspondente no registro de usuário.
Comentários
Permite que você especifique a precisão e a escala da coluna que deseja associar. Ela é usada das seguintes maneiras:
Entre as macros BEGIN_COLUMN_MAP e END_COLUMN_MAP.
Entre as macros BEGIN_ACCESSOR e END_ACCESSOR.
Entre as macros BEGIN_PARAM_MAP e END_PARAM_MAP.
COLUMN_ENTRY_PS_LENGTH
Representa uma associação no conjunto de linhas à coluna específica no banco de dados.
Sintaxe
COLUMN_ENTRY_PS_LENGTH(nOrdinal, nPrecision, nScale, data, length)
Parâmetros
Confira DBBINDING na Referência de programador do OLE DB.
nOrdinal
[in] O número da coluna, começando com um. O indicador corresponde à coluna zero.
nPrecision
[in] A precisão máxima da coluna que você deseja associar.
nScale
[in] A escala da coluna que você deseja associar.
data
[in] O membro de dados correspondente no registro de usuário.
length
[in] A variável a ser associada ao comprimento da coluna.
Comentários
Permite que você especifique a precisão e a escala da coluna que deseja associar. Essa macro dá suporte à variável length. Ela é usada das seguintes maneiras:
Entre as macros BEGIN_COLUMN_MAP e END_COLUMN_MAP.
Entre as macros BEGIN_ACCESSOR e END_ACCESSOR.
Entre as macros BEGIN_PARAM_MAP e END_PARAM_MAP.
COLUMN_ENTRY_PS_LENGTH_STATUS
Representa uma associação no conjunto de linhas à coluna específica no banco de dados.
Sintaxe
COLUMN_ENTRY_PS_LENGTH_STATUS(nOrdinal, nPrecision, nScale, data, length, status)
Parâmetros
Confira DBBINDING na Referência de programador do OLE DB.
nOrdinal
[in] O número da coluna.
nPrecision
[in] A precisão máxima da coluna que você deseja associar.
nScale
[in] A escala da coluna que você deseja associar.
data
[in] O membro de dados correspondente no registro de usuário.
length
[in] A variável a ser associada ao comprimento da coluna.
status
[in] A variável a ser associada ao status da coluna.
Comentários
Permite que você especifique a precisão e a escala da coluna que deseja associar. Use essa macro quando quiser dar suporte às variáveis length e status. Ela é usada das seguintes maneiras:
Entre as macros BEGIN_COLUMN_MAP e END_COLUMN_MAP.
Entre as macros BEGIN_ACCESSOR e END_ACCESSOR.
Entre as macros BEGIN_PARAM_MAP e END_PARAM_MAP.
COLUMN_ENTRY_PS_STATUS
Representa uma associação no conjunto de linhas à coluna específica no banco de dados.
Sintaxe
COLUMN_ENTRY_PS_STATUS(nOrdinal, nPrecision, nScale, data, status)
Parâmetros
Confira DBBINDING na Referência de programador do OLE DB.
nOrdinal
[in] O número da coluna.
nPrecision
[in] A precisão máxima da coluna que você deseja associar.
nScale
[in] A escala da coluna que você deseja associar.
data
[in] O membro de dados correspondente no registro de usuário.
status
[in] A variável a ser associada ao status da coluna.
Comentários
Permite que você especifique a precisão e a escala da coluna que deseja associar. Essa macro dá suporte à variável status. Ela é usada das seguintes maneiras:
Entre as macros BEGIN_COLUMN_MAP e END_COLUMN_MAP.
Entre as macros BEGIN_ACCESSOR e END_ACCESSOR.
Entre as macros BEGIN_PARAM_MAP e END_PARAM_MAP.
COLUMN_ENTRY_STATUS
Representa uma associação no conjunto de linhas à coluna específica no banco de dados.
Sintaxe
COLUMN_ENTRY_STATUS(nOrdinal, data, status)
Parâmetros
Confira DBBINDING na Referência de programador do OLE DB.
nOrdinal
[in] O número da coluna.
data
[in] O membro de dados correspondente no registro de usuário.
status
[in] A variável a ser associada ao status da coluna.
Comentários
Essa macro dá suporte à variável status. Ela é usada das seguintes maneiras:
Entre as macros BEGIN_COLUMN_MAP e END_COLUMN_MAP.
Entre as macros BEGIN_ACCESSOR e END_ACCESSOR.
Entre as macros BEGIN_PARAM_MAP e END_PARAM_MAP.
COLUMN_ENTRY_TYPE
Representa uma associação à coluna específica no banco de dados. Dá suporte ao parâmetro type.
Sintaxe
COLUMN_ENTRY_TYPE (nOrdinal, wType, data)
Parâmetros
nOrdinal
[in] O número da coluna.
wType
[in] Tipo de dados de entrada de coluna.
data
[in] O membro de dados correspondente no registro de usuário.
Comentários
Essa macro é uma variante especializada da macro COLUMN_ENTRY que fornece um meio de especificar o tipo de dados.
COLUMN_ENTRY_TYPE_SIZE
Representa uma associação à coluna específica no banco de dados. Dá suporte aos parâmetros type e size.
Sintaxe
COLUMN_ENTRY_TYPE_SIZE(nOrdinal, wType, nLength, data)
Parâmetros
nOrdinal
[in] O número da coluna.
wType
[in] Tipo de dados de entrada de coluna.
nLength
[in] Tamanho da entrada de coluna em bytes.
data
[in] O membro de dados correspondente no registro de usuário.
Comentários
Essa macro é uma variante especializada da macro COLUMN_ENTRY que fornece um meio de especificar o tipo e o tamanho de dados.
COLUMN_NAME
Representa uma associação no conjunto de linhas à coluna específica no conjunto de linhas. Semelhante a COLUMN_ENTRY, exceto que essa macro usa o nome da coluna em vez do número da coluna.
Sintaxe
COLUMN_NAME(pszName, data)
Parâmetros
pszName
[in] Um ponteiro para o nome da coluna. O nome precisa ser uma cadeia de caracteres Unicode. Você pode fazer isso colocando um 'L' na frente do nome, por exemplo: L"MyColumn"
.
data
[in] O membro de dados correspondente no registro de usuário.
Comentários
As macros COLUMN_NAME_* são usadas nos mesmos locais que COLUMN_ENTRY:
Entre as macros BEGIN_COLUMN_MAP e END_COLUMN_MAP.
Entre as macros BEGIN_ACCESSOR e END_ACCESSOR.
Entre as macros BEGIN_PARAM_MAP e END_PARAM_MAP.
COLUMN_NAME_EX
Representa uma associação no conjunto de linhas à coluna específica no conjunto de linhas. Semelhante a COLUMN_NAME, exceto que esta macro também usa tipo de dados, tamanho, precisão, escala, comprimento de coluna e status de coluna.
Sintaxe
COLUMN_NAME_EX(pszName, wType, nLength, nPrecision, nScale, data, length, status )
Parâmetros
pszName
[in] Um ponteiro para o nome da coluna. O nome precisa ser uma cadeia de caracteres Unicode. Você pode fazer isso colocando um 'L' na frente do nome, por exemplo: L"MyColumn"
.
wType
[in] O tipo de dados.
nLength
[in] O tamanho dos dados em bytes.
nPrecision
[in] A precisão máxima a ser usada ao obter dados e wType é DBTYPE_NUMERIC
. Caso contrário, esse parâmetro é ignorado.
nScale
[in] A escala a ser usada ao obter dados e wType é DBTYPE_NUMERIC
ou DBTYPE_DECIMAL
.
data
[in] O membro de dados correspondente no registro de usuário.
length
[in] A variável a ser associada ao comprimento da coluna.
status
[in] A variável a ser associada ao status da coluna.
Comentários
Confira COLUMN_NAME para obter informações sobre onde as macros COLUMN_NAME_* são usadas.
COLUMN_NAME_LENGTH
Representa uma associação no conjunto de linhas à coluna específica no conjunto de linhas. Semelhante a COLUMN_NAME, exceto que esta macro também tem comprimento de coluna.
Sintaxe
COLUMN_NAME_LENGTH(pszName, data, length)
Parâmetros
pszName
[in] Um ponteiro para o nome da coluna. O nome precisa ser uma cadeia de caracteres Unicode. Você pode fazer isso colocando um 'L' na frente do nome, por exemplo: L"MyColumn"
.
data
[in] O membro de dados correspondente no registro de usuário.
length
[in] A variável a ser associada ao comprimento da coluna.
Comentários
Confira COLUMN_NAME para obter informações sobre onde as macros COLUMN_NAME_* são usadas.
COLUMN_NAME_LENGTH_STATUS
Representa uma associação no conjunto de linhas à coluna específica no conjunto de linhas. Semelhante a COLUMN_NAME, exceto que esta macro também tem comprimento de coluna e status de coluna.
Sintaxe
COLUMN_NAME_LENGTH_STATUS(pszName, data, length, status )
Parâmetros
pszName
[in] Um ponteiro para o nome da coluna. O nome precisa ser uma cadeia de caracteres Unicode. Você pode fazer isso colocando um 'L' na frente do nome, por exemplo: L"MyColumn"
.
data
[in] O membro de dados correspondente no registro de usuário.
length
[in] A variável a ser associada ao comprimento da coluna.
status
[in] A variável a ser associada ao status da coluna.
Comentários
Confira COLUMN_NAME para obter informações sobre onde as macros COLUMN_NAME_* são usadas.
COLUMN_NAME_PS
Representa uma associação no conjunto de linhas à coluna específica no conjunto de linhas. Semelhante a COLUMN_NAME, exceto que esta macro também tem precisão e escala.
Sintaxe
COLUMN_NAME_PS(pszName, nPrecision, nScale, data )
Parâmetros
pszName
[in] Um ponteiro para o nome da coluna. O nome precisa ser uma cadeia de caracteres Unicode. Você pode fazer isso colocando um 'L' na frente do nome, por exemplo: L"MyColumn"
.
nPrecision
[in] A precisão máxima da coluna que você deseja associar.
nScale
[in] A escala da coluna que você deseja associar.
data
[in] O membro de dados correspondente no registro de usuário.
Comentários
Confira COLUMN_NAME para obter informações sobre onde as macros COLUMN_NAME_* são usadas.
COLUMN_NAME_PS_LENGTH
Representa uma associação no conjunto de linhas à coluna específica no conjunto de linhas. Semelhante a COLUMN_NAME, exceto que esta macro também tem precisão, escala e comprimento de coluna.
Sintaxe
COLUMN_NAME_PS_LENGTH(pszName, nPrecision, nScale, data, length )
Parâmetros
pszName
[in] Um ponteiro para o nome da coluna. O nome precisa ser uma cadeia de caracteres Unicode. Você pode fazer isso colocando um 'L' na frente do nome, por exemplo: L"MyColumn"
.
nPrecision
[in] A precisão máxima da coluna que você deseja associar.
nScale
[in] A escala da coluna que você deseja associar.
data
[in] O membro de dados correspondente no registro de usuário.
length
[in] A variável a ser associada ao comprimento da coluna.
Comentários
Confira COLUMN_NAME para obter informações sobre onde as macros COLUMN_NAME_* são usadas.
COLUMN_NAME_PS_LENGTH_STATUS
Representa uma associação no conjunto de linhas à coluna específica no conjunto de linhas. Semelhante a COLUMN_NAME, exceto que esta macro também tem precisão, escala, comprimento de coluna e status de coluna.
Sintaxe
COLUMN_NAME_PS_LENGTH_STATUS(pszName, nPrecision, nScale, data, length, status )
Parâmetros
pszName
[in] Um ponteiro para o nome da coluna. O nome precisa ser uma cadeia de caracteres Unicode. Você pode fazer isso colocando um 'L' na frente do nome, por exemplo: L"MyColumn"
.
nPrecision
[in] A precisão máxima da coluna que você deseja associar.
nScale
[in] A escala da coluna que você deseja associar.
data
[in] O membro de dados correspondente no registro de usuário.
length
[in] A variável a ser associada ao comprimento da coluna.
status
[in] A variável a ser associada ao status da coluna.
Comentários
Confira COLUMN_NAME para obter informações sobre onde as macros COLUMN_NAME_* são usadas.
COLUMN_NAME_PS_STATUS
Representa uma associação no conjunto de linhas à coluna específica no conjunto de linhas. Semelhante a COLUMN_NAME, exceto que esta macro também tem precisão, escala e status de coluna.
Sintaxe
COLUMN_NAME_PS_STATUS(pszName, nPrecision, nScale, data, status )
Parâmetros
pszName
[in] Um ponteiro para o nome da coluna. O nome precisa ser uma cadeia de caracteres Unicode. Você pode fazer isso colocando um 'L' na frente do nome, por exemplo: L"MyColumn"
.
nPrecision
[in] A precisão máxima da coluna que você deseja associar.
nScale
[in] A escala da coluna que você deseja associar.
data
[in] O membro de dados correspondente no registro de usuário.
status
[in] A variável a ser associada ao status da coluna.
Comentários
Confira COLUMN_NAME para obter informações sobre onde as macros COLUMN_NAME_* são usadas.
COLUMN_NAME_STATUS
Representa uma associação no conjunto de linhas à coluna específica no conjunto de linhas. Semelhante a COLUMN_NAME, exceto que esta macro também tem status de coluna.
Sintaxe
COLUMN_NAME_STATUS(pszName, data, status )
Parâmetros
pszName
[in] Um ponteiro para o nome da coluna. O nome precisa ser uma cadeia de caracteres Unicode. Você pode fazer isso colocando um 'L' na frente do nome, por exemplo: L"MyColumn"
.
data
[in] O membro de dados correspondente no registro de usuário.
status
[in] A variável a ser associada ao status da coluna.
Comentários
Confira COLUMN_NAME para obter informações sobre onde as macros COLUMN_NAME_* são usadas.
COLUMN_NAME_TYPE
Representa uma associação no conjunto de linhas à coluna específica no conjunto de linhas. Semelhante a COLUMN_NAME, exceto que esta macro também tem tipo de dados.
Sintaxe
COLUMN_NAME_TYPE(pszName, wType, data)
Parâmetros
pszName
[in] Um ponteiro para o nome da coluna. O nome precisa ser uma cadeia de caracteres Unicode. Você pode fazer isso colocando um 'L' na frente do nome, por exemplo: L"MyColumn"
.
wType
[in] O tipo de dados.
data
[in] O membro de dados correspondente no registro de usuário.
Comentários
Confira COLUMN_NAME para obter informações sobre onde as macros COLUMN_NAME_* são usadas.
COLUMN_NAME_TYPE_PS
Representa uma associação no conjunto de linhas à coluna específica no conjunto de linhas. Semelhante a COLUMN_NAME, exceto que esta macro também tem tipo de dados, precisão e escala.
Sintaxe
COLUMN_NAME_TYPE_PS(pszName, wType, nPrecision, nScale, data)
Parâmetros
pszName
[in] Um ponteiro para o nome da coluna. O nome precisa ser uma cadeia de caracteres Unicode. Você pode fazer isso colocando um 'L' na frente do nome, por exemplo: L"MyColumn"
.
wType
[in] O tipo de dados.
nPrecision
[in] A precisão máxima a ser usada ao obter dados e wType é DBTYPE_NUMERIC
. Caso contrário, esse parâmetro é ignorado.
nScale
[in] A escala a ser usada ao obter dados e wType é DBTYPE_NUMERIC
ou DBTYPE_DECIMAL
.
data
[in] O membro de dados correspondente no registro de usuário.
Comentários
Confira COLUMN_NAME para obter informações sobre onde as macros COLUMN_NAME_* são usadas.
COLUMN_NAME_TYPE_SIZE
Representa uma associação no conjunto de linhas à coluna específica no conjunto de linhas. Semelhante a COLUMN_NAME, exceto que esta macro também tem tamanho e tipo de dados.
Sintaxe
COLUMN_NAME_TYPE_SIZE(pszName, wType, nLength, data)
Parâmetros
pszName
[in] Um ponteiro para o nome da coluna. O nome precisa ser uma cadeia de caracteres Unicode. Você pode fazer isso colocando um 'L' na frente do nome, por exemplo: L"MyColumn"
.
wType
[in] O tipo de dados.
nLength
[in] O tamanho dos dados em bytes.
data
[in] O membro de dados correspondente no registro de usuário.
Comentários
Confira COLUMN_NAME para obter informações sobre onde as macros COLUMN_NAME_* são usadas.
COLUMN_NAME_TYPE_STATUS
Representa uma associação no conjunto de linhas à coluna específica no conjunto de linhas. Semelhante a COLUMN_NAME, exceto que esta macro também tem tipo de dados e status da coluna.
Sintaxe
COLUMN_NAME_TYPE_STATUS(pszName, wType, status, data)
Parâmetros
pszName
[in] Um ponteiro para o nome da coluna. O nome precisa ser uma cadeia de caracteres Unicode. Você pode fazer isso colocando um 'L' na frente do nome, por exemplo: L"MyColumn"
.
wType
[in] O tipo de dados.
status
[in] A variável a ser associada ao status da coluna.
data
[in] O membro de dados correspondente no registro de usuário.
Comentários
Confira COLUMN_NAME para obter informações sobre onde as macros COLUMN_NAME_* são usadas.
END_COLUMN_MAP
Marca o final das entradas do mapa de colunas.
Sintaxe
END_COLUMN_MAP()
Comentários
É usado com apenas um acessador em um conjunto de linhas. A macro BEGIN_COLUMN_MAP é concluída com a macro END_COLUMN_MAP.
Exemplo
Confira BEGIN_COLUMN_MAP.
DEFINE_COMMAND
Especifica o comando que será usado para criar o conjunto de linhas ao usar a classe CCommand. Aceita apenas tipos de cadeia de caracteres que correspondem ao tipo de aplicativo especificado (ANSI ou Unicode).
Observação
É recomendável que você use DEFINE_COMMAND_EX em vez de DEFINE_COMMAND.
Sintaxe
DEFINE_COMMAND(x, szCommand)
Parâmetros
x
[in] O nome da classe de registro (comando) do usuário.
szCommand
[in] A cadeia de caracteres de comando que será usada para criar o conjunto de linhas ao usar CCommand.
Comentários
A cadeia de caracteres de comando que você especificar será usada como padrão se você não especificar texto de comando no método CCommand::Open.
Essa macro aceitará cadeias de caracteres ANSI se você criar seu aplicativo como ANSI ou cadeias de caracteres Unicode se você criar seu aplicativo como Unicode. É recomendável que você use DEFINE_COMMAND_EX em vez de DEFINE_COMMAND, pois o primeiro aceita cadeias de caracteres Unicode, independentemente do tipo de aplicativo ANSI ou Unicode.
Exemplo
Confira BOOKMARK_ENTRY.
DEFINE_COMMAND_EX
Especifica o comando que será usado para criar o conjunto de linhas ao usar a classe CCommand. Dá suporte a aplicativos Unicode e ANSI.
Sintaxe
DEFINE_COMMAND_EX(x, wszCommand)
Parâmetros
x
[in] O nome da classe de registro (comando) do usuário.
wszCommand
[in] A cadeia de caracteres de comando que será usada para criar o conjunto de linhas ao usar CCommand.
Comentários
A cadeia de caracteres de comando que você especificar será usada como padrão se você não especificar texto de comando no método CCommand::Open.
Essa macro aceita cadeias de caracteres Unicode, independentemente do tipo de aplicativo. Essa macro é preferível a DEFINE_COMMAND porque dá suporte a aplicativos Unicode e ANSI.
Exemplo
Confira BOOKMARK_ENTRY.
BEGIN_PARAM_MAP
Marca o início de entradas do mapa de parâmetros.
Sintaxe
BEGIN_PARAM_MAP(x)
Parâmetros
x
[in] O nome da classe de registro do usuário.
Comentários
Os parâmetros são usados por comandos.
Exemplo
Confira o exemplo da macro BEGIN_COLUMN_MAP.
END_PARAM_MAP
Marca o final das entradas do mapa de parâmetros.
Sintaxe
END_PARAM_MAP()
Exemplo
Confira o exemplo da macro BEGIN_PARAM_MAP.
SET_PARAM_TYPE
Especifica macros COLUMN_ENTRY que seguem a entrada, a saída ou a entrada/saída da macro SET_PARAM_TYPE.
Sintaxe
SET_PARAM_TYPE(type)
Parâmetros
tipo
[in] O tipo a ser definido para o parâmetro.
Comentários
Os provedores dão suporte apenas a tipos de entrada/saída de parâmetros compatíveis com a fonte de dados subjacente. O tipo é uma combinação de um ou mais valores DBPARAMIO
(confira Estruturas DBBINDING na Referência de programador do OLE DB):
DBPARAMIO_NOTPARAM
O acessador não tem parâmetros. Normalmente, você defineeParamIO
para esse valor em acessadores de linha para lembrar ao usuário que os parâmetros são ignorados.DBPARAMIO_INPUT
Um parâmetro de entrada.DBPARAMIO_OUTPUT
Um parâmetro de saída.DBPARAMIO_INPUT | DBPARAMIO_OUTPUT
O parâmetro é um parâmetro de saída e de entrada.
Exemplo
class CArtistsProperty
{
public:
short m_nReturn;
short m_nAge;
TCHAR m_szFirstName[21];
TCHAR m_szLastName[31];
BEGIN_PARAM_MAP(CArtistsProperty)
SET_PARAM_TYPE(DBPARAMIO_OUTPUT)
COLUMN_ENTRY(1, m_nReturn)
SET_PARAM_TYPE(DBPARAMIO_INPUT)
COLUMN_ENTRY(2, m_nAge)
END_PARAM_MAP()
BEGIN_COLUMN_MAP(CArtistsProperty)
COLUMN_ENTRY(1, m_szFirstName)
COLUMN_ENTRY(2, m_szLastName)
END_COLUMN_MAP()
HRESULT OpenDataSource()
{
CDataSource _db;
_db.Open();
return m_session.Open(_db);
}
void CloseDataSource()
{
m_session.Close();
}
CSession m_session;
DEFINE_COMMAND_EX(CArtistsProperty, L" \
{ ? = SELECT Age FROM Artists WHERE Age < ? }")
};
Requisitos
Cabeçalho: atldbcli.h
Confira também
Macros e funções globais para modelos de consumidor do OLE DB
Modelos de consumidor OLE DB
Referência de modelos de consumidor do OLE DB