Oharra
Baimena behar duzu orria atzitzeko. Direktorioetan saioa has dezakezu edo haiek alda ditzakezu.
Baimena behar duzu orria atzitzeko. Direktorioak alda ditzakezu.
Los marcadores de parámetros son compatibles con las API de bases de datos basadas en ADO, OLE DB y ODBC. Un marcador de parámetro es un signo de interrogación (?) colocado en la posición de una expresión de entrada o de salida de una instrucción Transact-SQL. Los marcadores de parámetros permiten a una aplicación optimizar el caso en el que la misma instrucción Transact-SQL se ejecuta varias veces con distintos valores para las expresiones de entrada y de salida.
Por ejemplo, puede que un usuario haya dado a una aplicación cinco símbolos de acciones y la aplicación deba llamar a un procedimiento almacenado que obtenga los datos actuales de cada una de las acciones. La aplicación podría hacer lo siguiente:
Preparar esta instrucción Transact-SQL:
EXEC GetQuoteProcedure @StockSymbolParameter = ?Enlazar una variable de aplicación al marcador de parámetro (?).
Ejecutar un bucle:
- Mover el siguiente símbolo de acciones a la variable enlazada.
- Ejecutar la instrucción para recuperar la cotización de esas acciones.
Los marcadores de parámetros no se limitan a su asignación a parámetros de procedimientos almacenados. Los marcadores de parámetros se pueden usar en cualquier lugar en que se use una expresión de entrada, por ejemplo:
UPDATE HumanResources.Employees
SET Title = ?
WHERE EmployeeID = ?
Los marcadores de parámetros se pueden usar también para asignar los parámetros de salida y códigos de retorno de los procedimientos almacenados. Cuando la aplicación ejecuta un procedimiento almacenado, el proveedor OLE DB o el controlador ODBC mueve el valor de los datos desde cualquier parámetro de salida o código de retorno a las variables enlazadas a los marcadores del parámetro.
Por ejemplo, una aplicación puede ejecutar el procedimiento siguiente. Este procedimiento devuelve un código de retorno de tipo entero y un parámetro de salida de caracteres.
Prepare una instrucción:
{? = CALL MyProc (?)}Enlace el primer marcador de parámetro a una variable de tipo entero y el segundo marcador a una matriz de caracteres.
Ejecute la instrucción.
Recupere o cancele todos los conjuntos de resultados devueltos por el procedimiento almacenado.
En este punto, el proveedor Microsoft OLE DB para SQL Server o el controlador ODBC de SQL Server habrá incluido el código de retorno y el valor del parámetro de salida en las variables enlazadas. Microsoft SQL Server 2005 envía los valores del parámetro de salida y del código de retorno en el último paquete que devuelve al cliente. La aplicación debe, por tanto, procesar o cancelar todos los conjuntos de resultados devueltos por el procedimiento almacenado antes de que tenga acceso a los valores del código de retorno y de los parámetros de salida.
La API de ADO tiene una variación de este proceso para ejecutar procedimientos almacenados. Una aplicación ADO lleva a cabo lo siguiente:
- Establece el tipo de objeto Command en adCmdStoredProc.
- Establece el texto del comando con el nombre del procedimiento.
- Genera una colección Parameters y enlaza todos los parámetros y códigos de retorno a variables de aplicación.
- Ejecuta el objeto Command.
Los marcadores de parámetro se asocian a un objeto de base de datos que tiene un tipo específico de datos. Si la aplicación enlaza un marcador de parámetro a una variable cuyo tipo de datos es distinto del tipo de datos del objeto de base de datos asociado, el proveedor OLE DB o el controlador ODBC deben convertir los datos. Por ejemplo, si una aplicación enlaza un código de retorno de tipo entero a una matriz de caracteres, el proveedor OLE DB o el controlador ODBC deben convertir los datos enteros del código de retorno a una cadena de caracteres. Para obtener información acerca de las conversiones de tipos de datos admitidas, vea la documentación del proveedor OLE DB para SQL Server y del controlador ODBC de SQL Server.
Vea también
Otros recursos
Running Stored Procedures (OLE DB)
Command Parameters
Using Statement Parameters