얼마 전에 게시된 기사에서는 데이터베이스 연결 코드를 ASP 파일에 직접 표시할 수 있습니다. 이번에는 다시 캡슐화되었습니다.
vb를 열고 새 Activex 컨트롤을 생성합니다. 프로젝트 이름은 WebDb, 클래스 모듈 이름은 GetInfomation입니다.
"Microsoft Activex Data Object 2.6 Library"를 참조하세요.
Private Conn As ADODB.Connection
Private Rs As ADODB.Recordset
'함수: 데이터베이스가 올바르게 연결되었는지 확인
' 연결 문자열을 변경할 수 있습니다.
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
'입력한 사원 ID에 따라 사원 이름을 가져옵니다.
Public Function GetEmployeeName(strEmployeeID As Integer) As String
Dim strSql As String
Set rs = New ADODB.Recordset
strSql = "EmployeeID=" & strEmployeeID가 있는 직원에서 LastName+firstname을 선택합니다.
rs.Open strSql, Conn, adOpenStatic, adLockOptimistic
If rs.EOF Then
GetEmployeeName = ""
Else
GetEmployeeName = rs.Fields(0)
End If
rs.Close
End Function
'모든 직원 목록 반환Public
Function GetEmployeeList() As ADODB.Recordset
Dim strSql As String
Set rs = New ADODB.Recordset
strSql = "직원의 EmployeeID,LastName,FirstName,Title,TitleOfCourtesy,BirthDate,HireDate,Address,City 선택"
rs.CursorLocation = adUseClient
rs.Open strSql, Conn, adOpenStatic
GetEmployeeList = rs
'rs.Close
종료 함수
설정
테스트를 위해 "TestWebDb1.asp"라는 새 ASP 페이지를 만듭니다
.
주로 GetEmployeeList() 메서드
<HEAD>
를 테스트하는 데 사용됩니다.
<!- 테스트 페이지->
<!- 기능: 테스트 컴포넌트->
<!- 작성자: 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>
데이터 구성 요소 테스트 페이지
</TITLE>
<H1><CENTER>데이터 구성 요소( www.downcodes.com)에 오신 것을 환영합니다.</CENTER></H1 >
<%
Dim Flag
Flag=DataQuery.GetConn()
Flag=false인 경우
ResPonse.Write "데이터베이스에 대한 링크가 없습니다. 확인하십시오."
ResPonse.End
End if
Set Rs=DataQuery.GetEmployeeList()
if rs.eof then
Response.write "데이터가 없습니다. 쿼리하십시오"
Response.end
end if
Rs.PageSize =3
페이지= CLng(Request.QueryString ("페이지"))
페이지 < 1이면 페이지 = 1
페이지 > Rs.PageCount이면 페이지 = Rs.PageCount
Response.Write "<CENTER><TABLE BORDER=1cellspacing=0cellpadding=2>"
Response.Write "<tr BGCOLOR=silver align=center>"
Response.Write "<td>EmployeeID</TD>"
Response.Write "<td>성</td>"
응답.쓰기 "<td>이름</td>"
응답.쓰기 "<td>제목</a></td>"
응답.쓰기 "<td>TitleOfCourtesy</ a></td>"
Response.Write "<td>생년월일</td>"
Response.Write "<td>고용일</td>"
Response.Write "<td>주소</td>"
Response.Write " <td>도시</td>"
응답.쓰기 "</tr>"
Rs.AbsolutePage =
iPage의
페이지
= 1 To Rs.PageSizeResponse.Write "<TR align=right>"
for i=0 to Rs.fields.count-1
Response.Write "<td>"&Rs.fields.item( i)&"</td>"
다음
Response.Write "</TR>"
Rs.MoveNext
If Rs.EOF 다음 종료
Response.Write
"</TABLE></CENTER>"
%>
<Form name="myform" method="get">
<%If Page <> 1 Then%>
<A HREF="<%=Myself%>?Page=1">첫 번째 페이지</A>
<A HREF = "<%=Myself%>?Page=<%=(Page-1)%>">이전 페이지</A>
<%End If%>
<%If Page <> Rs.PageCount Then%>
<A HREF= "<%=Myself%>?Page=<%=(Page+1)%>">다음 페이지</A>
<A HREF="<%=Myself%>?Page=<%=Rs. PageCount%> ">마지막 페이지</A>
<%End If%>
페이지:<FONT COLOR="Red"><%=Page%>/<%=Rs.PageCount%></FONT>
< /Form>
<%
Rs.마감
%>
새 ASP 페이지 "TestWebDb2.asp"를 만듭니다. 주로 GetEmployeeName() 메서드를 테스트하는 데 사용되며
이 페이지는 비교적 간단합니다
. <HEAD>
<!- 테스트 페이지->
<!- 기능: 테스트 컴포넌트->
<!- 작성자: Tornado.NET ->
<%
Dim DataQuery
Dim strID
Dim strResult
Set DataQuery=Server.CreateObject("WebDb.GetInfomation")
%>
<제목>
데이터 구성 요소 테스트 페이지
</TITLE>
<H1><CENTER>데이터 구성 요소( www.downcodes.com)에 오신 것을 환영합니다.</CENTER></H1 >
<%
If Len(Request.QueryString("ID")) > 0 Then
strID = 요청. 쿼리스트링("ID")
Dim Flag
Flag=DataQuery.GetConn()
If Flag=false이면
ResPonse.Write "데이터베이스에 대한 링크가 없습니다. 확인하십시오."
ResPonse.End
End if
strResult=DataQuery.GetEmployeeName(cint(strID))
if strResult="" then
Response.Write "죄송합니다. 해당 번호가 없습니다. 문의해 주세요."
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="검색"
ONCLICK="window.location.href = 'TestWebDb2.asp?ID=' _
+ MyForm.EmpID.Value">
</FORM>
</HEAD>
몇 가지 아이디어: 데이터베이스 링크가 컴포넌트에 배치된 경우 데이터베이스 링크를 수정하려면 컴포넌트를 다시 컴파일해야 하며 이로 인해 몇 가지 문제가 발생할 수 있습니다(그러나 이는 권장됩니다. 결국 데이터베이스 이름과 서버 이름은 자주 변경되지 않습니다.)
데이터베이스 링크가 ASP 페이지에 배치되면 속성을 통해 해당 값이 구성 요소에 전달될 수 있지만 보안이 저하됩니다.
정말...
좋습니다. 이 기사가 모든 사람에게 도움이 되기를 바랍니다.
앞으로의 주제는 AspToDll 소프트웨어의 기능을 구현하는 방법입니다.