Cómo escribir componentes ASP usted mismo o cómo convertir código ASP en componentes.
Este artículo utiliza la DLL generada por VB para encapsular el código ASP para conectarse a la base de datos (tomando la base de datos de Access como ejemplo).
Generalmente, cuando utilizamos ASP para conectarnos a la base de datos de Access, solemos realizar las siguientes operaciones.
//Proconn.asp
& lt%
atenuar ProConn
Establecer ProConn=Servidor. CreateObject("ADODB.Connection")
Proconn. abra " Controlador = { Controlador Microsoft Access (*.MDB)} uid = pwd = 123 DBQ = " & servidor. MapPath("DB.asp ")
La base de datos de Access originalmente llamada DB.mdb se cambia a un archivo con el sufijo DB.asp y la contraseña de la base de datos es 123.
Si está mal. Número<& gtluego 0
respuesta. Escribe "La base de datos no está vinculada, por favor revisa"
Respuesta. Fin
Otras
Respuestas. Escribe "Conexión de base de datos exitosa"
respuesta. Fin
Terminará si...
% & gt
Si el servidor está configurado, acceda a Proconn.asp. Si la conexión a la base de datos es exitosa, "Conexión de base de datos" se generará correctamente".
Sin embargo, el nivel de seguridad de este código asp es muy bajo. Si este asp es visto principalmente por personas, otros pueden verlo fácilmente si existe este archivo de base de datos.
Siéntete libre de abrir tu base de datos para su manipulación.
Entonces nuestra tarea está aquí: ¿cómo empaquetar estos contenidos clave?
Primero, necesitamos determinar el método, método y objeto.
Revisé cierta información en Internet y la mayoría usa VB para generar paquetes DLL, así que usaré este método, aunque todavía no he usado VB.
El método está determinado, entonces, ¿cuál es el objeto que necesitamos encapsular?
Ven y mira
" Driver = {Microsoft Access Driver(*.MDB)}; uid =; pwd = 123; DBQ = " & amp; MapPath("DB.asp ")
es el código más crítico. Este código está encapsulado en una DLL generada por VB, que debería ser mejor.
La razón por la que no
atenuar ProConn
establece ProConn=Server. CreateObject("ADODB.Connection")
Proconn. abra " Controlador = { Controlador Microsoft Access (*.MDB)} uid = pwd = 123 DBQ = " & servidor. MapPath("DB.asp ")
está encapsulado (porque se habla de encapsular todo el código de conexión en Internet) porque cuando otros archivos asp hacen referencia a Proconn.asp,
yo También se necesita ProConn interior para realizar otras operaciones. Si está encapsulado, es inconveniente hacer referencia y operar.
(La explicación anterior de los objetos encapsulados es mi opinión personal. Algunos amigos dijeron que la encapsulación completa no tiene ningún impacto en el uso de ProConn. No lo entiendo. Si lo sabe, dígame).
Solo quiero resumir la parte más crítica " Driver = { Microsoft Access Driver(*.MDB)} " uid = pwd = 123 DBQ = " & Server.
MapPath("DB.asp ")"
Analiza el contenido que se va a encapsular.
La primera mitad es una cadena:
" Driver = { Microsoft Access Driver(*.mdb)}; uid = pwd = 123; dbq = "
Utilice otra cadena que conecte las partes superior e inferior.
Otro carácter para la segunda mitad La cadena es el valor de retorno de la función del objeto MapPath.
Comencemos la operación de este paquete.
Creemos un nuevo proyecto DLL ActiveX en VB. Método ConDBDLL clase1 y cs.
El nombre del proyecto y el nombre del método se utilizarán al llamar a esta DLL. Puede definirlos de acuerdo con sus propias reglas de nomenclatura, pero utilícelos con cuidado. >La parte del código de la DLL está escrita de la siguiente manera:
Atenuar rp como respuesta
Marcar rq según sea necesario
Atenuar ap como aplicación
Dim sr como servidor
Mostrar número de serie como sesión
Página de inicio secundaria pública (MyScriptingContext como contexto de scripting)
Establecer rp = MyScriptingContext reaccionar
Establecer rq = MyScriptingContext. Solicitud
Establecer sr = MyScriptingContext.
Establecer ap = MyScriptingContext. Establecer sn = MyScriptingContext.
finalizar sesión.
subpágina pública()
establecer rp=Ninguno
establecer rq=Ninguno
Establecer sr = Ninguno
Establecer ap = Ninguno
Establecer número de serie = Ninguno
Conector final
La declaración anterior es necesaria, simplificó el objeto original y lo manejó en dos conceptos básicos. funciones
Función pública ConnectDB() como variable
connect db = " Driver = { Microsoft Access Driver(*. MDB)}; uid =; pwd = 123; DBQ = "
Función final
La función anterior procesa la primera mitad de la cadena y devuelve directamente el contenido de la cadena.
Además, defina la siguiente función para manejar las siguientes partes.
Función pública DBPath() como variable
DBPath = sr.MapPath("DB.asp ")
Fin de función
Tenga en cuenta que arriba se usa sr, no Server.
El paso clave es agregar una referencia a la "Biblioteca de objetos de contexto de objetos de páginas de Microsoft Active Server" al proyecto.
Para agregar un método, seleccione "Proyecto" -> "Referencia" en el menú y selecciónelo en el cuadro de diálogo que se abre.
Por cierto, también debes seleccionar "Biblioteca Microsoft ActiveX Data Objects 2.6".
Después de completar las operaciones anteriores, podemos compilar y generar la DLL (no olvide cambiar el nombre del proyecto y el nombre del método).
Prepare el archivo de base de datos DB.asp (cambiado del sufijo DB.mdb, contraseña 123).
El siguiente es el código del archivo ASP para llamar a la conexión de base de datos encapsulada:
//ProConn.asp
& lt%
dim ProConn
Establecer ProConn=Servidor. CreateObject("ADODB.Connect")
Dim ConDB
Establecer ConDB = Servidor.
CreateObject("ConDBDLL.Connection")
ConDB es el objeto DLL creado.
Dimensiones StrConn
Define una cadena.
StrConn = ConDB. ConectarDB()&ConDB. DBPath()
Concatena las dos partes en una cadena.
Proconn. Abra StrConn
para realizar operaciones con objetos de base de datos.
% & gt
Dado que la DLL la creamos nosotros mismos, debemos registrarla antes de poder usarla después de copiarla en el directorio correspondiente.
El método de registro ejecutado en "Ejecutar":
Regsvr32.exe·lyfUpload.dll
El método para cancelar el registro de esta DLL es: Regsvr32.exe/UlyfUpload .dll.
Una vez completado el registro, nuestro trabajo básicamente está completo. Ahora podemos usar este método de encapsulación para conectarnos a la base de datos de destino.
Pero hay una cosa que necesita especial atención:
Porque
Dim ConDB
Establezca ConDB = servidor. CreateObject("ConDBDLL.Connection")
ConDB es el objeto DLL creado.
Este es un objeto creado en ASP, incluido ProConn, por lo que debemos recordar liberar estos dos objetos en cualquier otro archivo ASP que use (referencia) ProConn.asp.
ProConn.close
Establezca ProConn=nada
Establezca ConDB = nada
De lo contrario, el sistema se atascará porque el objeto no está liberado Cuanto más abrumado estás.