VB中OLE调用的优化方法
2018-06-17 17:10:51来源:未知 阅读 ()
一、利用WITH语句减少重复调用。
为了设置单个对象的多个特性,可以使用WITHENDWITH减少激活引用链设置特性的次数,在这种情况下,甚至不需要定义对象类型的临时对象。例如:DBEngine.WorkSpace(0).Databases(0).
RecordSet.Fields(0).Name="jx"
DBEngine.WorkSpace(0).Databases(0).RecordSet.Fields(0).Height="1.75"
可以这样赋值:WITHDBEngine.WorkSpace(0).Databases(0)
.RecordSet.Fields(0).Name="jx"
.Height="1.75"
ENDWITH
很明显,减少了执行赋值所必须做的OLE对象查询的次数。
二、使用可以提供的最特定的对象。
在VB中访问任何对象的模型通常要求重复使用OBJECT.PROPERTY语句,那么这个引用链将变得很长。
DBEngine.WorkSpace(0).Databases(0).RecordSet.Fields(0).Name
在上面这个序列中每个点代表VB为了访问下一个元素要求的OLE查找。如果将这样一条语句放到循环中,会产生大量不必要的查找:
例如ForI%=0TODBEngine.WorkSpace(0).Databases(0).R
ecordSet.Field.Count-1
PrintDBEngine.WorkSpace(0).Databases(0).RecordSet.Fi
elds(I%).Name
Next
如果通过使用可用的最特定的对象类型,可以大大减少同一个
循环的开销。程序变换如下:
DIMXASFields
DIMYASField
SETX=DBEngine.WorkSpace(0).Databases(0).RecordSet.Fi
elds(0)
FOREACHYINX
PrintF.Name
Next
三、最小化跨进程OLE调用。
OLEAutomation对程序内的对象的调用总是比跨进程调用要快,如果处理可以在一个程序内完成,就会比调用另一个应用程序快。如果进行跨进程OLEAutomation,一个硬输入的(DIMXASSPECIFICTYPE)而不是“ASOBJECT”的对象会大大减少开销,因为只需一个跨进程调用。
四、使用进程内而不是进程外的OLE服务器。进程外OLE服务器(使用MAKEEXE建立的OLE服务器)比进程内OLE服务器(使用MAKEDLL建立的OLE服务器)慢得多。->
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- And、Or和Xor:让我们来优化表达式 2018-06-17
- VB开发通讯软件 2018-06-17
- 用OLE自动化Outlook 2018-06-17
- 压缩被DBGIRD控件正在使用的MDB数据库 2018-06-17
- VisualBasic代码优化的六条军规 2018-06-17
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash