VFP遠程視圖使用面面觀

字號:

摘要:遠程視圖是Visual Foxpro 5.0 中開發(fā)Client/Server 應用系統(tǒng)的基礎,本文首先介紹了遠程視圖有關參數的放置技巧,然后介紹如何去設計、使用遠程視圖,最后討論了使用遠程視圖的四個實際問題。
    一、緒論
    VFP 是一種較好的客戶/ 服務器應用系統(tǒng)開發(fā)工具,用VFP 開發(fā)C/S 系統(tǒng)的關鍵是如何訪問遠程數據( 遠程服務器中的Table/View)??梢允褂肰FP 提供的SQL Pass-Through 函數訪問遠程數據,但最常用的方法是使用遠程視圖(Remote View) 去訪問遠程數據。本文結合本人的使用經驗對遠程視圖的使用技巧加以介紹。
    二、遠程視圖的環(huán)境設置
    在設計遠程視圖時,需要對遠程視圖的有關環(huán)境信息進行設置。使用Tools 菜單中的Options.... 選項來設置Remote Data 選項。其選項設置說明如下:
    *Share Connection: 指出今后設計的遠程視圖是否使用共享連接。使用共享連接可大大減少數據庫服務器中客戶訪問許可數,但會影響客戶機的訪問速度。
    *SQL Updates/Criteria: 指出對后臺數據進行update 操作的條件。
    它有四種可能:
    ①Key Field only ②Key and Updatable Fields
    ③Key and Modified Fields ④Key and Time Stamp。
    一般選擇③較合適。
    *SQL Updates/Method: 指出對后臺數據的更新方法。
    它有兩種選擇:①SQL Delete then Insert ②SQL update。
    一般選擇②比較合適。
    *Connection Defaults: 主要用于SQL Pass-Through 函數訪問遠程數據,對于遠程視圖則不需要放置。
    三、遠程視圖的設計
    有兩種方法設計遠程視圖,一是使用View Designer;二是使用SQL 語句。用View Designer 可設計較為簡單的視圖,而使用SQL 的Create Remote View 語句則可進行復雜視圖的設計。如果試圖去用View Designer 觀察或修改( 用Create 創(chuàng)建的視圖) 則極有可能被破壞它( 例如:若創(chuàng)建視圖的Select 語句中含有exists 子句, 則一定會被破壞!)
    1. 用Create 命令設計
    例如:假定連接名為WYFconnect,兩個遠程表為SealList 和ShipList. Create 命令可如下:
    CREATE SQL VIEW ViewTest REMOTE CONNECTION WYFconnect AS SELECT SealList.* FROM SealList, ShipList WHERE SealList IS NOT NULL AND SealList AND 箱號NOT IN (SELECT 箱號FROM ShipList WHERE ShipList. 箱號IS NOT NULL AND ShipList. 船名=SealList. 船名
    使用該方法可以在程序中動態(tài)地構造滿足不同條件的遠程視圖(View Designer 不能構造帶參數的遠程視圖)。例如:設m.ShipName 為一可變內存變量,其創(chuàng)建語句為:
    CREATE SQL VIEW ViewTest REMOTE CONNECTION WYFconnect AS SELECT * FROM SealList WHERE 船名=m.ShipName.
    2. 用View Designer 設計
    啟動View Designer 選擇連接名后出現設計圖, 在其上部可以加入遠程服務器中的表或視圖,在其下部進行參數/ 條件設置:
    *Select Criteria: 設置遠程數據值上的記錄必須滿足的條件,類似于下SQL Select 語句中的Where 子句。在這里可以構造復雜條件,但條件中使用的函數和語法規(guī)則必須是后臺數據庫支持的,例如:不能使用DTOC( 日期)=‘90/01/01’,而必須使用Convert(char(10), 日期)=‘90/01/01’, 因為后臺數據庫不支持DTOC() 函數。
    *Fields: 選擇結果集中的字段,在這里要強調的是Function/Expression 的使用,使用它可構造出與源表字段不同的字段,如:T. 船名+‘’+T. 中文AS 船舶。實踐證明Function/Expression 中不能使用雙引號,而只能使用單引號。
    *Order by 和Group by: 對結果分組、分類。要求符合后臺數據庫所支持的SQL 語法。
    *Update Criteria: 設置視圖的有關替換參數, 具體如下:
    ①要選中Send SQL Update
    ②SQL where 一般選擇Key and Modify Fields
    ③Update Using 一般選擇SQL Update
    ④務請選擇關鍵字段和可更改字段( 在鑰匙符號下面和鉛筆符號下面加“√”),否則將無法正確完成Insert/update 功能