| 发表于:2007-06-30 19:40:39 楼主 |
本人对asp很懂,对vb就不太懂了,也没有开发过什么项目,前几天接了单,问问几个问题? 数据库是sql 我想把连接数据库 dim conn as new adodb.connection 作为全局变量,在每个form 里新建rs 对数据库进行访问 但在form 里执行EXECutesql发生错误 错误号:3001 错误信息:参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突。 ------module1.bas------- sub main() dim strconn as string dim conn as new adodb.connection dim rs as adodb.recordset dim sql as string on error goto on_error: strconn = "provider=sqloledb;data source=janly;user id=sa;password=sa;initial catalog=juhongerp;persist security info=true " conn.commandtimeout = 5 conn.open strconn on_error: if err.number = -2147467259 or err.number = -2147217900 then msgbox "服务器无响应,请确认服务器是正常工作的! ", vbinformation + vbokonly, "系统错误提示 " end end if '启动登陆对话框 dim flogin as new login flogin.show vbmodal if not flogin.islogining then end end if unload flogin set fmainform = new mainform fmainform.show end sub public function EXECutesql(byval sql as string) as adodb.recordset on error goto errhandler: dim rs as new adodb.recordset rs.open trim$(sql), conn, adopenkeyset, adlockoptimistic set EXECutesql = rs errhandler: '显示错误信息 msgbox "发生错误 错误号: " & err.number & " 错误信息: " & err.description, vbexclamation call rsclose end function public sub rsclose() on error resume next if rs.state <> adstateclosed then rs.close set rs = nothing end sub ----------------------- --------form----------- private sub form_load() dim rs as adodb.recordset set rs = EXECutesql( "select * from productsort ") '就是这里返回有问题?? end sub ----------------------- EXECutesql是不是写得不够好,要怎么写,我的conn作为全局行不行的? |
|
|
|
|