VisualBasic3.xForWindows是開發Windows應用程式很好的語言,使用它能夠開發出大型的應用系統。它具有存取各種資料庫的功能。下面將談談用VB存取資料庫應注意的幾個問題。
一、如何來存取資料庫。 VB存取資料庫提供二種方法,其一是用資料控制,其二是使用物件來存取資料庫。在這兩種方法中,都涉及到資料庫的屬性:connect,databasename,exclusive,options,readonly,recordsoure。這些屬性很多書上都有介紹,筆者不再詳述。但有時你會按書上介紹設定好connect,databasename後再設定recordsoure時,常會出現「無法找到可安裝的ISAM」錯誤。這裡所講的[ISAM]是在VB.INI檔案中,它為VB指明所存取資料庫的動態連結程式庫。而在connect中所使用的資料庫的名稱必須於[ISAM]中的資料庫的名稱相符合,這樣就可以輕鬆地開啟資料庫。
二、關於書籤指針即bookmark屬性。在VB存取資料庫時,資料庫中的記錄是沒有記錄號碼的。但VB提供了bookmark屬性來記錄目前存取記錄的記錄指標。這個bookmark就相當於記錄號。但筆者在程式設計時發現在使用資料庫控制和用物件開啟資料庫來存取同一個資料庫時的bookmark屬性在這兩者之間並不通用。當你用bookmark記錄了用資料控制開啟的資料庫的目前記錄指針,然後使用物件開啟此資料庫後,用資料控制的bookmark來尋找定位記錄時,將會導致bookmark不合法的錯誤。
三、要注意hide方法和unload方法的差別。 Hide方法是將你所指定的表單隱藏起來,但不要從記憶體中刪除它,故此表單的內容並沒有改變。而unload方法是將指定的表單刪除掉(從螢幕上消失並從記憶體中刪除)。如你在目前表單中使用格子控制來顯示記錄內容,然後用hide方法隱藏此表單,隨後你重新選定記錄裝入格子控制,用show方法顯示隱藏的表單,此時格子裡的內容依然是舊的內容而新內容並沒有取代舊內容。這裡就需要使用unload方法將表單刪除,然後新記錄裝入格子控制,用show方法顯示時,就可以看到新的內容。
四、要注意變數類型的匹配。在存取資料庫時,顯示記錄一般都使用格子控制。其中grid.text是子符串類型。但有些記錄的資料項是空的(null)即沒有資料。若將null裝入grid.text顯然會出錯。所以這裡就需要加入類型的判斷,將null資料項賦於空格子符串,這樣就可以解決此問題。
五、如何實現網格式列印資料庫記錄。 VB所提供的印表機輸出物件有表單、文字方塊、圖片方塊及報表。這裡可以使用報表控制來實現網格式列印輸出。但報表控制需要報表格式檔.PRt。此文件由VB提供的報表編輯器來設計你所需要的報表格式。而產生的報表檔案是輸出資料庫的所有記錄,但往往我們只需要資料庫中符合條件的部分記錄。如何實現部分記錄的網格式列印呢?筆者所用的方法是用報表編輯器設計一個連接空的資料庫文件,然後在程式運作中將符合條件的部分記錄裝入空的資料庫中,再使用報表控制來列印輸出,這樣就可以實現任何你所需要數據的報表列印輸出。
六、要注意呼叫系統的DLL(dynamic-linklibraries,動態連結程式庫)。 VB是一種高階程式設計語言,不具備低階語言的一些功能,它本身對於存取機器硬體等操作比較困難。若透過DLL呼叫Windows應用程式介面(API)函數,就可以方便存取硬體。系統的DLL有keynel函式庫,gdi函式庫和user函式庫,其中keynel函式庫負責記憶體管理和檔案管理,gdi函式庫負責顯示和列印功能,user負責鍵盤、滑鼠、聲音、通訊、系統定時的管理。同時,VB也可以呼叫任何語言所寫的DLL。所以要想編出高品質的應用程式就必須學會如何呼叫DLL來實現所需的功能。
總之,VisualBasic語言有著各種強大的功能,以上所講的只是筆者程式設計時的一些小經驗,希望能為廣大讀者帶來幫助。 ->