一个简单的组件的应用,我错在哪里???
Private Request As Request
Private Response As Response
Private ScriptingContext As ScriptingContext
Private strDSN As String
Private AspOutPut As String
Public Sub OnStatrPage(PassedScriptingContext As ScriptingContext)
Set ScriptingContext = PassedScriptingContext
Set Request = ScriptingContext.Request
Set Response = ScriptingContext.Response
End Sub
Public Sub login()
Register
Response.Write (AspOutPut)
Response.End
End Sub
Private Sub Register()
Dim strConn As ADODB.Connection
Dim strRes As ADODB.Recordset
Dim strSQL As String
Set strConn = New ADODB.Connection
Set strRes = New ADODB.Recordset
strConn.Provider = "sqloledb"
strConn.Open "database=ASPALL;server=;uid=oldgameman;pwd=9597"
strSQL = "SELECT bookname FROM book "
strRes.Open strSQL, strConn
Do While Not strRes.EOF
AspOutPut = strRes("bookname")
AspOutPut = AspOutPut & "<br>"
strRes.MoveNext
Loop
End Sub
Public Sub OnEdnPage()
Set ScriptingContext = Nothing
Set Request = Nothing
Set Response = Nothing
End Sub
在ASP里调用,提示
"未设置对象变量或 With block 变量 "
怎么回事啊!!!!!!!!!!
我写的对不对?
我是第一次写组件,拜托....
问题点数:80、回复次数:4Top
1 楼hehongyu2000(Henry)回复于 2001-09-10 21:35:03 得分 80
领分, 领分, 谢谢, 谢谢!Top
2 楼sunbf(www.51-pass.com)回复于 2001-09-10 23:16:09 得分 0
改成这样试试
<%
dim Request
dim Response
dim ScriptingContext
dim strDSN
dim AspOutPut
Sub OnStatrPage(PassedScriptingContext)
Set ScriptingContext = PassedScriptingContext
Set Request = ScriptingContext.Request
Set Response = ScriptingContext.Response
End Sub
Public Sub login()
Register
Response.Write (AspOutPut)
Response.End
End Sub
Private Sub Register()
set strConn=server.createobject("ADODB.Connection")
set strRes=server.createobject("ADODB.Recordset")
Dim strSQL
strConn.Provider = "sqloledb"
strConn.Open "database=ASPALL;server=;uid=oldgameman;pwd=9597"
strSQL = "SELECT bookname FROM book "
strRes.Open strSQL, strConn
Do While Not strRes.EOF
AspOutPut = strRes("bookname")
AspOutPut = AspOutPut & "<br>"
strRes.MoveNext
Loop
response.write aspoutput
End Sub
Public Sub OnEdnPage()
Set ScriptingContext = Nothing
Set Request = Nothing
Set Response = Nothing
End Sub
%>Top
3 楼sunbf(www.51-pass.com)回复于 2001-09-10 23:23:39 得分 0
直接写到<% %>中,不要用那些过程
象你那样写会运行吗?在哪里调用啊Top
4 楼sunbf(www.51-pass.com)回复于 2001-09-10 23:27:46 得分 0
可以参考一下我的这个例程
<%
Response.Buffer = True
Dim Db
Dim Rcc
Dim SqlStr
Dim Temp
Dim ConStr
SqlStr = Request.Querystring("SqlStr")
UseID = Request.Querystring("UseID")
Password = Request.Querystring("PassWord")
ConStr= Request.Querystring("ConStr")
while not instr(SqlStr,"±")=0
SqlStr=left(SqlStr,instr(SqlStr,"±")-1) & "+" & Mid(SqlStr,instr(SqlStr,"±")+1)
wend
while not instr(SqlStr,"。/。")=0
SqlStr=left(SqlStr,instr(SqlStr,"。/。")-1) & "%" & Mid(SqlStr,instr(SqlStr,"。/。")+3)
wend
Set Db = Server.CreateObject("ADODB.Connection")
Set Rcc = Server.CreateObject("ADODB.Recordset")
Db.Open ConStr & ";PWD=" & Password & ";UID=" & UseID
Rcc.MaxRecords=10
Rcc.Open SqlStr, Db ',adOpenStatic,adLockReadOnly
If Err.Number = 0 Then
IF Rcc.EOF THEN
Response.Write 0
ELSE
Response.Write 1
END IF
Else
Response.write "Err:" & Err.Number
End If
Rcc.Close
Db.Close
Set Rcc = Nothing
Set Db = Nothing
%>Top




