dim con as adodb.connect
dim rs as adodb.recordset
dim sql as string set con=createobject("adodb.connection")
con.open "server=...,driver={};uid=;pwd="
sql="select * from employee"****
set rs=createobject("adodb.recordset")
set rs=con.execute(sql)
****请问set rs=createobject("adodb.recordset")是否有分配内存,如果有,则和set rs=con.execute(sql)分配的内存是否是同一块?
dim rs as adodb.recordset
dim sql as string set con=createobject("adodb.connection")
con.open "server=...,driver={};uid=;pwd="
sql="select * from employee"****
set rs=createobject("adodb.recordset")
set rs=con.execute(sql)
****请问set rs=createobject("adodb.recordset")是否有分配内存,如果有,则和set rs=con.execute(sql)分配的内存是否是同一块?
解决方案 »
- 续贴,SQL查询问题、、、
- button 小问题,急求帮忙!!!
- 记录不能显示在mshflexgrid中
- 用程序读取access表中字段的说明出错!!向高手求助
- 在VB下如何创建包含"..\"的文件夹啊
- 急!VISUAL STUDIO 6.0的安装问题!
- 对VB我有20000个问题,现在我只提2个!分全部给完完。
- 请问怎样可以通过索引访问菜单项
- 如何制作像flashget 或者 网络蚂蚁那样的悬浮窗,急用。。。
- 送分了!!!!!!!!!!
- 水晶报表9.0用installsheild打包问题(cr9rdcmergemodules.zip解压后的*.msm文件引入到installsheild中)
- activex dll编写的com组件,能否运行外部程序
我也在考虑记录集耗内存的问题
真是晕
至于分配的空间是否和set rs=con.execute(sql)分配的内存是同一块我想应该不是!
因为 set rs=con.execute(sql)是程序语句,要程序开时执行时就必须调入内存
而记录集是执行到这段程序时内存另外分配的一个堆!个人看法,仅供参考!
使用createobject 就分配了内存 set rs=con.execute(sql)
execute方法也分配了内存 并且返回了一个recordset的实例,rs 指向这个对象上面内存消耗应该是差不多的 都是一个recordset的实例 其实要使对象能运作肯定要分配内存的,就像画饼充饥
set rs= createobject("adodb.rescordset")
因为程序运行到这里,并不知道object对象有多大,所以不可能给它分配空间,只是分配了内存中的一个堆的地址而已,只有当执行conn.execute()语句时,才向这个堆里面放数据所以数据的地址和程序段的地址不一定是连续的
分配了内set rs=con.execute(sql)
分配了内存,而且跟上面那个分配的内存不是同一块应为这两句分别创建了两个Recordset对象,之间没有任何关系,现在rs指向第二次创建的对象
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
Dim Data(10)
Dim file(10)
For i = 1 To 10
Data(i) = i * 10
CopyMemory file(i), Data(i), 10
Next
For Each aa In file
Print aa
Next
End Sub
//拷贝数组的例子,拷贝rs还没有试
set rs=createobject("adodb.recordset")<-----这块内存是不是没办法释放啊?
set rs=con.execute(sql)<----这里可以用(rs.close / set rs=nothing)释放内存.
****
set rs=createobject("adodb.recordset")
set rs=nothing因为只创建了对象还没有加载任何数据,所以不用close。
Recordset是COM对象,只要其引用计数器为0就会被释放的
而且就算你没有释放,在离开作用域后vb也会自动将其释放