En el artículo publicado hace algún tiempo, el código de conexión de la base de datos se puede mostrar directamente en el archivo ASP. Esta vez fue encapsulado nuevamente.
Abra vb, cree un nuevo control Activex, el nombre del proyecto es WebDb, el nombre del módulo de clase es GetInfomation,
consulte "Biblioteca Microsoft Activex Data Object 2.6"
Private Conn As ADODB.Connection
Private Rs As ADODB.Recordset
'Función: Determinar si la base de datos está conectada correctamente
' Puede cambiar la cadena de conexión
Función pública GetConn()
Conn.Open "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=Northwind;Data Source =yang"
Si Err.Number <> 0 Entonces
GetConn = Falso
De lo contrario
GetConn = Verdadero
Fin si
finaliza la función
'De acuerdo con el ID de empleado ingresado, obtenga el nombre del empleado
Public Function GetEmployeeName(strEmployeeID As Integer) As String
Dim strSql As String
Set rs = New ADODB.Recordset
strSql = "seleccione Apellido+nombre de los empleados donde EmployeeID=" & strEmployeeID
rs.Open strSql, Conn, adOpenStatic, adLockOptimistic
Si rs.EOF Entonces
GetEmployeeName = ""
De lo contrario
GetEmployeeName = rs.Fields(0)
Fin si
rs.Close
End Function
'Devuelve todas las listas de empleadosFunción pública
GetEmployeeList() como ADODB.Recordset
Dim strSql como
conjunto de cadenas rs = New ADODB.Recordset
strSql = "seleccione ID de empleado, apellido, nombre, título, título de cortesía, fecha de nacimiento, fecha de contratación, dirección, ciudad de los empleados"
rs.CursorLocation = adUseClient
rs.Open strSql, Conn, adOpenStatic
Establecer GetEmployeeList = rs
'rs.Cerrar
función final
Creamos
una nueva página ASP para pruebas, "TestWebDb1.asp". Se utiliza principalmente para probar el método GetEmployeeList()
<HEAD>
<!- Página de prueba->
<!- Función: Componente de prueba->
<!- Autor: Tornado.NET ->
<%
Dim strTopic
Dim strTitle
Dim strContents
Dim DataQuery
Dim Rs
Dim Myself
Myself=Request.ServerVariables("script_name")
Set DataQuery=Server.CreateObject("WebDb.GetInfomation")
Set Rs=Server.CreateObject("adodb.recordset")
%>
<TITLE>
Página de prueba del componente de datos
</TITLE>
<H1><CENTER>Bienvenido al componente de datos ( www.downcodes.com)</CENTER></H1 >
<%
Dim Flag
Flag=DataQuery.GetConn()
Si Flag=false entonces
ResPonse.Write "No hay ningún enlace a la base de datos, verifique"
ResPonse.End
End if
Establezca Rs=DataQuery.GetEmployeeList()
si rs.eof y luego
Response.write "Sin datos, consulte"
Response.end
end si
Rs.PageSize =3
Página= CLng(Request.QueryString ("Página"))
Si Página < 1 Entonces Página = 1
Si Página > Rs.PageCount Entonces Página = Rs.PageCount
Response.Write "<CENTER><TABLE BORDER=1 cellpacing=0 cellpadding=2>"
Response.Write "<tr BGCOLOR=silver align=center>"
Response.Write "<td>EmployeeID</TD>"
Response.Write "<td>Apellido</td>"
Respuesta.Escribir "<td>Nombre</td>"
Respuesta.Escribir "<td>Título</a></td>"
Respuesta.Escribir "<td>TítuloDeCortesía</ a></td>"
Response.Write "<td>Fecha de nacimiento</td>"
Response.Write "<td>Fecha de contratación</td>"
Response.Write "<td>Dirección</td>"
Response.Write " <td>Ciudad</td>"
Respuesta.Escribir "</tr>"
Rs.AbsolutePage = Página
para iPage = 1 a Rs.PageSize
Respuesta.Escriba "<TR align=right>"
para i=0 a Rs.fields.count-1
Respuesta.Escriba "<td>"&Rs.fields.item( i)&"</td>"
siguiente
respuesta. Escriba "</TR>"
Rs.MoveNext
si Rs.EOF luego salga para
la siguiente
respuesta. Escriba "</TABLE></CENTER>"
%>
<Form name="myform" método="get">
<%Si página <> 1 Entonces%>
<A HREF="<%=Myself%>?Page=1">Primera página</A>
<A HREF = "<%=Myself%>?Page=<%=(Page-1)%>">Página anterior</A>
<%End If%>
<%If Page <> Rs.PageCount Then%>
<A HREF= "<%=Myself%>?Page=<%=(Page+1)%>">Página siguiente</A>
<A HREF="<%=Myself%>?Page=<%=Rs. PageCount%> ">Última página</A>
<%End If%>
Página:<FONT COLOR="Red"><%=Page%>/<%=Rs.PageCount%></FONT>
< /Form>
<%
Rs.cerrar
%>
Cree una nueva página ASP, "TestWebDb2.asp". Utilizada principalmente para probar el método GetEmployeeName(),
esta página es relativamente simple
<HEAD>
<!- Página de prueba->
<!- Función: Componente de prueba->
<!- Autor: Tornado.NET ->
<%
Dim DataQuery
Dim strID
Dim strResult
Establecer DataQuery=Server.CreateObject("WebDb.GetInfomation")
%>
<TÍTULO>
Página de prueba de componentes de datos
</TITLE>
<H1><CENTER>Bienvenido a Componentes de datos ( www.downcodes.com)</CENTER></H1 >
<%
Si Len(Request.QueryString("ID")) > 0 Entonces
strID = Solicitud. Cadena de consulta("ID")
Dim Flag
Flag=DataQuery.GetConn()
Si Flag=false entonces
ResPonse.Write "No hay ningún vínculo a la base de datos, verifique"
ResPonse.End
End if
strResult=DataQuery.GetEmployeeName(cint(strID))
if strResult="" luego
Response.Write "Lo siento, no existe tal número, por favor consulta"
Response.End
else
ResPonse.Write strResult
end if
End If
%>
<FORM NAME="MyForm">
<INPUT TYPE=TEXTBOX NAME="EmpID" TAMAÑO=40><P>
<INPUT LANGUAGE="VBScript"
TYPE="BUTTON"
VALUE="Buscar"
ONCLICK="window.location.href = 'TestWebDb2.asp?ID=' _
+ MiForm.EmpID.Value">
</FORM>
</HEAD>
Algunas ideas: si el enlace de la base de datos se coloca en un componente, si desea modificar el enlace de la base de datos, deberá volver a compilar el componente, lo que puede causar algunos problemas (pero esto se recomienda, después de todo, la base de datos El nombre y el nombre del servidor no cambiarán con frecuencia)
Si el enlace de la base de datos se coloca en la página ASP, el valor se puede pasar al componente a través de atributos, pero la seguridad se reducirá.
De verdad...
Bien, este artículo ha terminado. Espero que sea útil para todos.
El tema futuro es cómo implementar las funciones del software AspToDll.