¿Cuál es el significado y la función específicos del objeto de parámetro?
Descripción del problema:
Solo sé que el objeto Parámetro se usa junto con el objeto Comando, pero no sé su detalles ¿Cuál es el significado utilizado? No entiendo cómo se transfiere el valor del parámetro entre el objeto Parameter y un procedimiento almacenado, por ejemplo:
Set Mypara = MyComm. CreateParameter("@IDUsuario ", 3, 1, 4, IDUsuario)
MiComm. parámetro. Adjunte MyPara
En esta oración, ¿cómo se pasa el valor de la variable UserID ingresada en la página al @UserID del procedimiento almacenado para consultas y otras operaciones?
Es muy angustiante~~Espero que todos puedan ayudar, ¡gracias! ! -
Análisis:
Utilice VB para implementar la llamada a procedimiento almacenado de SQL Server 2000.
Un procedimiento almacenado es un conjunto de declaraciones Transact-SQL precompiladas almacenadas en el servidor. . Es un método para encapsular operaciones de tareas repetitivas, admite variables proporcionadas por el usuario y tiene poderosas capacidades de programación. Es similar al archivo BAT en los sistemas DOS. Un archivo BAT puede contener un conjunto de comandos ejecutados con frecuencia que se ejecutan mediante la ejecución del archivo BAT. De manera similar, muchas declaraciones Transact-SQL que completan una tarea se pueden escribir juntas y organizarse en un procedimiento almacenado, y la tarea se puede completar ejecutando el procedimiento almacenado. Los procedimientos almacenados se diferencian de los archivos BAT en que los procedimientos almacenados están precompilados.
1. Cómo crear un procedimiento almacenado
En el lenguaje Transact-SQL, puede utilizar la instrucción CREATE PROCEDURE para crear un procedimiento almacenado. La sintaxis es la siguiente: p>
CREAR PROC [EDURE]nombre_procedimiento[;número]
[{@parameter data_type}[cambio][=valor predeterminado][salida]
]],…n ] p>
[Usar { RECOMPILE | ENCRYPTION | RECOMPILE, ENCRYPTION}]
[Para replicación]
Como sql_statement[…n]
En En la instrucción CREATE PROCEDURE anterior, el contenido entre corchetes "[]" es opcional y el contenido entre corchetes "{}" debe aparecer y no se puede omitir. [,...n] representa el estilo de parámetro anterior, que se puede repetir. La barra vertical "|" indica que se puede seleccionar una opción en ambos lados.
Analicemos el significado de cada opción en este enunciado.
CREAR PROCEDIMIENTO es una palabra clave y también se puede escribir como CREATE PROC.
Procedure_name es el nombre del procedimiento almacenado, que puede ser cualquier identificador que cumpla con las reglas de nomenclatura. El parámetro [después del nombre; Número] indica que se pueden definir una serie de nombres de procedimientos almacenados y el número de estos procedimientos almacenados se especifica mediante Número.
Puede utilizar @parameter data_type para especificar nombres de parámetros. En el lenguaje Transact-SQL, los nombres de los parámetros definidos por el usuario están precedidos por el símbolo "@". Estos tipos de datos son varios tipos de datos permitidos por el lenguaje Transact-SQL, incluidos los tipos de datos proporcionados por el sistema y los tipos de datos definidos por el usuario.
Cuando el tipo de parámetro es cursor, se debe utilizar la palabra clave cambio y salida. Cambiar significa que el conjunto de resultados puede ser un parámetro de salida y su contenido es dinámico. Esta palabra clave solo se puede utilizar cuando se utiliza un cursor como tipo de datos. La palabra clave OUTPUT indica que este es un parámetro de salida que puede devolver la información del resultado de la ejecución del procedimiento almacenado a la aplicación.
Default se utiliza para especificar el valor predeterminado del parámetro.
La opción RECOMPILE indica que se vuelva a compilar el procedimiento almacenado. Utilice esta opción sólo cuando sea necesario, como cuando el esquema de la base de datos deba cambiar con frecuencia.
La opción ENCRIPTACIÓN se utiliza para cifrar el texto del procedimiento almacenado creado para evitar que otros lo vean.
La opción de copia se utiliza principalmente para el proceso de copia. Tenga en cuenta que esta opción no se puede utilizar con la opción RECOMPILE.
AS es una palabra clave, lo que significa que va seguida de una declaración de un procedimiento almacenado. El parámetro sql-statement[…n] indica que un procedimiento almacenado puede contener varias declaraciones Transact-SQL.
2. Ventajas de los procedimientos almacenados
En sistemas que acceden con frecuencia a bases de datos, los desarrolladores están felices de utilizar procedimientos almacenados, lo cual es inseparable de las siguientes ventajas de los procedimientos almacenados.
⑴ Los procedimientos almacenados pueden compartir la lógica de la aplicación con otras aplicaciones para garantizar operaciones y acceso a datos consistentes.
⑵ Los procedimientos almacenados proporcionan un mecanismo de seguridad. Si a un usuario se le concede permiso para ejecutar un procedimiento almacenado, el usuario puede ejecutar completamente el procedimiento almacenado sin verse afectado, incluso si el usuario no tiene permiso para acceder a las tablas o vistas a las que se hace referencia en la ejecución del procedimiento almacenado. Por lo tanto, se pueden crear procedimientos almacenados para completar todas las operaciones, como adiciones y eliminaciones, y el acceso a la información en las operaciones anteriores se puede controlar mediante programación.
⑶La velocidad de ejecución de los procedimientos almacenados es rápida, lo cual es conveniente para mejorar el rendimiento del sistema. Dado que el plan de ejecución del procedimiento almacenado reside en la memoria caché del procedimiento después de la primera ejecución, en operaciones posteriores, solo es necesario llamar a la forma binaria compilada del procedimiento almacenado desde la memoria caché del procedimiento para su ejecución.
⑷El uso de procedimientos almacenados puede reducir el tiempo de transmisión de la red. Si hay 1000 comandos de declaración Transact-SQL transmitidos uno tras otro a través de la red entre el cliente y el servidor, el tiempo de transmisión será muy largo. Sin embargo, si los comandos de estas 1000 declaraciones Transact-SQL se escriben en comandos de procedimientos almacenados más complejos, el tiempo requerido para la transmisión de red entre el cliente y el servidor se reducirá considerablemente.
Llamada de procedimientos almacenados de bases de datos de SQL Server 2000
Como una de las herramientas de desarrollo de clientes de bases de datos más utilizadas, VB proporciona una potente herramienta para que las aplicaciones cliente llamen a procedimientos almacenados del lado del servidor. apoyo. Especialmente con la introducción de VB6.0, las aplicaciones cliente de VB pueden usar fácilmente objetos ADO y * * * llamar a procedimientos almacenados de bases de datos.
En el sistema de gestión de archivos de ciencia y tecnología escrito por el autor, se utiliza VB como plataforma de desarrollo y la base de datos SQL Server2000 para gestionar los datos. En este sistema de gestión de archivos científicos y tecnológicos existen cantidades masivas de datos y acceso frecuente a la base de datos. El uso de procedimientos almacenados para acceder a la base de datos ahorra tiempo de ejecución y mejora enormemente el rendimiento del sistema.
1 Introducción a ADO
El control ADO (también conocido como control de datos ADO) es similar al control de datos inherente de VB. Al utilizar controles de datos ADO, puede utilizar objetos de datos ActiveX de Microsoft (ADO) para establecer rápidamente una conexión entre un control vinculado a una base de datos y un proveedor de datos.
El control de datos ADO puede realizar las siguientes funciones:
Conectarse a una base de datos local o remota.
Abra una tabla de base de datos específica o defina una consulta basada en un registro en lenguaje de consulta estructurado (SQL), un procedimiento almacenado o una vista de tabla en la base de datos.
Pasar los valores de los campos de datos a controles vinculados a datos, donde se pueden mostrar o cambiar.
Agregar nuevos registros o actualizar la base de datos en función de los datos mostrados en el control enlazado.
2. Conexión a la base de datos
La conexión a la base de datos se puede lograr mediante el control ADO. Para hacer esto, debe seleccionar Microsoft ADO Data Control 6.0 (OLEDB) en la sección del proyecto y luego agregar el control ADO al formulario. Hay dos formas de conectarse a la base de datos usando ADO, como se muestra a continuación.
1) Conéctese a través de la página de propiedades de ADODC.
Seleccione el botón "Generar" en la página de propiedades de ADODC para ingresar al cuadro de diálogo "Propiedades del enlace de datos", luego seleccione la página de propiedades de la conexión en el cuadro de diálogo, seleccione o ingrese información importante como el nombre del servidor; , base de datos, etc.; finalmente, pruebe la conexión.
Una vez que la conexión sea exitosa, presione el botón "Aceptar" para regresar al cuadro de diálogo de la página de propiedades y obtener la cadena de conexión, como se muestra en el siguiente ejemplo:
provider = SQL oledb.1; = Falso ID de usuario = sa Directorio inicial = Science_File; Fuente de datos = Servidor de datos
Donde sa es el nombre de usuario; Science_File es el nombre de la base de datos; Data_Server es el nombre de la base de datos.
Puede conectarse a la base de datos especificada mediante la siguiente declaración:
dim odbcstr es String, adocon es New ADODB. Relación
odbcstr = "Proveedor = SQL oledb.1; Información de seguridad persistente = ID de usuario falso = sa Directorio inicial = Science_File; Fuente de datos = Servidor de datos"
adocon . Abra odbcstr 'Conectarse a la base de datos.
2) Utilice la declaración de conexión directamente.
La instrucción para conectarse a la base de datos es la siguiente:
Dim ado as ADODC
Ado. ConnectionString = " Proveedor = SQL oledb . 1; Contraseña = " & ampUserPassword&"; PersistSecurityInformation = TrueUserID = " &Username&"; Directorio inicial = " &DataName&"; Fuente de datos = " & amp nombre del servidor
Donde Usuario- Pwd es la contraseña del usuario; User_Name es el nombre de usuario; Data_Name es el nombre de la base de datos; Server_name es el nombre del servidor.
Después de conectarse exitosamente a la base de datos, puede llamar al procedimiento almacenado para realizar la operación.
3. Llamada de procedimientos almacenados
Supongamos que hay un procedimiento almacenado llamado doc_ProcName, que tiene un parámetro de entrada y un parámetro de salida.
1) Llame directamente al procedimiento almacenado pasando parámetros.
El método de pasar parámetros directamente se implementa principalmente mediante los siguientes pasos:
(1) Abra la conexión a la fuente de datos a través del objeto de conexión ADODB; >(2) A través de ActiveConnection especifica el objeto de conexión al que pertenece actualmente el objeto de comando
(3) Establece el origen del objeto de comando a través del atributo CommandText, es decir, el procedimiento almacenado que se llamará;
(4) Determinarlo mediante el atributo CommandType. El tipo de origen del objeto de comando. Si el tipo de origen es un procedimiento almacenado, el CommandType es adCmdStoredProc.
(5) Pasar parámetros. al procedimiento almacenado llamado a través de los parámetros del objeto de comando * * *, donde el parámetro del objeto (0) es el valor de retorno de la ejecución del procedimiento almacenado. Si el valor de retorno es 0, el procedimiento almacenado se ejecuta con éxito. >
(6) Ejecute el procedimiento almacenado especificado en el atributo CommandText mediante el método Eexecute.
Tome el procedimiento almacenado doc_ProcName como ejemplo. El código clave es el siguiente:
"Dim strS As String" define una variable.
El objeto de conexión "dimadoconas new adodb. Connection" representa una conexión abierta a la fuente de datos.
El objeto de comando "dimadom asnewadodb.command" define el comando especificado que se ejecutará en la fuente de datos.
' Dim ReturnValue As Integer 'El valor de retorno de llamar al procedimiento almacenado.
adoconn . cadena de conexión = adodc 1 . cadena de conexión ' adodc 1 es el control ADO en el formulario y se ha conectado correctamente a la base de datos.
Hodor Connecticut. Abra
Setam.
"activeConnection = adoconn" indica el objeto de conexión al que pertenece actualmente el objeto de comando especificado.
Adóm. CommandText = "doc_ProcName" 'Establece el origen del objeto de comando.
Adóm. "Commandtype = adcmdstoredproc" le dice al proveedor cuál es la propiedad CommandText, que puede incluir el tipo de origen del objeto de comando. Establecer esta propiedad optimiza la ejecución de este comando.
adom. Parámetro(1) = "1 "
Adom. parámetros(2)= "parámetros de salida" 'Los parámetros de salida pueden ser cualquier cadena o número.
adom. Ejecución
ReturnValue = adomParameters(0)'El valor de retorno del procedimiento almacenado. Si se devuelve 0, se ejecutará correctamente.
StrS = adom. Parameters(2)' asigna el valor del parámetro de salida del procedimiento almacenado a la variable strs.
2) Llamar al procedimiento almacenado agregando parámetros.
Se utilizan parámetros adicionales para especificar propiedades para crear nuevos objetos de parámetros a través del método CreateParameter. La sintaxis específica es la siguiente:
Establecer parámetro = mand. CreateParameter (nombre, tipo, dirección, tamaño, valor)
El nombre es opcional, tipo cadena, que representa el nombre del objeto de parámetro.
El tipo es opcional, un valor entero largo, que especifica el tipo de datos del objeto Parámetro.
La dirección es un valor entero largo opcional que especifica el tipo de objeto del parámetro.
Tamaño opcional, valor entero largo, especifica la longitud máxima del valor del parámetro (en caracteres o bytes).
Valor opcional, variante y especifica el valor del objeto de parámetro.
La principal diferencia entre este método y el método anterior es que al pasar parámetros al procedimiento almacenado, este método primero crea parámetros para el procedimiento almacenado a través del método CreateParameter y luego agrega los parámetros creados a Parámetros a través de el método de agregar ** *medio.
Aún tomando como ejemplo la llamada del procedimiento almacenado doc_ProcName, el código clave es el siguiente:
dimmrstat es ADODB. Un objeto Recordset representa un conjunto completo de registros de una tabla base o del resultado de la ejecución de un comando.
dimprm asadodb. Un objeto de parámetro "parámetro" representa un parámetro o parámetros asociados con un objeto de comando basado en una consulta parametrizada o un procedimiento almacenado.
Hodor Connecticut. Cadena de conexión = Adodc1. Cadena de conexión
Hodor Conn. Abrir
Establecer adom. ActiveConnection = adoconn
adom. CommandText = "doc_ProcName "
adom. CommandType = adCmdStoredProc
Establecer prm = adom. crear parámetro(" parámetro 1 ", adTinyInt, adParamInput, " 1 ")
adom. parámetro. agregar prm
Establecer prm = adom. CreateParameter("parámetro2", adInteger, adParamOutput)
adom. parámetro. Agregar prm
Establecer mRst = adom. Ejecutar
ReturnValue = parámetro adom (0)