Red de conocimiento informático - Conocimiento informático - Cómo escribir componentes ASP usted mismo o cómo convertir código ASP en componentes.

Cómo escribir componentes ASP usted mismo o cómo convertir código ASP en componentes.

Utilice VB para generar DLL para encapsular el código ASP y conectarse a la base de datos.

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.