VB 操作数据库的疑问

来源:百度知道 编辑:UC知道 时间:2024/05/31 19:59:39
数据库为SQL 2000
下面是代码

Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
rs.CursorLocation = adUseClient
strSql = "USE " & sDB & " select [name] from [sysobjects] where [xtype]='U' and status>0"

rs.Open strSql, SYS_CONSTR, adOpenStatic

sList.Clear

While rs.EOF = False ‘问题就处在在这里
sList.AddItem rs(0)
rs.MoveNext
Wend

问题:
提示3704号错误,“对象关闭时不允许操作”,我试过,只要SQL语句不出现 “USE 某个表” 就不会出这个错误,请问这是为什么? 我该怎么做?先放20分,解决了追加,谢谢!

“USE 某个表"意味着你已经打开来那个表了,否则就用不了。所以你这里这样写( strSql = "USE " & sDB & " select [name] from [sysobjects] where [xtype]='U' and status>0"

rs.Open strSql, SYS_CONSTR, adOpenStatic)很明显你认为那个表已经打开,但事实上那个表并没有打开,所以显示“对象关闭时不允许操作”。

你所说的 USE某个表 事实上市画蛇添足,根本用不着。