Compartir a través de


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)