人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當(dāng)前位置:蘿卜系統(tǒng)下載站 > 技術(shù)開發(fā)教程 > 詳細(xì)頁面

VFP訪問外部數(shù)據(jù)源的幾種辦法

VFP訪問外部數(shù)據(jù)源的幾種辦法

更新時(shí)間:2022-09-29 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

Visual FoxPro(以下簡稱VFP)是微軟公司Visual系列開發(fā)工具中的一種。在VFP 6.0中,與外部數(shù)據(jù)源進(jìn)行數(shù)據(jù)交換的方式有導(dǎo)入導(dǎo)出數(shù)據(jù)、遠(yuǎn)程視圖、SQL Pass Through以及數(shù)據(jù)升遷等幾種方式。其中,導(dǎo)入導(dǎo)出數(shù)據(jù)是完成對靜態(tài)數(shù)據(jù)(或文本)的數(shù)據(jù)轉(zhuǎn)換,而對動(dòng)態(tài)數(shù)據(jù)源的訪問則主要是使用Windows中的ODBC技術(shù)。本文介紹在設(shè)計(jì)客戶/ 服務(wù)器體系結(jié)構(gòu)的應(yīng)用程序時(shí),如何使用VFP來實(shí)現(xiàn)與外部數(shù)據(jù)源的數(shù)據(jù)交換。

導(dǎo)入導(dǎo)出數(shù)據(jù)

導(dǎo)入導(dǎo)出數(shù)據(jù)是指利用VFP的內(nèi)部轉(zhuǎn)換機(jī)制由一個(gè)靜態(tài)文件生成一個(gè)指定的新文件的過程。可以被轉(zhuǎn)換的文件類型主要有:Excel文件、Paradox數(shù)據(jù)庫文件、Lotus電子表格中的數(shù)據(jù)以及其他形式的文本文件。

導(dǎo)入數(shù)據(jù)是指將一個(gè)外部文本轉(zhuǎn)換成一個(gè)新的DBF文件。例如:將A盤上的一個(gè)abc.xls文件轉(zhuǎn)換成Example數(shù)據(jù)庫下的CBA.DBF表,可用如下命令完成:

import from a:\abc.xls Database Example Name cba Type xls

導(dǎo)出數(shù)據(jù)是指將一個(gè)打開的VFP數(shù)據(jù)表(DBF)文件轉(zhuǎn)換成一個(gè)其他形式的外部文件,同時(shí)還可以使用范圍或條件子句對被復(fù)制的數(shù)據(jù)進(jìn)行過濾。例如:

use cba

copy to abc for fieldl=“aaaaa”,type xls

上述代碼將CBA.DBF文件中滿足條件“fieldl=,“aaaaa””的記錄轉(zhuǎn)換為Excel文件abc.xls。

遠(yuǎn)程視圖

遠(yuǎn)程視圖以視圖的方式通過ODBC與外部數(shù)據(jù)源建立連接,從而達(dá)到訪問或更新外部數(shù)據(jù)源的目的。它是客戶/服務(wù)器體系結(jié)構(gòu)中經(jīng)常運(yùn)用的一種訪問外部數(shù)據(jù)源的方法。在VFP中建立遠(yuǎn)程視圖的方式主要有兩種:采用VFP中的視圖向?qū)Ш统绦蚍绞健T谑褂贸绦蚍绞綍r(shí),一般需要兩個(gè)步驟:

● 通過ODBC與外部數(shù)據(jù)源建立一個(gè)命名連接;

● 定義視圖。

建立一個(gè)遠(yuǎn)程視圖后,用戶就可以像調(diào)用一個(gè)自由表一樣來使用它。在使用遠(yuǎn)程視圖的過程中,應(yīng)當(dāng)注意以下幾個(gè)問題:

● 遠(yuǎn)程視圖只能對后臺(tái)數(shù)據(jù)庫進(jìn)行查詢、插入、更新和刪除等操作,不能進(jìn)行數(shù)據(jù)定義。它的事務(wù)處理只限于對本地?cái)?shù)據(jù)庫的操作,而無權(quán)管理后臺(tái)數(shù)據(jù)庫。

● 盡量不要使用遠(yuǎn)程視圖對后臺(tái)數(shù)據(jù)庫進(jìn)行多表插入的操作,以免產(chǎn)生非法NULL值或引起數(shù)據(jù)不一致。

● 盡量使用SQL語句完成對后臺(tái)數(shù)據(jù)庫的操作,以免在執(zhí)行時(shí)產(chǎn)生二義性。

例如,我們要訪問一個(gè)遠(yuǎn)程SQL Server上的my-db庫中的my-tab表,可由如下的語句來完成(假定sql為已在ODBC中建立的與SQL Server 服務(wù)器的my-db數(shù)據(jù)庫相連的數(shù)據(jù)源):

create connection example datasource sql userid usr-1 password sqlpass

/*建立一個(gè)名為example的與SQL Server服務(wù)器的連接*/

create sql view my-r-view remote connection example as select * from my -tab

/*建立一個(gè)名為my-r-view的遠(yuǎn)程視圖。該視圖依賴于example連接,視圖訪問的是my-tab表中的所有字段。*/

use my-r-view

/*打開my-r-view視圖*/

browse

/*瀏覽視圖中的內(nèi)容*/

SQL Pass Through技術(shù)

SQL Pass Through(以下簡稱SPT)技術(shù)能使用戶直接訪問ODBC函數(shù),并把SQL語句發(fā)送給服務(wù)器執(zhí)行。與遠(yuǎn)程視圖相比,它能夠更直接地控制后臺(tái)服務(wù)器上的數(shù)據(jù)庫:

● 可以使用服務(wù)器的特有功能,如存儲(chǔ)過程和基于服務(wù)器的內(nèi)部函數(shù)等;

● 可使用服務(wù)器所支持的SQL擴(kuò)展功能,而且可進(jìn)行數(shù)據(jù)定義、服務(wù)器管理和安全性管理等;

● 對后臺(tái)數(shù)據(jù)庫的更新、刪除和插入等操作擁有更多控制權(quán),對遠(yuǎn)程事務(wù)也擁有更多控制權(quán)。

該方法的缺點(diǎn)在于不能使用圖形化的設(shè)計(jì)器,而且必須在命令窗口或程序中直接輸入SQL命令。

在SPT中經(jīng)常使用的函數(shù)主要有:連接管理函數(shù)(如SQLCONNECT、SQLSTRINGCONNECT、SQLDISCONNECT等)、SQL語句的執(zhí)行和控制函數(shù)(如SQLEXEC、SQLMORERESULTS、SQLCOMMIT、SQLROLLBACK等)。下面給出一個(gè)應(yīng)用實(shí)例來說明這些函數(shù)的使用及其參數(shù)的設(shè)定:

Store sqlstringconnect(“dsn=sql; uid=usr-1; pwd=sqlpass”)to gnconnhandlc

/*將連接函數(shù)的返回值存入連接句柄gnconnhandlc中)

If gnconnhandlc<=0

/*當(dāng)連接句柄gnconnhandlc的值小于或等于零時(shí),表明連接失敗*/

Messagebox(“建立連接失敗”,16,“SQL Connect Error”)

Else

Sqlexec(gnconnhandlc,“select*from my-tab”)

/*當(dāng)連接成功后向服務(wù)器發(fā)送一個(gè)查詢語句,并將返回的結(jié)果集存入一個(gè)臨時(shí)表中*/

Sqlcancle(gnconnhandlc)

/*停止sqlexec()的執(zhí)行*/

Sqldisconnct(gnconnhandlc)

/*斷開與sql數(shù)據(jù)源的連接*/

 Brow

 /*瀏覽返回的結(jié)果集*/

Endif

數(shù)據(jù)庫升遷

利用VFP的數(shù)據(jù)庫升遷向?qū)В梢詫?shí)現(xiàn)將本地?cái)?shù)據(jù)庫轉(zhuǎn)換為遠(yuǎn)程數(shù)據(jù)庫的功能。借助這一功能,我們可以很方便地將使用VFP建立的數(shù)據(jù)庫、表和視圖等從本地系統(tǒng)遷移到另一個(gè)遠(yuǎn)程服務(wù)器上。雖然在VFP中,該方法只限于對SQL Server和Oracle Server的訪問,但通過使用SQL Pass Through函數(shù)在服務(wù)器上創(chuàng)建遠(yuǎn)程表,然后再用VFP建立遠(yuǎn)程視圖訪問這些服務(wù)器上的表,我們就可以為任何遠(yuǎn)程ODBC數(shù)據(jù)源建立客戶/服務(wù)器模式的應(yīng)用程序。

有了這一功能,可以極大地方便客戶/服務(wù)器應(yīng)用程序的開發(fā)工作。用戶可先在單機(jī)上開發(fā)應(yīng)用程序,待基本功能模塊設(shè)計(jì)調(diào)試成功后,再運(yùn)用數(shù)據(jù)庫升遷的方法將本地?cái)?shù)據(jù)庫、表轉(zhuǎn)換到遠(yuǎn)程服務(wù)器上,并把本地視圖升遷為遠(yuǎn)程視圖,繼而將開發(fā)調(diào)試工作的重點(diǎn)轉(zhuǎn)移到客戶機(jī)與服務(wù)器間的數(shù)據(jù)通信以及數(shù)據(jù)庫服務(wù)器的管理等方面。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統(tǒng)下載排行

網(wǎng)站地圖xml | 網(wǎng)站地圖html
主站蜘蛛池模板: 扎兰屯市| 武邑县| 万州区| 宿州市| 鄯善县| 桐乡市| 莒南县| 津南区| 循化| 武定县| 那曲县| 阿图什市| 延津县| 吉安县| 泸溪县| 东阿县| 肥东县| 揭东县| 曲靖市| 搜索| 江永县| 夏津县| 昌都县| 福鼎市| 祥云县| 柳林县| 新蔡县| 黄山市| 广灵县| 高阳县| 梁平县| 三穗县| 荔浦县| 乌拉特中旗| 白城市| 洪泽县| 辽源市| 大关县| 马边| 鹰潭市| 恩平市|