sp_cursorprepare (Transact-SQL)
Compila a instrução de cursor ou processa em lotes em um plano de execução, mas não cria o cursor. A instrução compilada pode ser usada posteriormente por sp_cursorexecute. Este procedimento, associado a sp_cursorexecute, tem a mesma função que sp_cursoropen, mas é dividido em duas fases. sp_cursorprepare é invocado com a especificação de ID = 3 em um pacote TDS.
Sintaxe
sp_cursorprepare
prepared_handle
OUTPUT,
params
,
stmt
,
options
[ , scrollopt[ , ccopt]]
Argumentos
prepared_handle
Um identificador handle preparado e gerado pelo SQL Server que retorna um valor inteiro.Observação prepared_handle é fornecido subsequentemente a um procedimento sp_cursorexecute para abrir um cursor. Quando um identificador é criado, ele existe até que você faça logoff ou remova-o explicitamente por meio de um procedimento sp_cursorunprepare.
params
Identifica instruções parametrizadas. A definição params de variáveis é substituída pelos marcadores de parâmetro na instrução. params é um parâmetro obrigatório que requer um valor de entrada ntext, nchar ou nvarchar . Insira um valor NULL se a instrução não for parametrizada.Observação Use uma cadeia de caracteres ntext como o valor de entrada quando stmt for parametrizado e o valor scrollopt PARAMETERIZED_STMT for ON.
stmt
Define o conjunto de resultados do cursor. O parâmetro stmt é obrigatório e requer um valor de entrada ntext, nchar ou nvarchar.Observação As regras para especificar o valor stmt são iguais às de sp_cursoropen, com a exceção de que o tipo de dados string stmt deve ser ntext.
options
Um parâmetro opcional que retorna uma descrição das colunas do conjunto de resultados de cursor. options requer o valor de entrada int a seguir.Valor
Descrição
0x0001
RETURN_METADATA
scrollopt
Opção de rolagem. scrollopt é um parâmetro opcional que requer um dos valores de entrada int a seguir.Valor
Descrição
0x0001
KEYSET
0x0002
DYNAMIC
0x0004
FORWARD_ONLY
0x0008
STATIC
0x10
FAST_FORWARD
0x1000
PARAMETERIZED_STMT
0x2000
AUTO_FETCH
0x4000
AUTO_CLOSE
0x8000
CHECK_ACCEPTED_TYPES
0x10000
KEYSET_ACCEPTABLE
0x20000
DYNAMIC_ACCEPTABLE
0x40000
FORWARD_ONLY_ACCEPTABLE
0x80000
STATIC_ACCEPTABLE
0x100000
FAST_FORWARD_ACCEPTABLE
Como o valor solicitado talvez não seja apropriado para o cursor definido por stmt, este parâmetro serve como entrada e saída. Nesses casos, o SQL Server atribui um valor apropriado.
ccopt
Opção de controle de simultaneidade. ccopt é um parâmetro opcional que requer um dos valores de entrada int a seguir.Valor
Descrição
0x0001
READ_ONLY
0x0002
SCROLL_LOCKS (anteriormente conhecido como LOCKCC)
0x0004
OPTIMISTIC (anteriormente conhecido como OPTCC)
0x0008
OPTIMISTIC (anteriormente conhecido como OPTCCVAL)
0x2000
ALLOW_DIRECT
0x4000
UPDT_IN_PLACE
0x8000
CHECK_ACCEPTED_OPTS
0x10000
READ_ONLY_ACCEPTABLE
0x20000
SCROLL_LOCKS_ACCEPTABLE
0x40000
OPTIMISTIC_ACCEPTABLE
0x80000
OPTIMISITC_ACCEPTABLE
Como ocorre com scrollpt, o SQL Server pode atribuir um valor diferente do solicitado.
Comentários
O parâmetro de status RPC é um dos seguintes:
Valor |
Descrição |
---|---|
0 |
Success |
0x0001 |
Failure |
1FF6 |
Não foi possível retornar metadados.
Observação
A razão para isso é que a instrução não gera um conjunto de resultados; por exemplo, é uma instrução INSERT ou DDL.
|
Exemplos
Quando stmt é parametrizado e o valor scrollopt PARAMETERIZED_STMT é ON, o formato da cadeia de caracteres é o seguinte:
{ <nome da variável local><tipo de dados> } [ ,…n ]
Consulte também