说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

优化OLE的调用频率-VB资料

HTML文档下载 WORD文档下载 PDF文档下载
优化OLE的调用频率-VB资料

?在VB5.0中,OLE调用功能大大增强,程序员的调用次数也自然地随之增加,显然,
优化OLE的调用对提高系统效率
有着不可低估的意义。下面提供三则优化OLE调用技巧供参考。

?1.预先定义专用对象,减少OLE调用次数,提高程序效率
在VB中进行OLE功能调用时,一般需要重复使用“对象、属性”这类语句,有时连
接对象很多,语句较长。比如,
要想获得某个数据库中数据表字段名称的OLE功能调用语句可能这样:
DBEngine,Workspaces(0).DataBases(0).RecordSet.Fields(0).Name
上面语句中的每个点(.)都需要进行一次OLE功能调用。如果我们想列出所有的字段
名称,一般情况下程序如下:
ForI%=0ToDBEngine.WorkSpaces(0).Database.RecordSet.Fields.Count-1
PrintDBEngine.WorkSpaces(0).Database.RecordSet.Fields(I%).Name
Next
上面这段程序用循环的方式将所有字段名称列出来,每一个循环需要有10次OLE调
用(10个点),假设有10个字段,
则完成这个循环需要进行100次OLE调用。从上面的程序中我们可以看到OLE调用语
句的前面部分对象都是一样的,
我们可以考虑将其预先定义好,这样就可以减少OLE调用次数,提高效率,将程序
改写如下:
DimDBAsDatabase
DimSAsFields
DimFAsField
SetDB=DBEngine.Workspaces(0).OpenDatabase("biblio.mdb")
SetX=DBEngine.Workspaces(0).Databases(0).TableDefs(0).Fields
ForEachFInX
PrintF.Name
Next
改写后的程序在完成定义对象时使用6次OLE调用,循环过程需要10次(10×1),完
成整个任务只需要16次,
和上面的程序比起来效率大大提高了。
 
?2.利用WITH语句来减少OLE调用次数
比如,我们通过OLE功能定义某个字段的属性语句可能这样:
DBEngine.WorkSpaces(0).Database.RecordSet.Fields(0).Name="Book"
DBEngine.WorkSpaces(0).Database.RecordSet.Fields(0).Required=True
DBEngine.WorkSpaces(0).Database.RecordSet.Fields(0).Size=20
DBEngine.WorkSpaces(0).Database.RecordSet.Fields(0).Type=db Text
DBEngine.WorkSpaces(0).Database.RecordSet.Fields(0).Value="MSDOS"
上面的语句运行效率不高,且书写繁琐,利用WITH语句改写如下:
WithDBEngine.WorkSpaces(0)
.Database.RecordSet.Fields(0)
.Name="BOOK"
.Required=True
.Size=20
.Type=dbText
.Value="MSDOS"
EndWith
改写后的程序书写简单、效率也高(OLE调用次数少)。
 
3.利用服务方程序的宏来减少OLE功能调用次数
如果要从VB中通过OLE调用WORD中的某些功能来完成某项任务,首先在WORD中将所
要使用的功能用记录宏
的方式记录成一个宏(根据实际情况可修改记录后的宏代码),然后再用VB的OLE功
能调用WORD来执行这个宏,
这样可避免反复用VB的OLE功能调用WO
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘