在dll组件中连接SQL数据库时出现的问题
dll文件的vb代码如下:
Option Explicit
Private MyScriptingContext As ScriptingContext
Private MyRequest As Request
Private MyResponse As Response
Private MyServer As Server
Private MySession As Session
Private conn As ADODB.Connection
Private connstr As String
Public Sub OnStartPage(PassedScriptingContext As ScriptingContext)
Set MyScriptingContext = PassedScriptingContext
Set MyRequest = MyScriptingContext.Request
Set MyResponse = MyScriptingContext.Response
Set MyServer = MyScriptingContext.Server
Set MySession = MyScriptingContext.Session
End Sub
Public Function OpenDB(ByVal dbip, dbuser, dbpwd, dbname)
Set conn = MyServer.CreateObject("ADODB.Connection")
connstr = "provider=sqloledb;data source=" & dbip & ";uid=" & dbuser & ";pwd=" & dbpwd & ";database=" & dbname
conn.Open connstr
End Function
ASP调用dll部份的代码如下:
call class1.opendb(dbip,dbuser,dbpwd,dbname)
set rs=server.createobject("adodb.recordset")
rs.open "select username from users where id=1",conn,1,1
为什么用上面这段ASP代码调用组件时出现这样的错误?
ADODB.Recordset 错误 '800a0bb9'
参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突。
已确定没有写错变量值。好像是dll中的OpenDB函数有问题,但又具体找不出是什么原因。请大家帮我看看。