Uso de procedimientos almacenados para implementar el acceso a la base de datos ASP
Autor:Eve Cole
Fecha de actualización:2009-06-24 17:21:43
1. Descripción general de ADO
ActiveX Data Objects (ADO) es una tecnología escalable y fácil de usar para agregar acceso a bases de datos a sus páginas web. Puede usar ADO para escribir scripts concisos y escalables para conectarse a fuentes de datos compatibles con OLE DB, como bases de datos y hojas de cálculo. , archivos de datos secuenciales o directorios de correo electrónico. OLE DB es una interfaz de programación a nivel de sistema que proporciona un conjunto de interfaces COM estándar para mostrar las funciones del sistema de administración de bases de datos. Al utilizar el modelo de objetos de ADO, puede acceder fácilmente a estas interfaces (usando un lenguaje de secuencias de comandos como VBScript o JScript) y agregar funcionalidad de base de datos a su aplicación web. Además, puede utilizar ADO para acceder a bases de datos compatibles con Open Database Connectivity (ODBC).
Si es un escritor de guiones con algún conocimiento sobre interconexiones de bases de datos, encontrará que la sintaxis de comandos de ADO es simple y fácil de usar. Si es un desarrollador experimentado, apreciará el acceso escalable y de alto rendimiento que ADO proporciona a una variedad de fuentes de datos.
2. Métodos generales para acceder a la base de datos El acceso a la base de datos en el acceso general a la página web se realiza de acuerdo con los siguientes pasos: Primero, cree un objeto de la interfaz ADODB.Connection y luego vincule la fuente de datos correspondiente a este objeto. Puede usar la fuente de datos con nombre y la fuente de datos sin nombre), cree o no un conjunto de registros según sea necesario, y luego vincúlelo a la fuente de datos y use el método de ejecución o apertura para operar la tabla correspondiente.
El método general para que ASP acceda a la base de datos:
<
Establecer oConn=Server.CreateObject("ADODB.Connection")
Establecer oRS=Server.CreateObject("ADODB.RecordSet")
set strConn="Provider=SQLOLEDB;ID de usuario=sa; Catálogo inicial=Pubs;Fuente de datos=" &request.ServerVariables("SERVER_NAME")
oConn.open strConn
establecer ORS=oConn.execute("seleccionar * de la prueba")
>
Lo anterior presenta cómo usar OLEDB para enlaces sin nombre. Si es un enlace con nombre, configúrelo como prueba de fuente de datos y el nombre de usuario y la contraseña están vacíos. Solo necesita reescribir la declaración anterior oConn.open "prueba". ",""
Lo anterior presenta brevemente los métodos generales de acceso a bases de datos en páginas web. Estos ya son muy maduros y muy útiles. Si el acceso a ciertos datos es demasiado complicado en la práctica, se necesitarán casi 10 declaraciones SQL para completar, entonces este método. Además, a veces es necesario utilizar el mismo proceso de procesamiento en diferentes páginas web, y esta es la ventaja de utilizar procedimientos almacenados. Otra característica importante es que los procedimientos almacenados son muy técnicos. y se almacena en la base de datos del servidor remoto.
3. El uso de procedimientos almacenados en ASP ADO proporciona acceso a procedimientos almacenados, lo que requiere el uso del objeto de comando. En este objeto, los usuarios pueden ejecutar directamente los procedimientos almacenados del servidor SQL y los parámetros requeridos en el comando pueden ser. Se procesa utilizando sus propiedades Pamaters.
Tenga en cuenta que para que un objeto Command sea válido, debe estar asociado con un objeto Connection estableciendo la propiedad ActiveConnection del objeto Command en el objeto Connection. Si no se puede identificar un objeto Conexión, el objeto Comando no es válido hasta que lo asocie con una conexión.
< Atenuar oConn
Dim strConn
Atenuar oCmd
ORS tenues, ORS1
tenue aa
dimsql
Establecer oConn = Server.CreateObject("ADODB.Connection")
establecer oCmd = Server.CreateObject("ADODB.Command")
establecer ors1=Server.CreateObject("ADODB.RecordSet")
'Abra el enlace, use el ID de usuario SA, la contraseña está vacía, conéctese a la base de datos en el servidor local
strConn="Provider=SQLOLEDB;ID de usuario=sa;Catálogo inicial=pubs;Fuente de datos="& Request.ServerVariables("SERVER_NAME")
'Si se conecta a una base de datos remota, la dirección de la base de datos es: 10.82.88.105, el usuario es tmp y la contraseña es 123.
'Se puede utilizar el siguiente método' strConn="Provider=SQLOLEDB;User ID=tmp;pwd=123;Initial Catalog=tjbb;Data Source="& "10.82.88.110"
oConn.Abrir strConn
'Agregar el enlace establecido al atributo de enlace activo del comando
Establecer oCmd.ActiveConnection = oConn
'Establezca el procedimiento almacenado que llama por realeza y parámetros, ¿los parámetros son por? introducir
oCmd.CommandText = "{llamar a la realeza(?)}"
oCmd.Parameters.Append oCmd.CreateParameter("@Percentage", adInteger, adParamInput)
'Proporciona parámetros de entrada
oCmd("@Porcentaje") = 75
'El uso de los parámetros de entrada anteriores en asp también se puede lograr sin atributos de parámetro, simplemente use & en VB para formar los datos correspondientes en el texto del comando' El uso de parámetros es particularmente útil durante la salida
Establecer oRs = oCmd.Execute
ors1.activeconnection=oconn
'Las declaraciones SQL generales también se pueden usar en este objeto de comando usando los atributos Fuente y abierto, donde fuente señala la fuente de datos.
ors1.source ="seleccione * de [tmptable] donde año=2000 y mes=1"
ors1.cursorttype=adopenstatic
ors1.abierto
>
4. Introducción a los procedimientos almacenados en SQL Usando el lenguaje SQL, puede escribir procedimientos almacenados para el acceso a la base de datos. La sintaxis es la siguiente:
CREAR PROC[EDURE] nombre_procedimiento [;número]
[
{@parameter data_type} [VARIAN] [= predeterminado] [SALIDA]
]
[,...norte]
[CON
{
RECOMPILAR
CIFRADO
| RECOMPILAR, CIFRADO
}
]
[PARA REPLICACIÓN]
COMO
declaración_sql [...n]
El contenido dentro de [ ] es opcional, mientras que el contenido dentro de () es obligatorio.
Ejemplo: si el usuario desea crear un procedimiento almacenado Select_delete para eliminar registros en la tabla tmp, se puede escribir como:
Crear proceso select_del como
eliminar tmp
Ejemplo: el usuario desea consultar el procedimiento almacenado para datos de un año determinado en la tabla tmp
crear proc select_query @year int como
seleccione * de tmp donde año=@año
Aquí @year es un ejemplo de parámetro de un procedimiento almacenado: este procedimiento almacenado comienza desde un determinado nodo n para encontrar el nodo principal de nivel superior. Este proceso de uso frecuente puede realizarse mediante un procedimiento almacenado y puede reutilizarse en páginas web para lograrlo. intercambio. .
Vacío: indica que el nodo es un nodo de nivel superior
fjdid (número de nodo principal)
El nodo n no está vacío: indica el número de nodo principal del nodo
dwmc (nombre de la unidad)
CREAR proc search_dwmc @dwidold int,@dwmcresult varchar(100) salida
como
declarar @stop int
declarar @resultado varchar(80)
declarar @dwmc varchar(80)
declarar @dwid int
establecer no contar en
establecer @parada=1
establecer @dwmc=""
seleccione @dwmc=dwmc,@dwid=convert(int,fjdid) de jtdw donde id=@dwidold
establecer @resultado=rtrim(@dwmc)
si @dwid=0
establecer @parada=0
mientras (@stop=1) y (@dwid<>0)
comenzar
establecer @dwidold=@dwid
seleccione @dwmc=dwmc,@dwid=convert(int,fjdid) de jtdw donde id=@dwidold
si @@rowcount=0
establecer @dwmc=""
demás
establecer @resultado=@dwmc+@resultado
si (@dwid=0) o (@@rowcount=0)
establecer @parada=0
demás
continuar
fin
establecer @dwmcresult=rtrim(@resultado)
El uso completo y razonable de los procedimientos almacenados puede mejorar el rendimiento del servidor. El autor utiliza procedimientos almacenados para obtener datos de casi 20 tablas y combinarlos en una tabla general, generando casi 20,000 registros, y el tiempo requerido es de aproximadamente 7 segundos. La operación puede mejorar el desarrollo del servidor a un nivel superior con la ayuda de páginas web dinámicas más razonables, haciendo un uso completo de los procedimientos almacenados, que pueden reducir el procesamiento pesado causado por el diseño web, de modo que el código escrito pueda compartirse y utilizarse razonablemente, y el código se puede ocultar dentro de la base de datos del servidor, algunas tecnologías se mantienen confidenciales. Esta también es una característica importante de los procedimientos almacenados. Espero que los lectores puedan beneficiarse de ella.