?? 125.txt
字號:
優化OLE的調用頻率
?在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
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -