Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Este tópico descreve como usar o driver SQLSRV para especificar a direção dos parâmetros quando se chama um procedimento armazenado. A direção dos parâmetros é especificada quando se constrói um array de parâmetros (passo 3) que é passado para sqlsrv_query ou sqlsrv_prepare.
Para especificar a direção do parâmetro
Defina uma consulta Transact-SQL que chama um procedimento armazenado. Use pontos de interrogação (?) em vez dos parâmetros a serem passados para o procedimento armazenado. Por exemplo, esta cadeia chama um procedimento armazenado (UpdateVacationHours) que aceita dois parâmetros:
$tsql = "{call UpdateVacationHours(?, ?)}";Observação
Chamar procedimentos armazenados usando sintaxe canónica é a prática recomendada. Para mais informações sobre sintaxe canónica, veja Chamar um Procedimento Armazenado.
Inicialize ou atualize as variáveis PHP que correspondam aos marcadores de posição na consulta Transact-SQL. Por exemplo, o código seguinte inicializa os dois parâmetros para o procedimento armazenado UpdateVacationHours:
$employeeId = 101; $usedVacationHours = 8;Observação
Variáveis que são inicializadas ou atualizadas para tipos nulo, DateTime ou stream não podem ser usadas como parâmetros de saída.
Use as variáveis PHP do passo 2 para criar ou atualizar um array de valores de parâmetros que correspondam, por ordem, aos marcadores de parâmetros na cadeia de Transact-SQL. Especifique a direção para cada parâmetro no array. A direção de cada parâmetro é determinada de duas formas: por defeito (para parâmetros de entrada) ou usando constantes SQLSRV_PARAM_* (para parâmetros de saída e bidirecionais). Por exemplo, o seguinte código especifica o parâmetro $employeeId como parâmetro de entrada e o parâmetro $usedVacationHours como parâmetro bidirecional:
$params = array( array($employeeId, SQLSRV_PARAM_IN), array($usedVacationHours, SQLSRV_PARAM_INOUT) );Para compreender a sintaxe para especificar a direção dos parâmetros em geral, suponha que $var 1, $var 2 e $var 3 correspondem a parâmetros de entrada, saída e bidirecionais, respetivamente. Pode especificar a direção do parâmetro de qualquer uma das seguintes formas:
Especificar implicitamente o parâmetro de entrada, especificar explicitamente o parâmetro de saída e especificar explicitamente um parâmetro bidirecional:
array( array($var1), array($var2, SQLSRV_PARAM_OUT), array($var3, SQLSRV_PARAM_INOUT) );Especificar explicitamente o parâmetro de entrada, especificar explicitamente o parâmetro de saída e especificar explicitamente um parâmetro bidirecional:
array( array($var1, SQLSRV_PARAM_IN), array($var2, SQLSRV_PARAM_OUT), array($var3, SQLSRV_PARAM_INOUT) );
Execute a consulta com sqlsrv_query ou com sqlsrv_prepare e sqlsrv_execute. Por exemplo, o seguinte código utiliza a ligação $conn para executar a consulta $tsql com valores de parâmetros especificados em $params:
sqlsrv_query($conn, $tsql, $params);
Ver também
Como: Recuperar Parâmetros de Saída Usando o Driver SQLSRV
Como: Recuperar Parâmetros de Entrada e Saída Usando o Driver SQLSRV