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, resultando 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 e SQL_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

Outros recursos