No artigo publicado há algum tempo, o código de conexão do banco de dados pode ser exibido diretamente no arquivo ASP. Desta vez foi encapsulado novamente.
Abra vb, crie um novo controle Activex, o nome do projeto é WebDb, o nome do módulo de classe é GetInfomation,
referência "Biblioteca Microsoft Activex Data Object 2.6"
Private Conn As ADODB.Connection
Private Rs As ADODB.Recordset
'Função: Determinar se o banco de dados está conectado corretamente
' Você pode alterar a string de conexão
Public Function GetConn()
Conn.Open "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=Northwind;Data Source =yang"
If Err.Number <> 0 Then
GetConn = False
Else
GetConn = True
End If
End Function
'De acordo com o ID do funcionário inserido, obtenha o nome do funcionário
Public Function GetEmployeeName(strEmployeeID As Integer) As String
Dim strSql As String
Set rs = Novo ADODB.Recordset
strSql = "selecione Sobrenome+nome dos funcionários onde EmployeeID=" & strEmployeeID
rs.Open strSql, Conn, adOpenStatic, adLockOptimistic
Se rs.EOF Then
GetEmployeeName = ""
Else
GetEmployeeName = rs.Fields(0)
End If
rs.Close
End Function
'Retorna todas as listas de funcionáriosPublic
Function GetEmployeeList() As ADODB.Recordset
Dim strSql As String
Set rs = Novo ADODB.Recordset
strSql = "selecione EmployeeID, LastName, FirstName, Title, TitleOfCourtesy, BirthDate, HireDate, Address, City from Employees"
rs.CursorLocation = adUseClient
rs.Open strSql, Conn, adOpenStatic
Definir
função
GetEmployeeList = rs
'rs.Close
End
Criamos
uma nova página ASP para teste, “TestWebDb1.asp”. Usado principalmente para testar o método GetEmployeeList()
<HEAD>
<!- Página de teste->
<!- Função: Componente de teste->
<!- 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 teste do componente de dados
</TITLE>
<H1><CENTER>Bem-vindo ao componente de dados ( www.downcodes.com)</CENTER></H1 >
<%
Dim Flag
Flag=DataQuery.GetConn()
Se Flag=false then
ResPonse.Write "Não há link para o banco de dados, verifique"
ResPonse.End
End if
Defina Rs=DataQuery.GetEmployeeList()
se rs.eof then
Response.write "Sem dados, consulte"
Response.end
end if
Rs.PageSize =3
Página= CLng(Request.QueryString ("Página"))
Se Página <1 Então Página = 1
Se Página > Rs.PageCount Então 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>Sobrenome</td>"
Response.Write "<td>Nome</td>"
Response.Write "<td>Título</a></td>"
Response.Write "<td>TitleOfCourtesy</ a></td>"
Response.Write "<td>Data de Nascimento</td>"
Response.Write "<td>HireDate</td>"
Response.Write "<td>Endereço</td>"
Response.Write " <td>Cidade</td>"
Response.Write "</tr>"
Rs.AbsolutePage = Página
para iPage = 1 Para Rs.PageSize
Response.Write "<TR align=right>"
para i=0 para Rs.fields.count-1
Response.Write "<td>"&Rs.fields.item( i)&"</td>"
próxima
resposta.Write "</TR>"
Rs.MoveNext
Se Rs.EOF então saia para
a próxima
resposta.Write "</TABLE></CENTER>"
%>
<Form name="myform" method="get">
<%If Page <> 1 Then%>
<A HREF="<%=Myself%>?Page=1">Primeira 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)%>">Próxima página</A>
<A HREF="<%=Myself%>?Page=<%=Rs. PageCount%> ">Última página</A>
<%End If%>
Página:<FONT COLOR="Red"><%=Page%>/<%=Rs.PageCount%></FONT>
</Form>
<%
Rs.fechar
%>
Crie uma nova página ASP, "TestWebDb2.asp". Usada principalmente para testar o método GetEmployeeName(),
esta página é relativamente simples
<HEAD>
<!- Página de teste->
<!- Função: Componente de teste->
<!- Autor: Tornado.NET ->
<%
Dim DataQuery
Dim strID
Dim strResult
Set DataQuery=Server.CreateObject("WebDb.GetInfomation")
%>
<TÍTULO>
Página de teste de componente de dados
</TITLE>
<H1><CENTER>Bem-vindo aos componentes de dados ( www.downcodes.com)</CENTER></H1 >
<%
If Len(Request.QueryString("ID")) > 0 Then
strID = Request. QueryString("ID")
Dim Flag
Flag=DataQuery.GetConn()
If Flag=false then
ResPonse.Write "Não há link para o banco de dados, verifique"
ResPonse.End
End if
strResult=DataQuery.GetEmployeeName(cint(strID))
if strResult="" then
Response.Write "Desculpe, esse número não existe, consulte"
Response.End
else
ResPonse.Write strResult
end if
End If
%>
<FORM NAME="MyForm">
<INPUT TYPE=TEXTBOX NAME="EmpID" SIZE=40><P>
<INPUT LANGUAGE="VBScript"
TYPE="BUTTON"
VALUE="Search"
ONCLICK="window.location.href = 'TestWebDb2.asp?ID=' _
+ MeuFormulário.EmpID.Value">
</FORM>
</HEAD>
Algumas idéias: Se o link do banco de dados for colocado em um componente, se você quiser modificar o link do banco de dados, será necessário recompilar o componente, o que pode causar alguns problemas (mas isso é recomendado, afinal, o banco de dados o nome e o nome do servidor não serão alterados com frequência)
Se o link do banco de dados for colocado na página ASP, o valor poderá ser passado ao componente por meio de atributos, mas a segurança será reduzida.
Realmente...
Ok, este artigo acabou. Espero que seja útil para todos.
O tópico futuro é como implementar as funções do software AspToDll.