Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: SQL Server
Base de Dados SQL do Azure
Azure SQL Managed Instance
Azure Synapse Analytics
Sistema de Plataforma de Análise (PDW)
Cada marcador de parâmetro numa instrução SQL deve ser associado, ou limitado, a uma variável na aplicação antes de a instrução poder ser executada. Isto é feito chamando a função SQLBindParameter . SQLBindParameter descreve a variável do programa (endereço, tipo de dado C, etc.) ao driver. Também identifica o marcador de parâmetro indicando o seu valor ordinal e depois descreve as características do objeto SQL que representa (tipo de dado SQL, precisão, e assim por diante).
Marcadores de parâmetros podem ser ligados ou rebotados a qualquer momento antes de uma instrução ser executada. Uma ligação de parâmetros mantém-se ativa até que ocorra uma das seguintes situações:
Uma chamada ao SQLFreeStmt com o parâmetro Option definido para SQL_RESET_PARAMS liberta todos os parâmetros ligados ao handle da instrução.
Uma chamada ao SQLBindParameter com ParameterNumber definido no ordinal de um marcador de parâmetro limitado liberta automaticamente a ligação anterior.
Uma aplicação também pode associar parâmetros a arrays de variáveis de programa para processar uma instrução SQL em lotes. Existem dois tipos de ligação de matrizes:
A ligação coluna a coluna é feita quando cada parâmetro individual está ligado ao seu próprio array de variáveis.
A ligação por colunas é especificada chamando SQLSetStmtAttr com o Atributo definido para SQL_ATTR_PARAM_BIND_TYPE e o ValuePtr para SQL_PARAM_BIND_BY_COLUMN.
A ligação por linhas é feita quando todos os parâmetros da instrução SQL são atribuídos como uma unidade a um array de estruturas que contêm as variáveis individuais dos parâmetros.
A ligação linha a linha é especificada chamando SQLSetStmtAttr com Attribute definido para SQL_ATTR_PARAM_BIND_TYPE e ValuePtr definido para o tamanho da estrutura que contém as variáveis do programa.
Quando o driver ODBC do SQL Server Native Client envia parâmetros de caracteres ou de string binárias ao servidor, ele preenche os valores até ao comprimento especificado no parâmetro SQLBindParameterColumnSize. Se uma aplicação ODBC 2.x especificar 0 para ColumnSize, o driver aumenta o valor do parâmetro para a precisão do tipo de dado. A precisão é 8000 quando ligado a servidores SQL Server, 255 quando ligado a versões anteriores do SQL Server. O ColumnSize está em bytes para colunas variantes.
O SQL Server suporta a definição de nomes para parâmetros de procedimentos armazenados. O ODBC 3.5 também introduziu suporte para parâmetros nomeados usados ao chamar procedimentos armazenados do SQL Server. Este suporte pode ser usado para:
Chama um procedimento armazenado e fornece valores para um subconjunto dos parâmetros definidos para o procedimento armazenado.
Especifique os parâmetros numa ordem diferente na aplicação daquela especificada quando o procedimento armazenado foi criado.
Parâmetros nomeados só são suportados quando se utiliza a instrução Transact-SQL EXECUTE ou a sequência de escape ODBC CALL para executar um procedimento armazenado.
Se SQL_DESC_NAME for definido para um parâmetro de procedimento armazenado, todos os parâmetros de procedimento armazenados na consulta também devem definir SQL_DESC_NAME. Se literais forem usados em chamadas de procedimentos armazenados, onde os parâmetros têm SQL_DESC_NAME definidos, os literais devem usar o formato 'name=value', onde name é o nome do parâmetro do procedimento armazenado (por exemplo, @p1). Para mais informações, consulte Parâmetros de Ligação por Nome (Parâmetros Nomeados).