多用戶應(yīng)用程序中應(yīng)注意問題

字號:

問題二 再查詢與事務(wù)
    1.再查詢數(shù)據(jù)
    在多用戶應(yīng)用程序中,如果以可視的形式把數(shù)據(jù)顯示在窗口中,則需要用最新的數(shù)據(jù)來更新用戶的視圖。而要獲得由其他用戶修改了的最新視圖,應(yīng)用程序必須顯式地對數(shù)據(jù)執(zhí)行再查詢操作。為了獲得記錄集中數(shù)據(jù)的最新視圖,首先應(yīng)確定記錄集是否支持Requery方法。如果ReCordset對象的Restartable屬性值為Tme,則可以使用Requery方法來刷新Recordset對象的內(nèi)容。如果記錄集不支持Requery方法,則必須用OpenRecordset方法再次打開記錄集。一般說來,重新打開記錄集比使用Requery方法要慢一些。下面這個過程,用來測試一個記錄集是否可執(zhí)行再查詢。
    過程如下:
    Function RequeryRecordset(dbs As Database,rst As Recordset) As Integer
    On Error Resume Next
    注釋:能夠再查詢記錄集嗎?
    If rst.Restartable=False Then
    requeryRecordset=-1
    EXit Function
    End lf
    rst.Requery 注釋:再查詢記錄集
    Select Case Err 注釋:處理所有錯誤
    Case 0
    RequeryReCordset=0
    EXit Function
    Case Else
    Err=0
    注釋:重新打開記錄集
    注釋:使用rstNane來獲取SQL
    注釋:字符串、表或QueryDef的值
    注釋:記錄集最初是基于它們的
    Set rst=dbs.OpenRecordset(rst.Name, rst.Type)
    Select Case Err
    Case0
    RequeryRecordset=0
    EXit Function
    Case Else
    注釋:不返回錯誤給調(diào)用程序