数据库连接能否使用sub函数

来源:百度知道 编辑:UC知道 时间:2024/05/19 20:37:14
我想用把数据库联接写成一个函数来调用,以达到代码重用的目的,代码如下:
sub OpenConn(DataStr) '数据库连接
dim conn,db
dim connstr
db=""&DataStr&".accdb" '数据库文件位置
connstr="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Server.MapPath(""&db&"")
on error resume next
set conn=server.createobject("ADODB.CONNECTION")
if err then
err.clear
Response.Write("服务器维护中,请稍后再试!")
else
conn.open connstr
end if
end sub
调用代码如下:
call OpenConn("data/data")
set rs=server.createobject("adodb.recordset")
sql="select * from admin where username='"&username&"'"
rs.open sql,conn,3,3
运行结果出现“参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突。(rs.open sql,conn,3,3这里错)”错误提示,把sub块的程序放到程序里面可以执行,为什么会出现这种情况,数据库调用不能写成函数形式?

function OpenConn(DataStr) '数据库连接
'dim conn,db
'dim connstr
db=""&DataStr&".accdb" '数据库文件位置
connstr="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Server.MapPath(""&db&"")
on error resume next
set OpenConn=server.createobject("ADODB.CONNECTION")
if err then
err.clear
Response.Write("服务器维护中,请稍后再试!")
else
OpenConn.open connstr
end if
end function

这里是调用 的

set rs=server.createobject("adodb.recordset")
sql="select * from admin where username='"&username&"'"
rs.open sql,OpenConn("data/data"),3,3