关于VB变量声明问题

来源:百度知道 编辑:UC知道 时间:2024/05/16 05:04:23
第一个问题:Dim rs As ADODB.Recordset与Dim rs As New ADODB.Recordset在变量声明上有什么区别吗?
在用Dim rs As ADODB.Recordset时,下面这句rs.Open "orders", conn, adOpenStatic, adLockOptimistic为什么就会出错,而改为Dim rs As New ADODB.Recordset就OK了呢?
第二个问题:Set rs = conn.Execute("orders", , adCmdTable)与rs.Open "orders", conn, adOpenStatic, adLockOptimistic又有什么区别呢?

1、
Dim rs As ADODB.Recordset
声明rs为ADODB.Recordset(未赋值为nothing)
Dim rs As New ADODB.Recordset
声明rs为ADODB.Recordset,且初始化,有值
在用Dim rs As ADODB.Recordset时,下面这句rs.Open "orders", conn, adOpenStatic, adLockOptimistic为什么就会出错,而改为Dim rs As New ADODB.Recordset就OK了呢?
未赋值直接调用当然出错
2、
没什么区别,不过后一种显得专业一点

关于数据库记录集的声明,第一种只是声明了rs的变量类型,第二种声明方式则在声明的同时为rs分配了内存空间。
对于第二个问题,两句话是用不同格式来执行相同的目的,就是打开rs这个记录集。adOpenStatic的意思是打开表的方式,以静态的形式(此时别人对表的操作你是看不到的或者说是别人的更改不影响你看到的数据);adLockOptimistic的意思是表在被打开的同时是否加锁,加什么样的锁,是否允许别人同时观看或者更改数据。

Dim rs As ADODB.Recordset
后面载加一句:
set rs=new adodb.recordset
就不会报错了