| 网站首页 | 业界新闻 | 小组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 454 人关注过本帖
标题:技术请教:下面的代码运行时报错?
只看楼主 加入收藏
wangyiaihu
Rank: 1
等 级:新手上路
帖 子:94
专家分:0
注 册:2020-4-22
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:16 
技术请教:下面的代码运行时报错?


程序代码:
Call KKK(conn)
RS.Open "delete * from 数据 Where 确认状态= 'NG'", conn, 3, 2

Image8.Visible = True

Image8.Picture = Form2.Image62.Picture

'  释放相应的资源
RS.Close
    Set RS = Nothing
    conn.Close
    Set conn = Nothing

Exit Sub
附件: 游客没有浏览附件的权限,请 登录注册
搜索更多相关主题的帖子: 代码 运行 conn 报错 技术 
2020-05-19 07:01
wangyiaihu
Rank: 1
等 级:新手上路
帖 子:94
专家分:0
注 册:2020-4-22
收藏
得分:0 
寻找高手指点迷津。
2020-05-19 07:02
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:269
帖 子:4560
专家分:28248
注 册:2008-10-15
收藏
得分:7 
RS.Open "delete * from 数据 Where 确认状态= 'NG'", conn, 3, 2
没有 RS 对象返回,所以得到了 RS 是关闭的。
其实,除下 select 外,其他的SQL命令都不建议使用 rs.open 来执行,而是使用

conn.execute(SQL命令) 来执行,这种方法直接不要求返回 RS 对象。

按你大型数据库工程,建议封装四个功能函数
1、打开数据库连接。
2、执行SQL,并返回 RS
3、执行SQL,不返回 RS
4、关闭数据库连接,并且清理对象。

一般情况下,在整个程序运行过程是, conn 是不关闭的,保留 conn 不需要占用太多资源,但每次都重新连接 conn ,那倒开销比较大。
RS,一般用完就关闭。

授人于鱼,不如授人于渔
早已停用QQ了
2020-05-19 08:23
wangyiaihu
Rank: 1
等 级:新手上路
帖 子:94
专家分:0
注 册:2020-4-22
收藏
得分:0 
回复 3楼 风吹过b
那我当前用这RS这种,出现的问题应该怎么处理?
是来一个
if rs.eof = true then

end if

这样吗?
2020-05-19 17:46
foreach
Rank: 2
等 级:论坛游民
帖 子:6
专家分:37
注 册:2020-4-15
收藏
得分:7 
以下是引用wangyiaihu在2020-5-19 17:46:50的发言:

那我当前用这RS这种,出现的问题应该怎么处理?
是来一个
if rs.eof = true then

end if

这样吗?


应该是
Set abc=Rs.open
....
abc.close
2020-05-20 15:17
wangyiaihu
Rank: 1
等 级:新手上路
帖 子:94
专家分:0
注 册:2020-4-22
收藏
得分:0 
回复 5楼 foreach
按照你的试了,不管用,
2020-05-20 16:20
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:269
帖 子:4560
专家分:28248
注 册:2008-10-15
收藏
得分:0 
State 属性 (ADO)


对所有可应用对象,说明其对象状态是打开或是关闭。

对执行异步方法的 Recordset 对象,说明当前的对象状态是连接、执行或是获取。

返回值

返回下列常量之一的长整型值。

常量 说明

adStateClosed 默认,指示对象是关闭的。
adStateOpen 指示对象是打开的。
adStateConnecting 指示 Recordset 对象正在连接。
adStateExecuting 指示 Recordset 对象正在执行命令。
adStateFetching 指示 Recordset 对象的行正在被读取。


说明
可以随时使用 State 属性确定指定对象的当前状态。该属性是只读的。
Recordset 对象的 State 属性可以是组合值。例如,如果正在执行语句,该属性将是 adStateOpen 和 adStateExecuting 的组合值

---------------------
if rs.eof = adStateOpen then

end if

授人于鱼,不如授人于渔
早已停用QQ了
2020-05-20 17:32
wangyiaihu
Rank: 1
等 级:新手上路
帖 子:94
专家分:0
注 册:2020-4-22
收藏
得分:0 
回复 7楼 风吹过b
试了,也不管用,
程序代码:
Private Sub Image4_Click()

Call KKK(conn)
RS.Open "delete * from 数据 Where 确认状态= 'NG'", conn, 3, 2

If RS.EOF = adStateOpen Then



Image8.Visible = True

Image8.Picture = Form2.Image62.Picture

Else
Image8.Picture = Form2.Image63.Picture


'  释放相应的资源
RS.Close
conn.Close
    Set RS = Nothing
    
    Set conn = Nothing

Exit Sub

End If

End Sub
2020-05-20 17:37
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:269
帖 子:4560
专家分:28248
注 册:2008-10-15
收藏
得分:0 
不好意思,复制你代码时忘了修改了,
应该是
if rs.state <> adStateClosed then

数据表不处于关闭状态,则...

授人于鱼,不如授人于渔
早已停用QQ了
2020-05-20 18:37
wangyiaihu
Rank: 1
等 级:新手上路
帖 子:94
专家分:0
注 册:2020-4-22
收藏
得分:0 
回复 9楼 风吹过b
依旧不管用,还是一样的报错,
2020-05-21 07:18
快速回复:技术请教:下面的代码运行时报错?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.057287 second(s), 8 queries.
Copyright©2004-2020, BCCN.NET, All Rights Reserved