摘要:遠程視圖是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 功能
一、緒論
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 功能