Macros y funciones globales para las plantillas de consumidor OLE DB
Las plantillas de consumidor OLE DB incluyen las siguientes macros y funciones globales:
Funciones globales
Nombre | Descripción |
---|---|
AtlTraceErrorRecords | Vuelca la información del registro de errores de OLE DB en el dispositivo de volcado si se devuelve un error. |
Macros de asignación de descriptores de acceso
Nombre | Descripción |
---|---|
BEGIN_ACCESSOR | Marca el principio de una entrada del descriptor de acceso. |
BEGIN_ACCESSOR_MAP | Marca el principio de las entradas de asignación de descriptores de acceso. |
END_ACCESSOR | Marca el final de una entrada del descriptor de acceso. |
END_ACCESSOR_MAP | Marca el final de las entradas de asignación de descriptores de acceso. |
Macros de asignación de columnas
Nombre | Descripción |
---|---|
BEGIN_COLUMN_MAP | Marca el principio de las entradas de asignación de columnas en la clase de registro de usuario. |
BLOB_ENTRY | Se usa para enlazar un objeto binario grande (BLOB). |
BLOB_ENTRY_LENGTH | Informa de la longitud de la columna de datos del BLOB. |
BLOB_ENTRY_LENGTH_STATUS | Informa de la longitud y el estado de la columna de datos del BLOB. |
BLOB_ENTRY_STATUS | Informa del estado de la columna de datos del BLOB. |
BLOB_NAME | Se usa para enlazar un objeto binario grande por nombre de columna. |
BLOB_NAME_LENGTH | Informa de la longitud de la columna de datos del BLOB. |
BLOB_NAME_LENGTH_STATUS | Informa de la longitud y el estado de la columna de datos del BLOB. |
BLOB_NAME_STATUS | Informa del estado de la columna de datos del BLOB. |
BOOKMARK_ENTRY | Representa una entrada de marcador en el conjunto de filas. Una entrada de marcador es un tipo especial de entrada de columna. |
COLUMN_ENTRY | Representa un enlace a una columna específica de la base de datos. |
COLUMN_ENTRY_EX | Representa un enlace a la columna específica de la base de datos. Admite parámetros de tipo, longitud, precisión, escala y estado. |
COLUMN_ENTRY_LENGTH | Representa un enlace a la columna específica de la base de datos. Admite la variable longitud. |
COLUMN_ENTRY_LENGTH_STATUS | Representa un enlace a la columna específica de la base de datos. Admite los parámetros de estado y longitud. |
COLUMN_ENTRY_PS | Representa un enlace a la columna específica de la base de datos. Admite los parámetros de precisión y escala. |
COLUMN_ENTRY_PS_LENGTH | Representa un enlace a la columna específica de la base de datos. Admite la variable de longitud y los parámetros de precisión y escala. |
COLUMN_ENTRY_PS_LENGTH_STATUS | Representa un enlace a la columna específica de la base de datos. Admite las variable de estado y longitud y los parámetros de precisión y escala. |
COLUMN_ENTRY_PS_STATUS | Representa un enlace a la columna específica de la base de datos. Admite la variable de estado y los parámetros de precisión y escala. |
COLUMN_ENTRY_STATUS | Representa un enlace a la columna específica de la base de datos. Admite la variable de estado. |
COLUMN_ENTRY_TYPE | Representa un enlace a una columna específica de la base de datos. Admite el parámetro de tipo. |
COLUMN_ENTRY_TYPE_SIZE | Representa un enlace a la columna específica de la base de datos. Admite los parámetros de tipo y tamaño. |
COLUMN_NAME | Representa un enlace a una columna específica de la base de datos por nombre. |
COLUMN_NAME_EX | Representa un enlace a una columna específica de la base de datos por nombre. Admite la especificación del tipo de datos, el tamaño, la precisión, la escala, la longitud de la columna y el estado de la columna. |
COLUMN_NAME_LENGTH | Representa un enlace a una columna específica de la base de datos por nombre. Admite la especificación de la longitud de columna. |
COLUMN_NAME_LENGTH_STATUS | Representa un enlace a una columna específica de la base de datos por nombre. Admite la especificación de la longitud y el estado de la columna. |
COLUMN_NAME_PS | Representa un enlace a una columna específica de la base de datos por nombre. Admite la especificación de la precisión y la escala. |
COLUMN_NAME_PS_LENGTH | Representa un enlace a una columna específica de la base de datos por nombre. Admite la especificación de la precisión, la escala y la longitud de la columna. |
COLUMN_NAME_PS_LENGTH_STATUS | Representa un enlace a una columna específica de la base de datos por nombre. Admite la especificación de la precisión, la escala, la longitud de la columna y el estado de la columna. |
COLUMN_NAME_PS_STATUS | Representa un enlace a una columna específica de la base de datos por nombre. Admite la especificación de la precisión, la escala y el estado de la columna. |
COLUMN_NAME_STATUS | Representa un enlace a una columna específica de la base de datos por nombre. Admite la especificación del estado de la columna. |
COLUMN_NAME_TYPE | Representa un enlace a una columna específica de la base de datos por nombre. Admite la especificación del tipo de datos. |
COLUMN_NAME_TYPE_PS | Representa un enlace a una columna específica de la base de datos por nombre. Admite la especificación del tipo de datos, la precisión y la escala. |
COLUMN_NAME_TYPE_SIZE | Representa un enlace a una columna específica de la base de datos por nombre. Admite la especificación del tipo de datos y el tamaño. |
COLUMN_NAME_TYPE_STATUS | Representa un enlace a una columna específica de la base de datos por nombre. Admite la especificación del tipo de datos y el estado de la columna. |
END_COLUMN_MAP | Marca el final de las entradas de asignación de la columna. |
Macros de comandos
Nombre | Descripción |
---|---|
DEFINE_COMMAND | Especifica el comando que se usará para crear el conjunto de filas al usar la clase CCommand. Solo acepta tipos de cadena que coincidan con el tipo de aplicación especificado (ANSI o Unicode). Se recomienda que utilice DEFINE_COMMAND_EX en lugar de DEFINE_COMMAND. |
DEFINE_COMMAND_EX | Especifica el comando que se usará para crear el conjunto de filas al usar la clase CCommand. Admite aplicaciones ANSI y Unicode. |
Macros de asignación de parámetros
Nombre | Descripción |
---|---|
BEGIN_PARAM_MAP | Marca el principio de las entradas de asignación de parámetros en la clase de registro de usuario. |
END_PARAM_MAP | Marca el final de las entradas de asignación de parámetros. |
SET_PARAM_TYPE | Especifica las macros COLUMN_ENTRY que siguen a la macro SET_PARAM_TYPE como entrada, salida o entrada/salida. |
AtlTraceErrorRecords
Vuelca la información del registro de errores de OLE DB en el dispositivo de volcado si se devuelve un error.
Sintaxis
inline void AtlTraceErrorRecords(HRESULT hrErr = S_OK);
Parámetros
hErr
[in] Valor HRESULT devuelto por una función de miembro de plantilla de consumidor OLE DB.
Comentarios
Si hErr no es S_OK, AtlTraceErrorRecords
vuelca la información del registro de errores de OLE DB en el dispositivo de volcado (la pestaña Depurar de la ventana Salida o un archivo). La información del registro de errores, que se obtiene del proveedor, incluye el número de fila, el origen, la descripción, el archivo de ayuda, el contexto y el GUID para cada entrada del registro de error. AtlTraceErrorRecords
vuelca esta información solo en compilaciones de depuración. En las compilaciones de versión, es un código auxiliar vacío optimizado. Para obtener más información, vea CDBErrorInfo (clase).
BEGIN_ACCESSOR
Marca el principio de una entrada del descriptor de acceso.
Sintaxis
BEGIN_ACCESSOR(num, bAuto)
Parámetros
num
[in] Número de desplazamientos cero para el descriptor de acceso en esta asignación de descriptores de acceso.
bAuto
[in] Especifica si este descriptor de acceso es un descriptor de acceso automático o un descriptor de acceso manual. Si es true
, el descriptor de acceso es automático; si es false
, el descriptor de acceso es manual. Un descriptor de acceso automático significa que los datos se capturan automáticamente durante las operaciones de movimiento.
Comentarios
Si hay varios descriptores de acceso en un conjunto de filas, debe especificar BEGIN_ACCESSOR_MAP y usar la macro BEGIN_ACCESSOR para cada descriptor de acceso individual. La macro BEGIN_ACCESSOR se completa con la macro END_ACCESSOR. La macro BEGIN_ACCESSOR_MAP se completa con la macro END_ACCESSOR_MAP.
Ejemplo
Consulte BEGIN_ACCESSOR_MAP.
BEGIN_ACCESSOR_MAP
Marca el principio de las entradas de asignación de descriptores de acceso.
Sintaxis
BEGIN_ACCESSOR_MAP(x, num)
Parámetros
x
[in] Nombre de la clase de registro de usuario.
num
[in] Número de descriptores de acceso de esta asignación de descriptores de acceso.
Comentarios
Si hay varios descriptores de acceso en un conjunto de filas, debe especificar BEGIN_ACCESSOR_MAP al principio y usar la macro BEGIN_ACCESSOR para cada descriptor de acceso individual. La macro BEGIN_ACCESSOR se completa con la macro END_ACCESSOR. La asignación de descriptores de acceso se completa con la macro END_ACCESSOR_MAP.
Si solo tiene un descriptor de acceso en el registro de usuario, use la macro BEGIN_COLUMN_MAP.
Ejemplo
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 el final de una entrada del descriptor de acceso.
Sintaxis
END_ACCESSOR()
Comentarios
Si hay varios descriptores de acceso en un conjunto de filas, debe especificar BEGIN_ACCESSOR_MAP y usar la macro BEGIN_ACCESSOR para cada descriptor de acceso individual. La macro BEGIN_ACCESSOR se completa con la macro END_ACCESSOR. La macro BEGIN_ACCESSOR_MAP se completa con la macro END_ACCESSOR_MAP.
Ejemplo
Consulte BEGIN_ACCESSOR_MAP.
END_ACCESSOR_MAP
Marca el final de las entradas de asignación de descriptores de acceso.
Sintaxis
END_ACCESSOR_MAP()
Comentarios
Si hay varios descriptores de acceso en un conjunto de filas, debe especificar BEGIN_ACCESSOR_MAP y usar la macro BEGIN_ACCESSOR para cada descriptor de acceso individual. La macro BEGIN_ACCESSOR se completa con la macro END_ACCESSOR. La macro BEGIN_ACCESSOR_MAP se completa con la macro END_ACCESSOR_MAP.
Ejemplo
Consulte BEGIN_ACCESSOR_MAP.
BEGIN_COLUMN_MAP
Marca el inicio de una entrada de mapa de columnas.
Sintaxis
BEGIN_COLUMN_MAP(x)
Parámetros
x
[in] Nombre de la clase de registro de usuario derivada de CAccessor
.
Comentarios
Esta macro se usa en el caso de un único descriptor de acceso en un conjunto de filas. Si tiene varios descriptores de acceso en un conjunto de filas, use BEGIN_ACCESSOR_MAP.
La macro BEGIN_COLUMN_MAP se completa con la macro END_COLUMN_MAP. Esta macro se usa cuando solamente hay un descriptor de acceso necesario en el registro de usuario.
Las columnas corresponden a los campos del conjunto de filas que quiere enlazar.
Ejemplo
Este es un mapa de columnas y parámetros de ejemplo:
BLOB_ENTRY
Se usa con BEGIN_COLUMN_MAP y END_COLUMN_MAP para enlazar un objeto binario grande (BLOB).
Sintaxis
BLOB_ENTRY(nOrdinal, IID, flags, data)
Parámetros
nOrdinal
[in] Número de la columna.
IID
[in] GUID de interfaz, como IDD_ISequentialStream
, que se usa para recuperar el BLOB.
flags
[in] Marcas en modo de almacenamiento definidas por el modelo de almacenamiento estructurado OLE (por ejemplo, STGM_READ
).
data
[in] Miembro de datos correspondiente en el registro de usuario.
Ejemplo
Consulte ¿Cómo puedo recuperar un BLOB?.
BLOB_ENTRY_LENGTH
Se usa con BEGIN_COLUMN_MAP y END_COLUMN_MAP para enlazar un objeto binario grande (BLOB). Similar a BLOB_ENTRY, salvo que esta macro también obtiene la longitud en bytes de la columna BLOB.
Sintaxis
BLOB_ENTRY_LENGTH(nOrdinal, IID, flags, data, length)
Parámetros
nOrdinal
[in] Número de la columna.
IID
[in] GUID de interfaz, como IDD_ISequentialStream
, que se usa para recuperar el BLOB.
flags
[in] Marcas en modo de almacenamiento definidas por el modelo de almacenamiento estructurado OLE (por ejemplo, STGM_READ
).
data
[in] Miembro de datos correspondiente en el registro de usuario.
length
[out] Longitud (real) en bytes de la columna BLOB.
Ejemplo
Consulte ¿Cómo puedo recuperar un BLOB?.
BLOB_ENTRY_LENGTH_STATUS
Se usa con BEGIN_COLUMN_MAP y END_COLUMN_MAP para enlazar un objeto binario grande (BLOB). Similar a BLOB_ENTRY, salvo que esta macro también obtiene la longitud y el estado de la columna BLOB.
Sintaxis
BLOB_ENTRY_LENGTH_STATUS(
nOrdinal,
IID,
flags,
data,
length,
status )
Parámetros
nOrdinal
[in] Número de la columna.
IID
[in] GUID de interfaz, como IDD_ISequentialStream
, que se usa para recuperar el BLOB.
flags
[in] Marcas en modo de almacenamiento definidas por el modelo de almacenamiento estructurado OLE (por ejemplo, STGM_READ
).
data
[in] Miembro de datos correspondiente en el registro de usuario.
length
[out] Longitud (real) en bytes de la columna BLOB.
status
[out] Estado de la columna de datos BLOB.
Ejemplo
Consulte ¿Cómo puedo recuperar un BLOB?.
BLOB_ENTRY_STATUS
Se usa con BEGIN_COLUMN_MAP o BEGIN_ACCESSOR_MAP para enlazar un objeto binario grande (BLOB). Similar a BLOB_ENTRY, salvo que esta macro también obtiene el estado de la columna BLOB.
Sintaxis
BLOB_ENTRY_STATUS(nOrdinal, IID, flags, data, status)
Parámetros
nOrdinal
[in] Número de la columna.
IID
[in] GUID de interfaz, como IDD_ISequentialStream
, que se usa para recuperar el BLOB.
flags
[in] Marcas en modo de almacenamiento definidas por el modelo de almacenamiento estructurado OLE (por ejemplo, STGM_READ
).
data
[in] Miembro de datos correspondiente en el registro de usuario.
status
[out] Estado del campo BLOB.
Ejemplo
Consulte ¿Cómo puedo recuperar un BLOB?.
BLOB_NAME
Se usa con BEGIN_COLUMN_MAP y END_COLUMN_MAP para enlazar un objeto binario grande (BLOB). Similar a BLOB_ENTRY, salvo que esta macro toma un nombre de columna en lugar de un número de columna.
Sintaxis
BLOB_NAME(pszName, IID, flags, data )
Parámetros
pszName
[in] Puntero al nombre de columna. Debe ser una cadena Unicode. Para ello, coloque una "L" delante del nombre, por ejemplo: L"MyColumn"
.
IID
[in] GUID de interfaz, como IDD_ISequentialStream
, que se usa para recuperar el BLOB.
flags
[in] Marcas en modo de almacenamiento definidas por el modelo de almacenamiento estructurado OLE (por ejemplo, STGM_READ
).
data
[in] Miembro de datos correspondiente en el registro de usuario.
Ejemplo
Consulte ¿Cómo puedo recuperar un BLOB?.
BLOB_NAME_LENGTH
Se usa con BEGIN_COLUMN_MAP y END_COLUMN_MAP para enlazar un objeto binario grande (BLOB). Similar a BLOB_NAME, salvo que esta macro también obtiene la longitud en bytes de la columna de datos BLOB.
Sintaxis
BLOB_NAME_LENGTH(pszName, IID, flags, data, length )
Parámetros
pszName
[in] Puntero al nombre de columna. Debe ser una cadena Unicode. Para ello, coloque una "L" delante del nombre, por ejemplo: L"MyColumn"
.
IID
[in] GUID de interfaz, como IDD_ISequentialStream
, que se usa para recuperar el BLOB.
flags
[in] Marcas en modo de almacenamiento definidas por el modelo de almacenamiento estructurado OLE (por ejemplo, STGM_READ
).
data
[in] Miembro de datos correspondiente en el registro de usuario.
length
[out] Longitud (real) en bytes de la columna BLOB.
BLOB_NAME_LENGTH_STATUS
Se usa con BEGIN_COLUMN_MAP y END_COLUMN_MAP para enlazar un objeto binario grande (BLOB). Similar a BLOB_NAME, salvo que esta macro también obtiene la longitud y el estado de la columna de datos BLOB.
Sintaxis
BLOB_NAME_LENGTH_STATUS(pszName, IID, flags, data, length, status )
Parámetros
pszName
[in] Puntero al nombre de columna. Debe ser una cadena Unicode. Para ello, coloque una "L" delante del nombre, por ejemplo: L"MyColumn"
.
IID
[in] GUID de interfaz, como IDD_ISequentialStream
, que se usa para recuperar el BLOB.
flags
[in] Marcas en modo de almacenamiento definidas por el modelo de almacenamiento estructurado OLE (por ejemplo, STGM_READ
).
data
[in] Miembro de datos correspondiente en el registro de usuario.
length
[out] Longitud (real) en bytes de la columna BLOB.
status
[out] Estado del campo BLOB.
BLOB_NAME_STATUS
Se usa con BEGIN_COLUMN_MAP y END_COLUMN_MAP para enlazar un objeto binario grande (BLOB). Similar a BLOB_NAME, salvo que esta macro también obtiene el estado de la columna de datos BLOB.
Sintaxis
BLOB_NAME_STATUS(pszName, IID, flags, data, status )
Parámetros
pszName
[in] Puntero al nombre de columna. Debe ser una cadena Unicode. Para ello, coloque una "L" delante del nombre, por ejemplo: L"MyColumn"
.
IID
[in] GUID de interfaz, como IDD_ISequentialStream
, que se usa para recuperar el BLOB.
flags
[in] Marcas en modo de almacenamiento definidas por el modelo de almacenamiento estructurado OLE (por ejemplo, STGM_READ
).
data
[in] Miembro de datos correspondiente en el registro de usuario.
status
[out] Estado del campo BLOB.
BOOKMARK_ENTRY
Enlaza la columna de marcador.
Sintaxis
BOOKMARK_ENTRY(variable)
Parámetros
variable
[in] Variable que se va a enlazar a la columna de marcador.
Ejemplo
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 obtener más información, vea Uso de marcadores y CBookmark (clase).
COLUMN_ENTRY
Representa un enlace en el conjunto de filas a la columna específica del conjunto de filas.
Sintaxis
COLUMN_ENTRY(nOrdinal, data)
Parámetros
Consulte DBBINDING en la Referencia del programador de OLE DB.
nOrdinal
[in] Número de la columna.
data
[in] Miembro de datos correspondiente en el registro de usuario.
Comentarios
La macro COLUMN_ENTRY se usa en los siguientes lugares:
Entre las macros BEGIN_COLUMN_MAP y END_COLUMN_MAP.
Entre las macros BEGIN_ACCESSOR y END_ACCESSOR.
Entre las macros BEGIN_PARAM_MAP y END_PARAM_MAP.
Ejemplo
Consulte los ejemplos de los temas de macro, BEGIN_COLUMN_MAP y BEGIN_ACCESSOR_MAP.
COLUMN_ENTRY_EX
Representa un enlace en el conjunto de filas a la columna específica de la base de datos.
Sintaxis
COLUMN_ENTRY_EX(nOrdinal, wType, nLength, nPrecision, nScale, data, length, status)
Parámetros
Consulte DBBINDING en la Referencia del programador de OLE DB.
nOrdinal
[in] Número de la columna.
wType
[in] Tipo de datos.
nLength
[in] Tamaño de los datos en bytes.
nPrecision
[in] Precisión máxima que se va a usar al obtener datos y wType es DBTYPE_NUMERIC
. De lo contrario, se omite este parámetro.
nScale
[in] Escala que se va a usar al obtener datos y wType es DBTYPE_NUMERIC
o DBTYPE_DECIMAL
.
data
[in] Miembro de datos correspondiente en el registro de usuario.
length
[in] Variable que se va a enlazar a la longitud de la columna.
status
[in] Variable que se va a enlazar al estado de la columna.
Comentarios
La macro COLUMN_ENTRY_EX se usa en los siguientes lugares:
Entre las macros BEGIN_COLUMN_MAP y END_COLUMN_MAP.
Entre las macros BEGIN_ACCESSOR y END_ACCESSOR.
Entre las macros BEGIN_PARAM_MAP y END_PARAM_MAP.
Ejemplo
Consulte BOOKMARK_ENTRY.
COLUMN_ENTRY_LENGTH
Representa un enlace en el conjunto de filas a la columna específica de la base de datos.
Sintaxis
COLUMN_ENTRY_LENGTH(nOrdinal, data, length)
Parámetros
Consulte DBBINDING en la Referencia del programador de OLE DB.
nOrdinal
[in] Número de columna, empezando por uno. El marcador corresponde a la columna cero.
data
[in] Miembro de datos correspondiente en el registro de usuario.
length
[in] Variable que se va a enlazar a la longitud de la columna.
Comentarios
Esta macro admite la variable longitud. Se usa en los siguientes lugares:
Entre las macros BEGIN_COLUMN_MAP y END_COLUMN_MAP.
Entre las macros BEGIN_ACCESSOR y END_ACCESSOR.
Entre las macros BEGIN_PARAM_MAP y END_PARAM_MAP.
COLUMN_ENTRY_LENGTH_STATUS
Representa un enlace en el conjunto de filas a la columna específica de la base de datos.
Sintaxis
COLUMN_ENTRY_LENGTH_STATUS(nOrdinal, data, length, status)
Parámetros
Consulte DBBINDING en la Referencia del programador de OLE DB.
nOrdinal
[in] Número de la columna.
data
[in] Miembro de datos correspondiente en el registro de usuario.
length
[in] Variable que se va a enlazar a la longitud de la columna.
status
[in] Variable que se va a enlazar al estado de la columna.
Comentarios
Use esta macro cuando desee admitir variables de longitud y estado. Se usa en los siguientes lugares:
Entre las macros BEGIN_COLUMN_MAP y END_COLUMN_MAP.
Entre las macros BEGIN_ACCESSOR y END_ACCESSOR.
Entre las macros BEGIN_PARAM_MAP y END_PARAM_MAP.
COLUMN_ENTRY_PS
Representa un enlace en el conjunto de filas a la columna específica del conjunto de filas.
Sintaxis
COLUMN_ENTRY_PS(nOrdinal, nPrecision, nScale, data)
Parámetros
Consulte DBBINDING en la Referencia del programador de OLE DB.
nOrdinal
[in] Número de la columna.
nPrecision
[in] Precisión máxima de la columna que desea enlazar.
nScale
[in] Escala de la columna que desea enlazar.
data
[in] Miembro de datos correspondiente en el registro de usuario.
Comentarios
Permite especificar la precisión y la escala de la columna que desea enlazar. Se usa en los siguientes lugares:
Entre las macros BEGIN_COLUMN_MAP y END_COLUMN_MAP.
Entre las macros BEGIN_ACCESSOR y END_ACCESSOR.
Entre las macros BEGIN_PARAM_MAP y END_PARAM_MAP.
COLUMN_ENTRY_PS_LENGTH
Representa un enlace en el conjunto de filas a la columna específica de la base de datos.
Sintaxis
COLUMN_ENTRY_PS_LENGTH(nOrdinal, nPrecision, nScale, data, length)
Parámetros
Consulte DBBINDING en la Referencia del programador de OLE DB.
nOrdinal
[in] Número de columna, empezando por uno. El marcador corresponde a la columna cero.
nPrecision
[in] Precisión máxima de la columna que desea enlazar.
nScale
[in] Escala de la columna que desea enlazar.
data
[in] Miembro de datos correspondiente en el registro de usuario.
length
[in] Variable que se va a enlazar a la longitud de la columna.
Comentarios
Permite especificar la precisión y la escala de la columna que desea enlazar. Esta macro admite la variable longitud. Se usa en los siguientes lugares:
Entre las macros BEGIN_COLUMN_MAP y END_COLUMN_MAP.
Entre las macros BEGIN_ACCESSOR y END_ACCESSOR.
Entre las macros BEGIN_PARAM_MAP y END_PARAM_MAP.
COLUMN_ENTRY_PS_LENGTH_STATUS
Representa un enlace en el conjunto de filas a la columna específica de la base de datos.
Sintaxis
COLUMN_ENTRY_PS_LENGTH_STATUS(nOrdinal, nPrecision, nScale, data, length, status)
Parámetros
Consulte DBBINDING en la Referencia del programador de OLE DB.
nOrdinal
[in] Número de la columna.
nPrecision
[in] Precisión máxima de la columna que desea enlazar.
nScale
[in] Escala de la columna que desea enlazar.
data
[in] Miembro de datos correspondiente en el registro de usuario.
length
[in] Variable que se va a enlazar a la longitud de la columna.
status
[in] Variable que se va a enlazar al estado de la columna.
Comentarios
Permite especificar la precisión y la escala de la columna que desea enlazar. Use esta macro cuando desee admitir variables de longitud y estado. Se usa en los siguientes lugares:
Entre las macros BEGIN_COLUMN_MAP y END_COLUMN_MAP.
Entre las macros BEGIN_ACCESSOR y END_ACCESSOR.
Entre las macros BEGIN_PARAM_MAP y END_PARAM_MAP.
COLUMN_ENTRY_PS_STATUS
Representa un enlace en el conjunto de filas a la columna específica de la base de datos.
Sintaxis
COLUMN_ENTRY_PS_STATUS(nOrdinal, nPrecision, nScale, data, status)
Parámetros
Consulte DBBINDING en la Referencia del programador de OLE DB.
nOrdinal
[in] Número de la columna.
nPrecision
[in] Precisión máxima de la columna que desea enlazar.
nScale
[in] Escala de la columna que desea enlazar.
data
[in] Miembro de datos correspondiente en el registro de usuario.
status
[in] Variable que se va a enlazar al estado de la columna.
Comentarios
Permite especificar la precisión y la escala de la columna que desea enlazar. Esta macro admite la variable de estado. Se usa en los siguientes lugares:
Entre las macros BEGIN_COLUMN_MAP y END_COLUMN_MAP.
Entre las macros BEGIN_ACCESSOR y END_ACCESSOR.
Entre las macros BEGIN_PARAM_MAP y END_PARAM_MAP.
COLUMN_ENTRY_STATUS
Representa un enlace en el conjunto de filas a la columna específica de la base de datos.
Sintaxis
COLUMN_ENTRY_STATUS(nOrdinal, data, status)
Parámetros
Consulte DBBINDING en la Referencia del programador de OLE DB.
nOrdinal
[in] Número de la columna.
data
[in] Miembro de datos correspondiente en el registro de usuario.
status
[in] Variable que se va a enlazar al estado de la columna.
Comentarios
Esta macro admite la variable de estado. Se usa en los siguientes lugares:
Entre las macros BEGIN_COLUMN_MAP y END_COLUMN_MAP.
Entre las macros BEGIN_ACCESSOR y END_ACCESSOR.
Entre las macros BEGIN_PARAM_MAP y END_PARAM_MAP.
COLUMN_ENTRY_TYPE
Representa un enlace a la columna específica de la base de datos. Admite el parámetro de tipo.
Sintaxis
COLUMN_ENTRY_TYPE (nOrdinal, wType, data)
Parámetros
nOrdinal
[in] Número de la columna.
wType
[in] Tipo de datos de la entrada de la columna.
data
[in] Miembro de datos correspondiente en el registro de usuario.
Comentarios
Esta macro es una variante especializada de la macro COLUMN_ENTRY que proporciona un medio para especificar el tipo de datos.
COLUMN_ENTRY_TYPE_SIZE
Representa un enlace a la columna específica de la base de datos. Admite los parámetros de tipo y tamaño.
Sintaxis
COLUMN_ENTRY_TYPE_SIZE(nOrdinal, wType, nLength, data)
Parámetros
nOrdinal
[in] Número de la columna.
wType
[in] Tipo de datos de la entrada de la columna.
nLength
[in] Tamaño de la entrada de columna en bytes.
data
[in] Miembro de datos correspondiente en el registro de usuario.
Comentarios
Esta macro es una variante especializada de la macro COLUMN_ENTRY que proporciona un medio para especificar el tamaño y el tipo de datos.
COLUMN_NAME
Representa un enlace en el conjunto de filas a la columna específica del conjunto de filas. Similar a COLUMN_ENTRY, salvo que esta macro toma el nombre de la columna en lugar del número de la columna.
Sintaxis
COLUMN_NAME(pszName, data)
Parámetros
pszName
[in] Puntero al nombre de columna. Debe ser una cadena Unicode. Para ello, coloque una "L" delante del nombre, por ejemplo: L"MyColumn"
.
data
[in] Miembro de datos correspondiente en el registro de usuario.
Comentarios
Las macros COLUMN_NAME_* se usan en los mismos lugares que COLUMN_ENTRY:
Entre las macros BEGIN_COLUMN_MAP y END_COLUMN_MAP.
Entre las macros BEGIN_ACCESSOR y END_ACCESSOR.
Entre las macros BEGIN_PARAM_MAP y END_PARAM_MAP.
COLUMN_NAME_EX
Representa un enlace en el conjunto de filas a la columna específica del conjunto de filas. Similar a COLUMN_NAME, salvo que esta macro también toma el tipo de datos, el tamaño, la precisión, la escala, la longitud de la columna y el estado de la columna.
Sintaxis
COLUMN_NAME_EX(pszName, wType, nLength, nPrecision, nScale, data, length, status )
Parámetros
pszName
[in] Puntero al nombre de columna. Debe ser una cadena Unicode. Para ello, coloque una "L" delante del nombre, por ejemplo: L"MyColumn"
.
wType
[in] Tipo de datos.
nLength
[in] Tamaño de los datos en bytes.
nPrecision
[in] Precisión máxima que se va a usar al obtener datos y wType es DBTYPE_NUMERIC
. De lo contrario, se omite este parámetro.
nScale
[in] Escala que se va a usar al obtener datos y wType es DBTYPE_NUMERIC
o DBTYPE_DECIMAL
.
data
[in] Miembro de datos correspondiente en el registro de usuario.
length
[in] Variable que se va a enlazar a la longitud de la columna.
status
[in] Variable que se va a enlazar al estado de la columna.
Comentarios
Consulte COLUMN_NAME para obtener información sobre dónde se usan las macros COLUMN_NAME_*.
COLUMN_NAME_LENGTH
Representa un enlace en el conjunto de filas a la columna específica del conjunto de filas. Similar a COLUMN_NAME, salvo que esta macro también toma longitud de la columna.
Sintaxis
COLUMN_NAME_LENGTH(pszName, data, length)
Parámetros
pszName
[in] Puntero al nombre de columna. Debe ser una cadena Unicode. Para ello, coloque una "L" delante del nombre, por ejemplo: L"MyColumn"
.
data
[in] Miembro de datos correspondiente en el registro de usuario.
length
[in] Variable que se va a enlazar a la longitud de la columna.
Comentarios
Consulte COLUMN_NAME para obtener información sobre dónde se usan las macros COLUMN_NAME_*.
COLUMN_NAME_LENGTH_STATUS
Representa un enlace en el conjunto de filas a la columna específica del conjunto de filas. Similar a COLUMN_NAME, salvo que esta macro también toma la longitud y el estado de la columna.
Sintaxis
COLUMN_NAME_LENGTH_STATUS(pszName, data, length, status )
Parámetros
pszName
[in] Puntero al nombre de columna. Debe ser una cadena Unicode. Para ello, coloque una "L" delante del nombre, por ejemplo: L"MyColumn"
.
data
[in] Miembro de datos correspondiente en el registro de usuario.
length
[in] Variable que se va a enlazar a la longitud de la columna.
status
[in] Variable que se va a enlazar al estado de la columna.
Comentarios
Consulte COLUMN_NAME para obtener información sobre dónde se usan las macros COLUMN_NAME_*.
COLUMN_NAME_PS
Representa un enlace en el conjunto de filas a la columna específica del conjunto de filas. Similar a COLUMN_NAME, salvo que esta macro también toma la precisión y la escala.
Sintaxis
COLUMN_NAME_PS(pszName, nPrecision, nScale, data )
Parámetros
pszName
[in] Puntero al nombre de columna. Debe ser una cadena Unicode. Para ello, coloque una "L" delante del nombre, por ejemplo: L"MyColumn"
.
nPrecision
[in] Precisión máxima de la columna que desea enlazar.
nScale
[in] Escala de la columna que desea enlazar.
data
[in] Miembro de datos correspondiente en el registro de usuario.
Comentarios
Consulte COLUMN_NAME para obtener información sobre dónde se usan las macros COLUMN_NAME_*.
COLUMN_NAME_PS_LENGTH
Representa un enlace en el conjunto de filas a la columna específica del conjunto de filas. Similar a COLUMN_NAME, salvo que esta macro también toma la precisión, la escala y la longitud de la columna.
Sintaxis
COLUMN_NAME_PS_LENGTH(pszName, nPrecision, nScale, data, length )
Parámetros
pszName
[in] Puntero al nombre de columna. Debe ser una cadena Unicode. Para ello, coloque una "L" delante del nombre, por ejemplo: L"MyColumn"
.
nPrecision
[in] Precisión máxima de la columna que desea enlazar.
nScale
[in] Escala de la columna que desea enlazar.
data
[in] Miembro de datos correspondiente en el registro de usuario.
length
[in] Variable que se va a enlazar a la longitud de la columna.
Comentarios
Consulte COLUMN_NAME para obtener información sobre dónde se usan las macros COLUMN_NAME_*.
COLUMN_NAME_PS_LENGTH_STATUS
Representa un enlace en el conjunto de filas a la columna específica del conjunto de filas. Similar a COLUMN_NAME, salvo que esta macro también toma la precisión, la escala, la longitud de la columna y el estado de la columna.
Sintaxis
COLUMN_NAME_PS_LENGTH_STATUS(pszName, nPrecision, nScale, data, length, status )
Parámetros
pszName
[in] Puntero al nombre de columna. Debe ser una cadena Unicode. Para ello, coloque una "L" delante del nombre, por ejemplo: L"MyColumn"
.
nPrecision
[in] Precisión máxima de la columna que desea enlazar.
nScale
[in] Escala de la columna que desea enlazar.
data
[in] Miembro de datos correspondiente en el registro de usuario.
length
[in] Variable que se va a enlazar a la longitud de la columna.
status
[in] Variable que se va a enlazar al estado de la columna.
Comentarios
Consulte COLUMN_NAME para obtener información sobre dónde se usan las macros COLUMN_NAME_*.
COLUMN_NAME_PS_STATUS
Representa un enlace en el conjunto de filas a la columna específica del conjunto de filas. Similar a COLUMN_NAME, salvo que esta macro también toma la precisión, la escala y el estado de la columna.
Sintaxis
COLUMN_NAME_PS_STATUS(pszName, nPrecision, nScale, data, status )
Parámetros
pszName
[in] Puntero al nombre de columna. Debe ser una cadena Unicode. Para ello, coloque una "L" delante del nombre, por ejemplo: L"MyColumn"
.
nPrecision
[in] Precisión máxima de la columna que desea enlazar.
nScale
[in] Escala de la columna que desea enlazar.
data
[in] Miembro de datos correspondiente en el registro de usuario.
status
[in] Variable que se va a enlazar al estado de la columna.
Comentarios
Consulte COLUMN_NAME para obtener información sobre dónde se usan las macros COLUMN_NAME_*.
COLUMN_NAME_STATUS
Representa un enlace en el conjunto de filas a la columna específica del conjunto de filas. Similar a COLUMN_NAME, salvo que esta macro también toma el estado de la columna.
Sintaxis
COLUMN_NAME_STATUS(pszName, data, status )
Parámetros
pszName
[in] Puntero al nombre de columna. Debe ser una cadena Unicode. Para ello, coloque una "L" delante del nombre, por ejemplo: L"MyColumn"
.
data
[in] Miembro de datos correspondiente en el registro de usuario.
status
[in] Variable que se va a enlazar al estado de la columna.
Comentarios
Consulte COLUMN_NAME para obtener información sobre dónde se usan las macros COLUMN_NAME_*.
COLUMN_NAME_TYPE
Representa un enlace en el conjunto de filas a la columna específica del conjunto de filas. Similar a COLUMN_NAME, salvo que esta macro también toma el tipo de datos.
Sintaxis
COLUMN_NAME_TYPE(pszName, wType, data)
Parámetros
pszName
[in] Puntero al nombre de columna. Debe ser una cadena Unicode. Para ello, coloque una "L" delante del nombre, por ejemplo: L"MyColumn"
.
wType
[in] Tipo de datos.
data
[in] Miembro de datos correspondiente en el registro de usuario.
Comentarios
Consulte COLUMN_NAME para obtener información sobre dónde se usan las macros COLUMN_NAME_*.
COLUMN_NAME_TYPE_PS
Representa un enlace en el conjunto de filas a la columna específica del conjunto de filas. Similar a COLUMN_NAME, salvo que esta macro también toma el tipo de datos, la precisión y la escala.
Sintaxis
COLUMN_NAME_TYPE_PS(pszName, wType, nPrecision, nScale, data)
Parámetros
pszName
[in] Puntero al nombre de columna. Debe ser una cadena Unicode. Para ello, coloque una "L" delante del nombre, por ejemplo: L"MyColumn"
.
wType
[in] Tipo de datos.
nPrecision
[in] Precisión máxima que se va a usar al obtener datos y wType es DBTYPE_NUMERIC
. De lo contrario, se omite este parámetro.
nScale
[in] Escala que se va a usar al obtener datos y wType es DBTYPE_NUMERIC
o DBTYPE_DECIMAL
.
data
[in] Miembro de datos correspondiente en el registro de usuario.
Comentarios
Consulte COLUMN_NAME para obtener información sobre dónde se usan las macros COLUMN_NAME_*.
COLUMN_NAME_TYPE_SIZE
Representa un enlace en el conjunto de filas a la columna específica del conjunto de filas. Similar a COLUMN_NAME, salvo que esta macro también toma el tipo de datos y el tamaño.
Sintaxis
COLUMN_NAME_TYPE_SIZE(pszName, wType, nLength, data)
Parámetros
pszName
[in] Puntero al nombre de columna. Debe ser una cadena Unicode. Para ello, coloque una "L" delante del nombre, por ejemplo: L"MyColumn"
.
wType
[in] Tipo de datos.
nLength
[in] Tamaño de los datos en bytes.
data
[in] Miembro de datos correspondiente en el registro de usuario.
Comentarios
Consulte COLUMN_NAME para obtener información sobre dónde se usan las macros COLUMN_NAME_*.
COLUMN_NAME_TYPE_STATUS
Representa un enlace en el conjunto de filas a la columna específica del conjunto de filas. Similar a COLUMN_NAME, salvo que esta macro también toma el tipo de datos y el estado de la columna.
Sintaxis
COLUMN_NAME_TYPE_STATUS(pszName, wType, status, data)
Parámetros
pszName
[in] Puntero al nombre de columna. Debe ser una cadena Unicode. Para ello, coloque una "L" delante del nombre, por ejemplo: L"MyColumn"
.
wType
[in] Tipo de datos.
status
[in] Variable que se va a enlazar al estado de la columna.
data
[in] Miembro de datos correspondiente en el registro de usuario.
Comentarios
Consulte COLUMN_NAME para obtener información sobre dónde se usan las macros COLUMN_NAME_*.
END_COLUMN_MAP
Marca el final de las entradas de asignación de la columna.
Sintaxis
END_COLUMN_MAP()
Comentarios
Se usa con un único descriptor de acceso en un conjunto de filas. La macro BEGIN_COLUMN_MAP se completa con la macro END_COLUMN_MAP.
Ejemplo
Consulte BEGIN_COLUMN_MAP.
DEFINE_COMMAND
Especifica el comando que se usará para crear el conjunto de filas al usar la clase CCommand. Solo acepta tipos de cadena que coincidan con el tipo de aplicación especificado (ANSI o Unicode).
Nota:
Se recomienda que utilice DEFINE_COMMAND_EX en lugar de DEFINE_COMMAND.
Sintaxis
DEFINE_COMMAND(x, szCommand)
Parámetros
x
[in] Nombre de la clase de registro de usuario (comando).
szCommand
[in] Cadena de comando que se usará para crear el conjunto de filas al usar CCommand.
Comentarios
La cadena de comando que especifique se usará como valor predeterminado si no especifica el texto del comando en el método CCommand::Open.
Esta macro acepta cadenas ANSI si compila la aplicación como ANSI, o cadenas Unicode si compila la aplicación como Unicode. Se recomienda usar DEFINE_COMMAND_EX en lugar de DEFINE_COMMAND, ya que el primero acepta cadenas Unicode, independientemente del tipo de aplicación ANSI o Unicode.
Ejemplo
Consulte BOOKMARK_ENTRY.
DEFINE_COMMAND_EX
Especifica el comando que se usará para crear el conjunto de filas al usar la clase CCommand. Admite aplicaciones Unicode y ANSI.
Sintaxis
DEFINE_COMMAND_EX(x, wszCommand)
Parámetros
x
[in] Nombre de la clase de registro de usuario (comando).
wszCommand
[in] Cadena de comando que se usará para crear el conjunto de filas al usar CCommand.
Comentarios
La cadena de comando que especifique se usará como valor predeterminado si no especifica el texto del comando en el método CCommand::Open.
Esta macro acepta cadenas Unicode, independientemente del tipo de aplicación. Esta macro es preferible a DEFINE_COMMAND porque es compatible con Unicode, así como con aplicaciones ANSI.
Ejemplo
Consulte BOOKMARK_ENTRY.
BEGIN_PARAM_MAP
Marca el principio de las entradas de asignación de parámetros.
Sintaxis
BEGIN_PARAM_MAP(x)
Parámetros
x
[in] Nombre de la clase de registro de usuario.
Comentarios
Los comandos usan parámetros.
Ejemplo
Vea el ejemplo de la macro BEGIN_COLUMN_MAP.
END_PARAM_MAP
Marca el final de las entradas de asignación de parámetros.
Sintaxis
END_PARAM_MAP()
Ejemplo
Vea el ejemplo de la macro BEGIN_PARAM_MAP.
SET_PARAM_TYPE
Especifica las macros COLUMN_ENTRY que siguen la entrada, la salida o la entrada y salida de macro de SET_PARAM_TYPE.
Sintaxis
SET_PARAM_TYPE(type)
Parámetros
type
[in] El tipo del conjunto para el parámetro.
Comentarios
Los proveedores solo admiten los tipos de entrada y salida de parámetros admitidos por el origen de datos subyacente. El tipo es una combinación de uno o más valores DBPARAMIO
(vea Estructuras DBBINDING en la Referencia del programador de OLE DB):
DBPARAMIO_NOTPARAM
El descriptor de acceso no tiene ningún parámetro. Normalmente, estableceeParamIO
en este valor en los descriptores de acceso de la fila para recordar al usuario que los parámetros se omiten.DBPARAMIO_INPUT
Parámetro de entrada.DBPARAMIO_OUTPUT
Parámetro de salida.DBPARAMIO_INPUT | DBPARAMIO_OUTPUT
El parámetro es un parámetro de entrada y de salida.
Ejemplo
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
Encabezado: atldbcli.h
Consulte también
Macros y funciones globales para las plantillas de consumidor OLE DB
Plantillas de consumidor OLE DB
Referencia de plantillas de consumidor OLE DB