top
Loading...
asp使用activex組件實例一
test.asp
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 

<html><head>

<title>activex組件應用例子一</title></head>

<%
'---------------------------------------------------------
'activex組件應用例子一
'讀取sql server 7 pubs數據庫中authors表并分頁顯示
'asp文件中負責調用并前臺數據檢驗,這里主要指page參數
'該例子完全使用activex組件來完成功能,速度快,保密性好,但頁面定制能力差
'jjx by 2000/4/15
'----------------------------------------------------------------

dim blnErrorif not isempty(request("page")) then

if not isnumeric(request("page")) then

response.write "參數錯誤!"

blnError=true

end ifend ifif not blnError then

dim objLoop

Set objLoop=Server.CreateObject("Performance.Loop")

objLoop.List()

Set objLoop=Nothingend if%>

</body></html>

vb loop class file創建一個performance activex dll項目,引用microsoft active
server pages library和Microsoft ActiveX Databae Object。

填加一個class,命名為loop

Option Explicit 

Dim MyScriptingContext As ScriptingContextDim MyRequest As RequestDim MyResponse As Response

Sub OnEndPage()

Set MyResponse = Nothing

Set MyRequest = Nothing

Set MyScriptingContext = Nothing

End Sub

Sub OnStartPage(PassedScriptingContext As ScriptingContext)

Set MyScriptingContext = PassedScriptingContext

Set MyRequest = MyScriptingContext.Request

Set MyResponse = MyScriptingContext.Response

End Sub

Function List()

Dim con As New ADODB.Connection

Dim rs As New ADODB.Recordset

Dim i As Integer

Dim j As Integer

Dim intPage As Integer

Dim intPageSize As Integer

Dim intPageCount As Integer

Dim strScriptName As String

Dim intPos As Integer

Dim intFieldCount As Integer

strScriptName = MyRequest.ServerVariables("Script_Name")

intPos = InStrRev(strScriptName, "/")

If intPos <> 0 Then

strScriptName = Mid(strScriptName, intPos + 1)

End If

If IsEmpty(MyRequest("page")) Then

intPage = 1

Else

intPage = CInt(MyRequest("page"))

End If

intPageSize = 10

con.Open "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=pubs;Data Source=
(local)"

rs.Open "select * from authors", con, adOpenStatic

intFieldCount = rs.Fields.Count

With MyResponse

.Write "<table border=1>"

If Not (rs.EOF And rs.BOF) Then

rs.PageSize = 10

rs.AbsolutePage = intPage

intPageCount = rs.PageCount

If intPage > intPageCount Then

intPage = intPageCount

End If

If intPageCount > 1 Then

.Write "<tr><td colspan=" & intFieldCount & ">"

For i = 1 To intPageCount

If intPage = i Then

.Write "[" & i & "] "

Else

.Write "<a href=" & strScriptName & "?page=" & i & ">[" & i & "]</a> "

End If

Next

.Write "</td></tr>"

End If

End If

.Write "<tr>"

For i = 0 To intFieldCount - 1

.Write "<th>" & rs(i).Name & "</th>"

Next

.Write "</tr>"

For i = 1 To intPageSize

If rs.EOF Then

Exit For

End If

.Write "<tr>"

For j = 0 To intFieldCount - 1

.Write "<td>" & rs(j).Value & "</td>"

Next

.Write "</tr>"

rs.MoveNext

Next

.Write "</table>"

End With

rs.Close

Set rs = Nothing

con.Close

Set con = Nothing

End Function


北斗有巢氏 有巢氏北斗