Partilhar via


SQLBindParameter

SQLBindParameterpode eliminar a carga da conversão de dados quando usada para fornecer dados para o driver ODBC SQL Server Native Client, resultando em ganhos significativos de desempenho para os componentes cliente e servidor dos aplicativos. Entre os outros benefícios está a menor perda de precisão ao inserir ou atualizar tipos de dados numéricos aproximados.

Observação

Ao inserir dados de tipos char e wchar em uma coluna de imagem, é usado o tamanho dos dados sendo passados, e não o tamanho dos dados após a conversão em formato binário.

Se o SQL Server Native Client driver ODBC encontrar um erro em um único elemento de matriz de uma matriz de parâmetros, o driver continuará a executar a instrução para os elementos restantes da matriz. Se o aplicativo tiver associado uma matriz de elementos de status de parâmetro para a instrução, as linhas dos parâmetros que geram erros poderão ser determinadas a partir da matriz.

Ao usar o driver ODBC SQL Server Native Client, especifique SQL_PARAM_INPUT ao associar parâmetros de entrada. Só especifique SQL_PARAM_OUTPUT ou SQL_PARAM_INPUT_OUTPUT ao associar parâmetros de procedimento armazenado definidos com a palavra-chave OUTPUT.

SQLRowCount não é confiável com o driver ODBC SQL Server Native Client se um elemento de matriz de uma matriz de parâmetro associado causar um erro na execução da instrução. O atributo da instrução ODBC – SQL_ATTR_PARAMS_PROCESSED_PTR – informa o número de linhas processadas antes da ocorrência do erro. O aplicativo pode atravessar sua matriz de status de parâmetro para descobrir o número de instruções executadas com êxito, se necessário.

Associando parâmetros para tipos de caractere SQL

Se o tipo de dados SQL passado for um tipo de caractere, ColumnSize será o tamanho em caracteres (não em bytes). Se o comprimento da cadeia de caracteres de dados em bytes for maior que 8000, ColumnSize deverá ser definido como SQL_SS_LENGTH_UNLIMITED, indicando que não há limite para o tamanho do tipo SQL.

Por exemplo, se o tipo de dados SQL for SQL_WVARCHAR, ColumnSize não deverá ser maior que 4000. Se o comprimento real dos dados for maior que 4000, ColumnSize deverá ser definido como para SQL_SS_LENGTH_UNLIMITED que nvarchar(max) seja usado pelo driver.

SQLBindParameter e parâmetros com valor de tabela

Assim como outros tipos de parâmetro, os parâmetros com valor de tabela são associados por SQLBindParameter.

Depois que um parâmetro com valor de tabela é associado, suas colunas também são associadas. Para associar as colunas, chame SQLSetStmtAttr para definir SQL_SOPT_SS_PARAM_FOCUS como o ordinal do parâmetro com valor de tabela. Em seguida, chame SQLBindParameter para cada coluna no parâmetro com valor de tabela. Para voltar às associações de parâmetro de nível superior, defina SQL_SOPT_SS_PARAM_FOCUS como 0.

Para obter informações sobre parâmetros de mapeamento para campos de descritor para parâmetros com valor de tabela, consulte Associação e transferência de dados de parâmetros de Table-Valued e valores de coluna.

Para obter mais informações sobre parâmetros com valor de tabela, consulte Parâmetros com valor de tabela (ODBC).

Suporte de SQLBindParameter a recursos aprimorados de data e hora

Os valores de parâmetro de tipos de data/hora são convertidos conforme descrito em Conversões de C para SQL. Observe que os parâmetros do tipo time e datetimeoffset devem ter ValueType especificado como SQL_C_DEFAULT ou SQL_C_BINARY se suas estruturas correspondentes (SQL_SS_TIME2_STRUCT e SQL_SS_TIMESTAMPOFFSET_STRUCT) forem usadas.

Para obter mais informações, consulte Melhorias de data e hora (ODBC).

Suporte de SQLBindParameter a UDTs CLR grandes

SQLBindParameter dá suporte a UDTs grandes do CLR. Para obter mais informações, consulte Tipos de User-Defined clr grandes (ODBC).

Consulte Também

ODBC API Implementation Details
Função SQLBindParameter