CDynamicParameterAccessor (clase)
Similar a CDynamicAccessor , pero obtiene la información de parámetros que se va a establecer llamando a la interfaz ICommandWithParameters .
Sintaxis
class CDynamicParameterAccessor : public CDynamicAccessor
Requisitos
Encabezado: atldbcli.h
Miembros
Métodos
Nombre | Descripción |
---|---|
CDynamicParameterAccessor | Constructor . |
GetParam | Recupera los datos de parámetros del búfer. |
GetParamCount | Recupera el número de parámetros en el descriptor de acceso. |
GetParamIO | Determina si el parámetro especificado es un parámetro de entrada o salida. |
GetParamLength | Recupera la longitud del parámetro especificado almacenado en el búfer. |
GetParamName | Recupera el nombre de un parámetro especificado. |
GetParamStatus | Recupera el estado del parámetro especificado almacenado en el búfer. |
GetParamString | Recupera los datos de cadena del parámetro especificado almacenado en el búfer. |
GetParamType | Recupera el tipo de datos de un parámetro especificado. |
SetParam | Establece el búfer con los datos de parámetros. |
SetParamLength | Establece la longitud del parámetro especificado almacenado en el búfer. |
SetParamStatus | Establece el estado del parámetro especificado almacenado en el búfer. |
SetParamString | Establece los datos de cadena del parámetro especificado almacenado en el búfer. |
Comentarios
El proveedor debe admitir ICommandWithParameters
para que el consumidor pueda usar esta clase.
La información de parámetros se almacena en un búfer creado y administrado por esta clase. Obtenga los datos de parámetros que están en el búfer mediante GetParam y GetParamType.
Para obtener un ejemplo que muestre cómo usar esta clase para ejecutar un procedimiento almacenado de SQL Server y obtener los valores de parámetro de salida, consulte el código de ejemplo DynamicConsumer en el repositorio VCSamples de Microsoft en GitHub.
CDynamicParameterAccessor::CDynamicParameterAccessor
Constructor .
Sintaxis
typedef CDynamicParameterAccessor _ParamClass;
CDynamicParameterAccessor(
DBBLOBHANDLINGENUM eBlobHandling = DBBLOBHANDLING_DEFAULT,
DBLENGTH nBlobSize = 8000 )
: CDynamicAccessor(eBlobHandling, nBlobSize )
Parámetros
eBlobHandling
Especifica cómo se van a controlar los datos de BLOB. El valor predeterminado es DBBLOBHANDLING_DEFAULT. Consulte CDynamicAccessor::SetBlobHandling para ver una descripción de los valores DBBLOBHANDLINGENUM.
nBlobSize
Tamaño máximo del BLOB en bytes; los datos de columna por encima de este valor se tratan como un BLOB. El valor predeterminado es 8000. Consulte CDynamicAccessor::SetBlobSizeLimit para obtener más información.
Comentarios
Consulte el constructor CDynamicAccessor::CDynamicAccessor para obtener más información sobre el control de blobs.
CDynamicParameterAccessor::GetParam
Recupera los datos que no son de cadena para un parámetro especificado del búfer de parámetros.
Sintaxis
template <class ctype>bool GetParam(DBORDINAL nParam,
ctype* pData) const throw();
template <class ctype> bool GetParam(TCHAR* pParamName,
ctype* pData) const throw();
void* GetParam(DBORDINAL nParam) const throw();
void* GetParam(TCHAR* pParamName) const throw();
Parámetros
ctype
Parámetro basado en modelo que es el tipo de datos.
nParam
[in] Número del parámetro (desplazado desde 1). El parámetro 0 está reservado para los valores devueltos. El número del parámetro es el índice del parámetro en función de su orden en la llamada a un procedimiento almacenado o SQL. Consulte SetParam para ver un ejemplo.
pParamName
[in] Nombre del parámetro.
pData
[out] Puntero a la memoria que contiene los datos recuperados del búfer.
Valor devuelto
En el caso de las versiones no basadas en modelos, apunta a la memoria que contiene los datos recuperados del búfer. En las versiones basadas en modelos, devuelve true
si se ejecuta correctamente; de lo contrario, devuelve false
.
Use GetParam
para recuperar del búfer datos de parámetros que no son de cadena. Use GetParamString para recuperar del búfer datos de parámetros de cadena.
CDynamicParameterAccessor::GetParamCount
Recupera el número de parámetros almacenados en el búfer.
Sintaxis
DB_UPARAMS GetParamCount() const throw();
Valor devuelto
Número de parámetros.
CDynamicParameterAccessor::GetParamIO
Determina si el parámetro especificado es un parámetro de entrada o salida.
Sintaxis
bool GetParamIO(DBORDINAL nParam,
DBPARAMIO* pParamIO) const throw();
Parámetros
nParam
[in] Número del parámetro (desplazado desde 1). El parámetro 0 está reservado para los valores devueltos. El número del parámetro es el índice del parámetro en función de su orden en la llamada a un procedimiento almacenado o SQL. Consulte SetParam para ver un ejemplo.
pParamIO
Puntero a la variable que contiene el tipo DBPARAMIO
(entrada o salida) del parámetro especificado. Se define de la manera siguiente:
typedef DWORD DBPARAMIO;
enum DBPARAMIOENUM {
DBPARAMIO_NOTPARAM = 0,
DBPARAMIO_INPUT = 0x1,
DBPARAMIO_OUTPUT = 0x2
};
Valor devuelto
Devuelve true
si la operación se realiza correctamente; de lo contrario, devuelve false
.
CDynamicParameterAccessor::GetParamLength
Recupera la longitud del parámetro especificado almacenado en el búfer.
Sintaxis
bool GetParamLength(DBORDINAL nParam,
DBLENGTH* pLength);
DBLENGTH* GetParamLength(DBORDINAL nParam) const throw();
Parámetros
nParam
[in] Número del parámetro (desplazado desde 1). El parámetro 0 está reservado para los valores devueltos. El número del parámetro es el índice del parámetro en función de su orden en la llamada a un procedimiento almacenado o SQL. Consulte SetParam para ver un ejemplo.
pLength
[out] Puntero a la variable que contiene la longitud en bytes del parámetro especificado.
Comentarios
La primera invalidación devuelve true
si se ejecuta correctamente; de lo contrario, devuelve false
. La segunda invalidación apunta a la memoria que contiene la longitud del parámetro.
CDynamicParameterAccessor::GetParamName
Recupera el nombre de un parámetro especificado.
Sintaxis
LPOLESTR GetParamName(DBORDINAL nParam) const throw();
Parámetros
nParam
[in] Número del parámetro (desplazado desde 1). El parámetro 0 está reservado para los valores devueltos. El número del parámetro es el índice del parámetro en función de su orden en la llamada a un procedimiento almacenado o SQL. Consulte SetParam para ver un ejemplo.
Valor devuelto
Nombre del parámetro especificado.
CDynamicParameterAccessor::GetParamStatus
Recupera el estado del parámetro especificado almacenado en el búfer.
Sintaxis
bool GetParamStatus(DBORDINAL nParam,
DBSTATUS* pStatus);
DBSTATUS* GetParamStatus(DBORDINAL nParam) const throw();
Parámetros
nParam
[in] Número del parámetro (desplazado desde 1). El parámetro 0 está reservado para los valores devueltos. El número del parámetro es el índice del parámetro en función de su orden en la llamada a un procedimiento almacenado o SQL. Consulte SetParam para ver un ejemplo.
pStatus
[out] Puntero a la variable que contiene el estado DBSTATUS del parámetro especificado. Para obtener información sobre los valores de DBSTATUS, vea Estado en la Referencia del programador de OLE DB o busque DBSTATUS en oledb.h.
Comentarios
La primera invalidación devuelve true
si se ejecuta correctamente; de lo contrario, devuelve false
. La segunda invalidación apunta a la memoria que contiene el estado del parámetro especificado.
CDynamicParameterAccessor::GetParamString
Recupera los datos de cadena del parámetro especificado almacenado en el búfer.
Sintaxis
bool GetParamString(DBORDINAL nParam,
CSimpleStringA& strOutput) throw();
bool GetParamString(DBORDINAL nParam,
CSimpleStringW& strOutput) throw();
bool GetParamString(DBORDINAL nParam,
CHAR* pBuffer,
size_t* pMaxLen) throw();
bool GetParamString(DBORDINAL nParam,
WCHAR* pBuffer,
size_t* pMaxLen) throw();
Parámetros
nParam
[in] Número del parámetro (desplazado desde 1). El parámetro 0 está reservado para los valores devueltos. El número del parámetro es el índice del parámetro en función de su orden en la llamada a un procedimiento almacenado o SQL. Consulte SetParam para ver un ejemplo.
strOutput
[out] Datos de cadena ANSI (CSimpleStringA
) o Unicode (CSimpleStringW
) del parámetro especificado. Debe pasar un parámetro de tipo CString
, por ejemplo:
CString MyString;
rs.GetParamString(1, MyString);
pBuffer
[out] Puntero a los datos de cadena ANSI (CHAR) o Unicode (WCHAR) del parámetro especificado.
pMaxLen
[out] Puntero al tamaño del búfer al que apunta pBuffer (en caracteres, incluido el valor NULL final).
Comentarios
Devuelve true
si la operación se realiza correctamente; de lo contrario, devuelve false
.
Si pBuffer es NULL, este método establece el tamaño de búfer necesario en la memoria a la que apunta pMaxLen y devuelve true
sin copiar los datos.
Este método produce un error si el búfer pBuffer no es lo suficientemente grande como para contener toda la cadena.
Use GetParamString
para recuperar del búfer los datos de parámetros de cadena. Use GetParam para recuperar del búfer los datos de parámetros que no son de cadena.
CDynamicParameterAccessor::GetParamType
Recupera el tipo de datos de un parámetro especificado.
Sintaxis
bool GetParamType(DBORDINAL nParam,
DBTYPE* pType) const throw();
Parámetros
nParam
[in] Número del parámetro (desplazado desde 1). El parámetro 0 está reservado para los valores devueltos. El número del parámetro es el índice del parámetro en función de su orden en la llamada a un procedimiento almacenado o SQL. Consulte SetParam para ver un ejemplo.
pType
[out] Puntero a la variable que contiene el tipo de datos del parámetro especificado.
Valor devuelto
Devuelve true
si la operación se realiza correctamente; de lo contrario, devuelve false
.
CDynamicParameterAccessor::SetParam
Establece el búfer de parámetros usando los datos especificados (que no son de cadena).
Sintaxis
template <class ctype>
bool SetParam(DBORDINAL nParam,
constctype* pData,
DBSTATUS status = DBSTATUS_S_OK) throw();
template <class ctype>
bool SetParam(TCHAR* pParamName,
const ctype* pData,
DBSTATUS status = DBSTATUS_S_OK) throw();
Parámetros
ctype
Parámetro basado en modelo que es el tipo de datos.
nParam
[in] Número del parámetro (desplazado desde 1). El parámetro 0 está reservado para los valores devueltos. El número del parámetro es el índice del parámetro en función de su orden en la llamada a un procedimiento almacenado o SQL. Por ejemplo:
WCHAR* wszSQL = L"SELECT * FROM Authors WHERE State='?' AND LName='?'";
CCommand<CDynamicParameterAccessor> rs;
//...
rs.SetParam<LONG>(1, &m_BillingID);
rs.SetParam<CString>(2, &m_strFirstName);
pParamName
[in] Nombre del parámetro.
pData
[in] Puntero a la memoria que contiene los datos que se van a escribir en el búfer.
status
[in] Estado de la columna DBSTATUS. Para obtener información sobre los valores de DBSTATUS, vea Estado en la Referencia del programador de OLE DB o busque DBSTATUS en oledb.h.
Valor devuelto
Devuelve true
si la operación se realiza correctamente; de lo contrario, devuelve false
.
Use SetParam
para establecer datos de parámetros que no son de cadena en el búfer. Use SetParamString para establecer los datos de parámetros de cadena en el búfer.
CDynamicParameterAccessor::SetParamLength
Establece la longitud del parámetro especificado almacenado en el búfer.
Sintaxis
bool SetParamLength(DBORDINAL nParam,
DBLENGTH length);
Parámetros
nParam
[in] Número del parámetro (desplazado desde 1). El parámetro 0 está reservado para los valores devueltos. El número del parámetro es el índice del parámetro en función de su orden en la llamada a un procedimiento almacenado o SQL. Consulte SetParam para ver un ejemplo.
length
[in] Longitud en bytes del parámetro especificado.
Comentarios
Devuelve true
si la operación se realiza correctamente; de lo contrario, devuelve false
.
CDynamicParameterAccessor::SetParamStatus
Establece el estado del parámetro especificado almacenado en el búfer.
Sintaxis
bool SetParamStatus(DBORDINAL nParam,
DBSTATUS status);
Parámetros
nParam
[in] Número del parámetro (desplazado desde 1). El parámetro 0 está reservado para los valores devueltos. El número del parámetro es el índice del parámetro en función de su orden en la llamada a un procedimiento almacenado o SQL. Consulte SetParam para ver un ejemplo.
status
[in] Estado DBSTATUS del parámetro especificado. Para obtener información sobre los valores de DBSTATUS, vea Estado en la Referencia del programador de OLE DB o busque DBSTATUS en oledb.h.
Comentarios
Devuelve true
si la operación se realiza correctamente; de lo contrario, devuelve false
.
CDynamicParameterAccessor::SetParamString
Establece los datos de cadena del parámetro especificado almacenado en el búfer.
Sintaxis
bool SetParamString(DBORDINAL nParam,
constCHAR* pString,
DBSTATUS status = DBSTATUS_S_OK) throw();bool SetParamString(DBORDINAL nParam,
constWCHAR* pString,
DBSTATUS status = DBSTATUS_S_OK) throw();
Parámetros
nParam
[in] Número del parámetro (desplazado desde 1). El parámetro 0 está reservado para los valores devueltos. El número del parámetro es el índice del parámetro en función de su orden en la llamada a un procedimiento almacenado o SQL. Consulte SetParam para ver un ejemplo.
pString
[in] Puntero a los datos de cadena ANSI (CHAR) o Unicode (WCHAR) del parámetro especificado. Consulte DBSTATUS en oledb.h.
status
[in] Estado DBSTATUS del parámetro especificado. Para obtener información sobre los valores de DBSTATUS, vea Estado en la Referencia del programador de OLE DB o busque DBSTATUS en oledb.h.
Comentarios
Devuelve true
si la operación se realiza correctamente; de lo contrario, devuelve false
.
SetParamString
da error si intenta establecer una cadena que es mayor que el tamaño máximo especificado para pString.
Use SetParamString
para establecer datos de parámetros de cadena en el búfer. Use SetParam para establecer datos de parámetros que no son de cadena en el búfer.
Consulte también
Plantillas de consumidor OLE DB
Referencia de plantillas de consumidor OLE DB
CAccessor (Clase)
CDynamicAccessor (Clase)
CManualAccessor (Clase)