Compartilhar via


SQLBindParameter

SQLBindParameter pode eliminar a carga da conversão de dados quando usada para fornecer dados para o driver ODBC do SQL Server Native Client, resultando em ganhos significativos de desempenho para os componentes do cliente e do servidor dos aplicativos. Outros benefícios incluem a redução da perda de precisão ao inserir ou atualizar tipos de dados numéricos aproximados.

Observação

Ao inserir e wchar digitar char dados em uma coluna de imagem, o tamanho dos dados que estão sendo passados é usado, em vez do tamanho dos dados após a conversão em um formato binário.

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

Ao usar o driver ODBC do SQL Server Native Client, especifique SQL_PARAM_INPUT ao associar parâmetros de entrada. Especifique apenas 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 do 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 de instrução ODBC SQL_ATTR_PARAMS_PROCESSED_PTR relata o número de linhas processadas antes do erro ocorrer. Em seguida, o aplicativo pode percorrer sua matriz de status de parâmetro para descobrir o número de instruções executadas com êxito, se necessário.

Parâmetros de associação para tipos de caracteres SQL

Se o tipo de dados SQL passado for um tipo de caractere, ColumnSize será o tamanho em caracteres (não 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, o ColumnSize deverá ser definido para SQL_SS_LENGTH_UNLIMITED que isso nvarchar(max) seja usado pelo driver.

Parâmetros SQLBindParameter e Table-Valued

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 tiver sido associado, suas colunas também serão associadas. Para associar as colunas, você chama SQLSetStmtAttr para definir SQL_SOPT_SS_PARAM_FOCUS ao ordinal do parâmetro com valor de tabela. Em seguida, chame SQLBindParameter para cada coluna no parâmetro com valor de tabela. Para retornar à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 Binding e Data Transfer of Table-Valued Parameters and Column Values.

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

Suporte do SQLBindParameter para recursos avançados de data e hora

Os valores de parâmetro dos 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 do SQLBindParameter para UDTs CLR grandes

SQLBindParameter dá suporte a UDTs (tipos definidos pelo usuário) CLR grandes. Para obter mais informações, consulte ODBC (Tipos Definidos pelo Usuário) CLR Grandes.

Consulte Também

Detalhes da implementação da API do ODBC
função SQLBindParameter