Partilhar via


SQLBindParameter

O SQLBindParameter pode eliminar o peso da conversão de dados quando usado para fornecer dados para o driver ODBC do SQL Server Native Client, o que resulta em ganhos de desempenho significativos para os componentes de 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çãoObservaçã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 driver ODBC do SQL Server Native Client encontrar um erro em um único elemento de uma matriz de parâmetros, o driver continuará executando a instrução para os elementos restantes. 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 do 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 será confiável com o driver ODBC do SQL Server Native Client se um elemento de uma matriz de parâmetro associado causar 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 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 de dados real for maior que 4000, ColumnSize deverá ser definido como SQL_SS_LENGTH_UNLIMITED, de modo que nvarchar(max) será usado pelo driver.

SQLBindParameter e parâmetros com valor de tabela

Como outros tipos de parâmetros, aqueles 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. 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 mais informações sobre como mapear parâmetros para campos de descritor referentes a parâmetros com valor de tabela, consulte Associação e transferência de dados de parâmetros com valor de tabela 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

Valores de parâmetros dos tipos de data/hora são convertidos conforme descrito em Conversões do C para o SQL. Observe que parâmetros de tipo time e datetimeoffset precisam ter ValueType especificado como SQL_C_DEFAULT ou SQL_C_BINARY quando são usadas suas estruturas correspondentes (SQL_SS_TIME2_STRUCT eSQL_SS_TIMESTAMPOFFSET_STRUCT).

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

Suporte de SQLBindParameter a UDTs CLR grandes

O SQLBindParameter suporta UDTs (tipos de dados definidos pelo usuário) CLR grandes. Para obter mais informações, consulte Tipos de dados CLR grandes definidos pelo usuário (ODBC).

Consulte também

Conceitos

Detalhes de implementação da API ODBC

Outros recursos

Função SQLBindParameter