ASP Conferencia 6: ASP y base de datos (1)
Autor:Eve Cole
Fecha de actualización:2009-05-30 19:55:05
En las conferencias anteriores, aprendimos el contenido básico de ASP. Al utilizar este conocimiento de manera flexible, ya puede usar ASP para crear un sitio web. Pero en términos generales, un sitio web real y completo no se puede separar de una base de datos, porque una pequeña cantidad de datos, como el número de visitantes de la página web, se puede almacenar en archivos de texto, pero en las aplicaciones reales, los datos que necesitan ser guardado es mucho más que esto poco a poco, y estos datos a menudo están relacionados, utilizando una base de datos para administrar estos datos se pueden consultar y actualizar fácilmente. Hay muchos tipos de bases de datos, tales como: base de datos Fox (.dbf), base de datos Access (.mdb), Informix, Oracle y SQL Server, etc. En esta conferencia, usaré la base de datos Microsoft Access y SQL Server 7.0 como ejemplos para Ilustre ASP cómo acceder a la base de datos. ¿Por qué elegir ASP? Las estadísticas muestran que SQL Server 7.0 es actualmente la base de datos más rápida y rentable, y muchos sitios web grandes como www.8848.net, www.dell.com, www.hotbot.com se crean utilizando tecnología ASP, por lo que ASP es una tecnología relativamente fácil de dominar y muy práctica. Debes intentar acercarte a ella, comprenderla y luego utilizarla con confianza y valentía.
Qué preparativos se deben hacer antes de realizar más estudios:
1. Si nunca ha estado en contacto con una base de datos, se recomienda instalar primero Microsoft Access en Office y aprender los conocimientos básicos de las bases de datos.
2. Lo mejor es instalar Microsoft SQL Server 7.0. Una vez instalado, se puede utilizar inmediatamente sin ninguna configuración. Tenga en cuenta que la versión DeskTop debe instalarse en Windows 9.x, mientras que las versiones anteriores a 7.0 sólo se pueden instalar en NT Server.
3. El contenido que se analiza a continuación requiere un componente llamado MDAC (Componentes de acceso a datos de Microsoft). Este componente ya está incluido en ASP. Si desea obtener más información sobre el contenido relevante o descargar la última versión, puede visitar http://www. microsoft.com/data.
1. Establecer una conexión con la base de datos Antes de comenzar oficialmente, permítame presentarle ADO - ActiveX Data Objects. Si es nuevo en este concepto, sólo necesita pensar en ADO como un puente entre ASP y la base de datos.
(1) Método 1 para establecer una conexión con la base de datos de Microsoft Access: Ejemplo wuf40.asp
<% @LANGUAGE = VBScript %>
<% ' wuf40.asp
Opción explícita
Dim Cnn, StrCnn
' 1 - Crear objeto de conexión
Establecer Cnn = Server.CreateObject ("ADODB.Connection")
StrCnn = "Driver={Controlador de Microsoft Access (*.mdb)}; DBQ=" & Server.MapPath("asp") & "NorthWind.mdb;"
'2 - Abra la base de datos usando el método Open del objeto Connection
Cnn.Abrir StrCnn
Respuesta.Escribir Server.MapPath("asp") & "NorthWind.mdb;" & "<br>"
Response.Write "Conexión de base de datos exitosa: " & Cnn.State & "<br>"
'3 - Cerrar la conexión usando el método Cerrar del objeto Conexión
CNN.cerrar
Response.Write "La base de datos ha sido cerrada: " & Cnn.State
'4 - Elimina el objeto Conexión de la memoria para liberar recursos
Establecer Cnn = Nada
%>
Northwind.mdb es una base de datos de muestra que viene con Microsoft Access97. Generalmente se encuentra en el directorio "Microsoft OfficeOfficeSamples". Puede buscarlo usted mismo y luego copiar este archivo al directorio correspondiente del servidor web (en este). Por ejemplo, colóquelo en C :InetPubhomeasp).
Aquí, el método MapPath del objeto Servidor convierte la ruta virtual especificada en una ruta de archivo real y el resultado final es similar a: C:InetPubhomeaspNorthwind.mdb.
Método 2: utilice OLE DB para crear una conexión de Microsoft Access. Las partes clave se enumeran a continuación.
Establecer Cnn = Server.CreateObject ("ADODB.Connection")
StrCnn = "Proveedor = Microsoft.Jet.OLEDB.4.0; Fuente de datos = C:InetpubhomeaspNorthwind.mdb"
Cnn.Abrir StrCnn
(2) Método 1 para establecer una conexión con la base de datos de SQL Server: utilice OLE DB para conectarse a SQL Server. Para obtener más información, consulte la rutina wuf41.asp.
Establecer Cnn = Server.CreateObject ("ADODB.Connection")
StrCnn = "Proveedor=sqloledb; ID de usuario=sa; Contraseña=; Catálogo inicial=pubs; Fuente de datos=ICBCZJP"
Cnn.Abrir StrCnn
Especifique el nombre de la base de datos después del Catálogo inicial y el nombre de la máquina después de la Fuente de datos (es decir, el nombre de la computadora en Red → Propiedades → Identidad) o la dirección IP (es necesario instalar el servicio DNS).
Método dos:
Establecer Cnn = Server.CreateObject ("ADODB.Connection")
StrCnn = "Controlador={SQL Server};Servidor=ICBCZJP;UID=sa;PWD=;Base de datos=pubs"
Cnn.Abrir StrCnn
Además de los dos métodos anteriores, por supuesto, también puede utilizar el método más clásico presentado en muchos artículos y materiales: utilizar ODBC para generar una conexión. Esto significa establecer primero una conexión en "Fuentes de datos ODBC" en el panel de control del servidor web y luego usar una cadena de conexión similar a "StrCnn ="DSN=ADOCnn; UID = sa;PWD=;Database=pubs"" en ASP. . No lo presentaré en detalle aquí. En primer lugar, este no es el mejor método. En segundo lugar, otros materiales han introducido este método.
Además, si estás interesado, puedes descargar la rutina wuf42.asp para ver cómo utilizar las propiedades ConnectionTimeout y ConnectionString del objeto Connection.
2. La base de datos comienza aquí: recuperación de datos que ya existen en la base de datos. Ahora se supone que ya tiene el conocimiento más básico de la base de datos y sabe cómo usar Microsoft Access para abrir la tabla "Shipper" en Northwind.mdb y ver. los datos almacenados en la tabla. Algunos datos. Ahora la pregunta es cómo usar ASP para mostrar estos datos en el navegador. Aquí hay tres métodos.
Recordatorio especial: si la base de su base de datos es débil, solo necesita poder usar el segundo método. No sea codicioso para evitar ir demasiado lejos, ¡así que recuerde! ¡Recordar!
Método 1: utilice únicamente el objeto Conexión. Ejemplo wuf43.asp
<% @LANGUAGE = VBScript %>
<% ' wuf43.asp
Opción explícita
'Esta oración es muy importante, puede garantizar que los datos que ve no sean los datos almacenados en caché en el cliente.
'Pero los datos más recientes se actualizan en cualquier momento en el lado del servidor
Respuesta.Expira = 0
'Parte 1: Establecer una conexión
Dim Cnn, StrCnn
Establecer Cnn = Server.CreateObject ("ADODB.Connection")
StrCnn = "Proveedor = Microsoft.Jet.OLEDB.4.0; Fuente de datos = C:InetpubhomeaspNorthwind.mdb"
Cnn.Abrir StrCnn
'Parte 2: Utilice el método Execute del objeto Connection para obtener el conjunto de registros
Dim StrSQL, rsTest
"La siguiente es una declaración SQL (declaración de consulta estructurada), que no se presentará en detalle en esta conferencia. Se recomienda leer este libro. El uso básico es relativamente simple y podrá aprenderlo una vez que lo aprenda.
'Esta oración significa seleccionar todos los datos de la tabla de operadores
StrSQL = "Seleccionar * Del remitente"
Establecer rsTest = Cnn.Execute (StrSQL)
%>
<HTML>
<CUERPO>
<% 'Parte 3: Mostrar el conjunto de registros obtenidos en el navegador
'Recorrido hasta el final del registro: visualización línea por línea, registro por registro
Hacer mientras no rsTest.EOF
'Las dos líneas siguientes tienen el mismo efecto, es decir, rsTest("Shipper ID") es equivalente a rsTest(0)
Response.Write rsTest("ID del remitente") & " " & rsTest("Nombre de la empresa") & " " & rsTest("Teléfono") & " " & "<BR>"
'Respuesta.Escribir rsTest(0) & " " & rsTest(1) & " " & rsTest(2) & " " & "<BR>"
'Pasar al siguiente registro: esta frase no debe omitirse, de lo contrario caerá en un bucle infinito
rsTest.MoveNext
Bucle
'Parte 4: Limpiar el campo de batalla
CNN.cerrar
Establecer rsTest = Nada: Establecer Cnn = Nada
%>
</CUERPO>
</HTML>
Este ejemplo es muy simple. La tercera parte muestra los datos en el estilo de salida típico de la base de datos. Puede consultar el conocimiento que ha aprendido antes y agregar tablas y colores para embellecer los resultados de salida.
Los usuarios no junior pueden consultar wuf44.asp para ver el uso completo del método Execute.
Método 2: creando un objeto Recordset; recuerde que los principiantes solo necesitan dominar este método.
Ejemplo: wuf45.asp, las demás partes son iguales que wuf43.asp, la clave está en la segunda parte del programa.
'Parte 2: Obtener el conjunto de registros creando un objeto RecordSet
Dim StrSQL, rsTest
'Crear objeto conjunto de registros
Establecer rsTest = Server.CreateObject("ADODB.Recordset")
StrSQL = "Seleccione ID del operador, número de teléfono, nombre de la empresa Del operador Donde número de teléfono = '(503) 555-9931'"
'Adjunte el objeto Recordset a la conexión Cnn
Establecer rsTest.ActiveConnection = Cnn
'Abre el conjunto de registros usando el método Open del objeto Recordset
rsTest.Abrir StrSQL
Ahora veamos el uso completo del método Open del objeto Recordset, por ejemplo wuf48.asp.
<% @LANGUAGE = VBScript %>
<% ' wuf48.asp
Opción explícita
Respuesta.Expira = 0
%>
<!--#include file="adovbs.inc"-->
<%
'Parte 1: Establecer una conexión
Dim Cnn, StrCnn
Establecer Cnn = Server.CreateObject ("ADODB.Connection")
StrCnn = "Proveedor = Microsoft.Jet.OLEDB.4.0; Fuente de datos = C:InetpubhomeaspNorthwind.mdb"
Cnn.Abrir StrCnn
'Parte 2: Obtener el conjunto de registros creando un objeto RecordSet
Prueba rs tenue
Establecer rsTest = Server.CreateObject("ADODB.Recordset")
rsTest.Open "Remitente", CNN, adOpenForwardOnly, adLockReadOnly, adCmdTable
%>
<HTML>
<CUERPO>
<% 'Parte 3: Mostrar el conjunto de registros obtenidos en el navegador
Hacer mientras no rsTest.EOF
Respuesta.Escribir rsTest(0) & " " & rsTest(1) & " " & rsTest(2) & " " & "<BR>"
rsTest.MoveNext
Bucle
'Parte 4: Limpiar el campo de batalla
rsTest.Cerrar: Cnn.Cerrar
Establecer rsTest = Nada: Establecer Cnn = Nada
%>
</CUERPO>
</HTML>
analizar:
1. Primero mire las oraciones clave:
rsTest.Open "Remitente", CNN, adOpenForwardOnly, adLockReadOnly, adCmdTable
El primer parámetro puede ser un nombre de tabla (como: transitario) o una declaración SQL (como wuf45.asp).
El segundo parámetro especifica la conexión actual.
El tercer parámetro indica CursorType, que determina el tipo de cursor que el proveedor debe usar al abrir Recordset. Esto utiliza un cursor que solo se mueve hacia adelante.
El cuarto parámetro indica LockType, que determina el tipo de bloqueo (concurrencia) que el proveedor debe usar al abrir Recordset. Especifique aquí solo lectura.
El quinto parámetro está relacionado con el primer parámetro. Si el primer parámetro en este ejemplo es el nombre de la tabla, el quinto parámetro usa adCmdTable. Si el primer parámetro es una instrucción SQL, el primer parámetro es adCmdText, como por ejemplo:
rsTest.Open "Seleccionar * Del operador",Cnn,adOpenForwardOnly,adLockReadOnly,adCmdText
No creo que la mayoría de la gente pueda entender realmente el significado de estos cinco parámetros. Al principio, simplemente cópielos y utilícelos. Continuaremos en contacto y lo haremos. Perfecto a medida que nos acostumbramos a ellos.
Los dos parámetros CursorType y LockType se explicarán en detalle a continuación. Solo para recuperar datos, solo necesita configurarlos de acuerdo con este ejemplo.
2. Estos cinco parámetros también se pueden configurar utilizando las propiedades del objeto Recordset, como wuf46.asp.
'Parte 2: Obtener el conjunto de registros creando un objeto RecordSet
Prueba rs tenue
Establecer rsTest = Server.CreateObject("ADODB.Recordset")
rsTest.ActiveConnection = CN
rsTest.CursorType = anuncioOpenForwardOnly
rsTest.LockType = adLockReadOnly
rsTest.Open "Remitente", , , ,adCmdTable
3. Mire esta oración nuevamente: <!--#include file="adovbs.inc"-->.
(1) Debido a que se utilizan constantes como adOpenForwardOnly, adLockReadOnly y adCmdText, es necesario incluir el archivo adovbs.inc.
(2) El archivo adovbs.inc generalmente se encuentra en el directorio Archivos de programaArchivos comunesSYSTEMADO. Puede copiarlo al directorio actual del servidor web (este archivo también se incluye en el paquete de descarga de esta conferencia). .
(3) Abra este archivo con el Bloc de notas y eche un vistazo y comprenderá por qué es necesario.
Método tres: introduciendo el objeto Comando; esto debe estudiarse bajo la premisa de que usted es capaz.
<% @LANGUAGE = VBScript %>
<% ' wuf47.asp
Opción explícita
Respuesta.Expira = 0
%>
<!--#include file="adovbs.inc"-->
<%
'Parte 1: Establecer una conexión
Dim Cnn, StrCnn
Establecer Cnn = Server.CreateObject ("ADODB.Connection")
StrCnn = "Proveedor = Microsoft.Jet.OLEDB.4.0; Fuente de datos = C:InetpubhomeaspNorthwind.mdb"
Cnn.Abrir StrCnn
'Parte 2: Obtener el conjunto de registros creando un objeto Command
Dim StrSQL, rsTest, cmdTest
'Crear objeto de comando
Establecer cmdTest = Server.CreateObject ("ADODB.Command")
StrSQL = "SELECCIONAR MAX(cantidad) DE los detalles del pedido"
cmdTest.CommandText = StrSQL
cmdTest.CommandType = adCmdText 'Indica que el tipo de comando es una declaración SQL
Establecer cmdTest.ActiveConnection = Cnn
'Utilice el método Execute del objeto Command para obtener el conjunto de registros.
Establecer rsTest = cmdTest.Execute
%>
<HTML>
<CUERPO>
<% 'Parte 3: Mostrar el conjunto de registros obtenidos en el navegador
Hacer mientras no rsTest.EOF
Respuesta.Escribir rsTest(0) & "<BR>"
rsTest.MoveNext
Bucle
'Parte 4: Limpiar el campo de batalla
rsTest.Cerrar: Cnn.Cerrar
Establecer rsTest = Nada: Establecer cmdTest=Nada: Establecer Cnn = Nada
%>
</CUERPO>
</HTML>
El uso del objeto Comando se explicará en la programación detallada de la base de datos en el futuro.
Esta conferencia presenta principalmente cómo conectarse a la base de datos y recuperar datos de la base de datos. Los principiantes inevitablemente estarán un poco confundidos, solo necesitan aprender los siguientes puntos de conocimiento:
1. Cómo utilizar OLE DB para establecer una conexión con una base de datos de Microsoft Access;
2. Cómo utilizar OLE DB para establecer una conexión con una base de datos de Microsoft SQL Server;
3. Cómo recuperar datos de la base de datos creando un objeto Recordset.