程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> Visual Basic語言 >> VB綜合教程 >> 多用戶應用程序中應注意的其它問題(1)--多客戶環境下VB數據庫編

多用戶應用程序中應注意的其它問題(1)--多客戶環境下VB數據庫編

編輯:VB綜合教程
在多用戶應用程序設計中,最主要的問題是控制數據的鎖定,前面幾節我們已進行了討論。但是,應當指出,鎖定並不是多用戶應用程序設計中唯一的問題,在為多用戶訪問設計一個應用程序時,還應當注意到其它一些方面,下面將討論這些問題。
  
  問題一數據訪問對象集合的刷新
  
  在多用戶環境中,當用戶添加新表、查詢數據庫或刪除現有對象時,都可能對集合進行修改。在這種情況下,DAO.不能自動跟蹤集合的變更。
  下面的過程可用來顯示當前數據庫中的所有TableDef對象:
  
  SUbShowAllTables(dbsAsDatabase)
  DimtdfrempAsTableDef
  ForEachtdfremPIndbs.TableDefs
  Debug.Pnnttdfremp.Name
  Nexttdfremp
  EndSub
  
  為了調用上面的過程,可以在窗體上畫一個命令按鈕,然後編寫下面的事件過程:
  
  PrivateSubCommandl_Click()
  DimMvdbsAsDatabase
  SetMydbs=OpenDatabase("czvb50iblio.mdb")
  ShowAllTablesMvdbs
  EndSub
  
  運行程序,單擊命令按鈕,將在立即窗口中顯示數據庫biblio.mdb中的所有TableDef對象。
  在執行上面的過程時,程序將記下TableDefs集合時快照,它遍歷每個TableDef對象,並顯示出它的名字。假定需要兩次運行上面的過程,第一次運行時,顯示了10個表的名字。但在再次運行之前,網絡上的另一個用戶打開了這個數據庫,並在數據庫中添加了一個新的表。如果再次運行該過程,則將仍然顯示10個表的名字,因為DAO不能自動地更新其它用戶對集合所作的變更。為此,可以用Refresh方法強制DAO用最新的變更來更新集合。如果在前面的過程中添加Refresh方法,則可使它返回的總是TableDef對象的最新列表修改後的過程如下:
  
  SUbBetterShowAllTables(dbsAsDatabase)
  DimtdfrempAsTableDef
  dbs.TableDefs.Refresh
  ForEachtdfremplndbs.TableDefs
  Debug.PrinttdfremP.Name
  Nexttdfremp
  EndSub
  
  注意,只有在需要時才使用Refresh方法。如果集合包含大量的對象,則刷新集合可能需要較長的時間。->

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved