对记录集出现的一些问题的总结
来源:互联网 发布:上海菜鸟网络嘉定仓 编辑:程序博客网 时间:2024/05/21 06:02
setrs=nothing是清空对象 ,要将对象从内存中完全删除,可将对象变量设置为 Nothing。
rs.close 是关闭对象, 使用 Close方法可关闭 Connection 对象或 Recordset对象以便释放所有关联的系统资源。关闭对象并非将它从内存中删除,可以更改它的属性设置并且在此后再次打开。
联系实际:拿一个装了水的瓶子比喻:set rs=nothing就是把水倒掉,当你要喝时它已经没有了,只能再一次的装水才可以;而rs.close是将水杯的盖子盖住,当你想喝水时,只要打开盖子就可以了,水还是存在的。
2.
Public Function ExecuteSQL(ByVal SQL As String, MsgString As String) As adodb.Recordset
'执行SQL语句,注意理解函数返回值是一个记录集
Dim cnn As adodb.Connection
Dim rst As adodb.Recordset
Dim sTokens() As String
On Error GoTo ExecuteSQL_error '错误处理
sTokens = Split(SQL)
Set cnn = New adodb.Connection
cnn.Open ConnectString
If InStr("INSERT,DELETE,UPDATE", UCase$(sTokens(0))) Then '判断传入的SQL语句是以insert ,delete,update 开头的吗?
cnn.Execute SQL '若是,则执行语句 insert,delete,update语句不用打开记录集操作,直接使用cnn.execute即可。
MsgString = sTokens(0) & "query successful"
Else '若不是,则执行查询语句
Set rst = New Recordset
rst.Open Trim$(SQL), cnn, adOpenKeyset, adLockOptimistic '将查询结果放在记录集中
Set ExecuteSQL = rst
MsgString = "查询到" & rst.RecordCount & "条记录"
End If
在这个位置不能关闭记录集rst或释放rst的空间
ExecuteSQL_Exit:
Set rst = Nothing
Set cnn = Nothing
Exit Function
ExecuteSQL_error:
MsgString = "查询错误" & Err.Description
Resume ExecuteSQL_Exit
End Function
ExecuteSQL这个记录集是rst的缓存对象,所以当rst的变动会影响到ExecuteSQL这个记录集,如rst.close;而set rst=nothing后,rst就从实际对象中分离出来了,而通过rst对象创建的对象都将被孤立。这些已缓存对象的任何属性依然可用
3.
通过记录集的操作:
记录集是一个对象:有它自身的方法,常见的有addnew,update,delete,open,close,find,move等
并没有select这样的方法,所以不能直接查询;要想查询就等用open方法,和sql查询语句。
刚开始学的时候有一个误区:认为任何操作都要先打开记录集。
通过connection对象的操作:
connection对象的方法有:open,close,execute
·Execute方法
该方法用于执行SQL语句。根据SQL语句执行后是否返回记录集,该方法的使用格式分为以下两种:
一.执行SQL查询语句时,将返回查询得到的记录集。用法为:
Set 对象变量名=连接对象.Execute("SQL 查询语言")
Execute方法调用后,会自动创建记录集对象,并将查询结果存储在该记录对象中,通过Set方法,将记录集赋给指定的对象保存,以后对象变量就代表了该记录集对象。
二.执行SQL的操作性语言时(如:delete,update等),没有记录集的返回。此时用法为:
连接对象.Execute "SQL 操作性语句" [, RecordAffected][, Option]
·RecordAffected 为可选项,此出可放置一个变量,SQL语句执行后,所生效的记录数会自动保存到该变量中。通过访问该变量,就可知道SQL语句队多少条记录进行了操作。
·Option 可选项,该参数的取值通常为adCMDText,它用于告诉ADO,应该将Execute方法之后的第一个字符解释为命令文本。通过指定该参数,可使执行更高效。
- 对记录集出现的一些问题的总结
- 在对出版社查询number时加入权限出现问题的排除 和一些问题总结
- 关于一些编程问题的记录总结
- 调试Qsys出现的一些问题总结
- 对Verilog的一些记录
- [记录]在Linux中Oracle安装成功后,首次启动使用时,会出现的一些问题总结和解决办法
- 对购物车项目浏览记录显示的总结:不重复出现浏览记录
- javascript出现的问题记录
- 页面出现的问题记录
- 对最近遇到的一些BT问题总结
- 对存储器的一些总结
- 对js的一些总结
- 对js的一些总结
- 对redis的一些总结
- webspere 的一些问题记录
- 遇到的一些 问题记录
- maven的一些问题记录
- 一些问题的总结
- 计划赶不上变化
- “两周”
- 文本分类的特征选择方法之信息增益
- 一周小代码秀09/10~09/15
- 十年
- 对记录集出现的一些问题的总结
- 令人头疼的编译原理之文法
- android绚丽的ListView表格效果的实现
- 怎么做研究
- JSP/Servlet初学者 - 快速配置实现
- 七夕恋歌
- HDOJ 3715 Go Deeper (2Sat: 二分答案判定)
- 编程序生成一张从英尺到米的转换表
- poj 3245 Sequence Partitioning(dp+二分+单调队列+sbt)