目前流行的數(shù)據(jù)庫開發(fā)平臺很多,如DELPHI、VB、PB等,有關(guān)用它們?nèi)绾伍_發(fā)基于C/S 模式的應(yīng)用系統(tǒng)的書籍、文章也較多,但是卻很少見到關(guān)于用Visual Foxpro (VFP)開發(fā)C/S 結(jié)構(gòu)的文章,即使有也只是泛泛而談,講的不具體,讀者看了之后,仍然不知道如何去開發(fā)。還有好多人對VFP的認(rèn)識還是停留在FOXBASE和FOXPRO的基礎(chǔ)上,經(jīng)常有人問,"用VFP能開發(fā)C/S結(jié)構(gòu)的系統(tǒng)嗎?",于是我一次又一次的充當(dāng)了VFP的解說員。其實用VFP開發(fā)基于C/S 模式的系統(tǒng)是可以的,而且原來所熟悉的各種技術(shù)在開發(fā)主從結(jié)構(gòu)時仍然完全適用,而我國有許多MIS系統(tǒng)開發(fā)人員都比較熟悉FOX系列的軟件,因此在此基礎(chǔ)上掌握VFP開發(fā)C/S結(jié)構(gòu)的MIS系統(tǒng),對于這些人來講加快了開發(fā)進(jìn)程,延續(xù)了知識的生命周期。因此我想把自己用VFP開發(fā)C/S 系統(tǒng)中的方法和經(jīng)驗寫出來,好讓那些對VFP不太了解或者沒有用它開發(fā)過C/S 結(jié)構(gòu)的讀者對VFP有重新的認(rèn)識。
一. 建立數(shù)據(jù)庫、建立ODBC 數(shù)據(jù)源
主從結(jié)構(gòu)的優(yōu)點(diǎn)就是將工作合理分配于服務(wù)器與工作站以便讓它們同時發(fā)揮所長,主從結(jié)構(gòu)包括三個重要的部分-網(wǎng)絡(luò)操作系統(tǒng)、數(shù)據(jù)庫服務(wù)器及前端應(yīng)用程序。我們可以采用Visual FoxPro+SQL Server 7.0 + Windows NT Server 的組合方式。我們首先需在SQL Server 上建立所需的數(shù)據(jù)庫如:Ningguo ,并創(chuàng)建所需要的表,如maintable等。在SQL Server 上的數(shù)據(jù)庫建完之后,我們可以為剛才創(chuàng)建的數(shù)據(jù)庫創(chuàng)建一個用戶如:newguest,這樣我們就可以進(jìn)行下一步操作。
在前臺的工作站上,操作系統(tǒng)采用Window 98/95 即可,在工作站建立連接到SQL Server的ODBC 數(shù)據(jù)來源(Data Source)。 我們新建了一個數(shù)據(jù)源first,連接到 SQL Server 上的Ningguo 數(shù)據(jù)庫。
二.建立和數(shù)據(jù)庫相連的連接
下面我們就進(jìn)入與Visual Foxpro 相關(guān)的部分。在以 Visual Foxpro 所開發(fā)的主從結(jié)構(gòu)中,遠(yuǎn)程視圖(Remote View)扮演著關(guān)鍵性的角色。遠(yuǎn)程視圖使得程序設(shè)計師能夠?qū)F(xiàn)有的技術(shù)直接應(yīng)用于主從結(jié)構(gòu)系統(tǒng)的開發(fā)上,而無須增加太多的負(fù)擔(dān)。當(dāng)我們想要在 Visual Foxpro 中存取其他數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)紀(jì)錄時,便必須借助于遠(yuǎn)程視圖。在建立一個遠(yuǎn)程視圖之前,必須在數(shù)據(jù)庫中建立一個連接(Connection),它記錄了登入SQL Server 的相關(guān)信息并定義連接通道的一些設(shè)定信息。在數(shù)據(jù)庫設(shè)計器中新建一個連接, 分別在數(shù)據(jù)源、用戶標(biāo)識、密碼、數(shù)據(jù)庫所對應(yīng)的輸入框中輸入如前文所述的名稱,然后驗證連接即可,當(dāng)然也可以用連接串連接,如:dsn=first;uid=newguest;pwd=123;database=ningguo,或許在某些情況下,我們在應(yīng)用系統(tǒng)執(zhí)行期間以程序控制方式更改連接的相關(guān)設(shè)定,我們就可以用DBSETPROP()函數(shù),比如我們要更改名為connect1 的連接串,可用如下的命令敘述:
OPEN DATABASE test
dbsetprop("connect1","connection","connectstring",;
"dsn=first;uid=newguest;pwd=123;database=ningguo")
三.建立遠(yuǎn)程視圖
在連接成功的情況下,我們就可以建立遠(yuǎn)程視圖。我們既可以在數(shù)據(jù)庫設(shè)計器中用視圖向?qū)Ы⒁晥D,也可以用命令來建立視圖。下面以向?qū)槔齺磉M(jìn)行說明,在向?qū)е形覀兛梢允褂脭?shù)據(jù)源或者連接來創(chuàng)建視圖,一般而言,讓遠(yuǎn)程視圖透過已定義的連接來連接到所需的數(shù)據(jù)來源較好,因為連接本身就包含較完整的連接定義信息,而用數(shù)據(jù)源則每次使用遠(yuǎn)程視圖時便會出現(xiàn) SQL Server Login 對話框,顯然這是用戶所不希望看到的。接著選擇視圖所對應(yīng)的SQL Server 中的來源表即可。
一. 建立數(shù)據(jù)庫、建立ODBC 數(shù)據(jù)源
主從結(jié)構(gòu)的優(yōu)點(diǎn)就是將工作合理分配于服務(wù)器與工作站以便讓它們同時發(fā)揮所長,主從結(jié)構(gòu)包括三個重要的部分-網(wǎng)絡(luò)操作系統(tǒng)、數(shù)據(jù)庫服務(wù)器及前端應(yīng)用程序。我們可以采用Visual FoxPro+SQL Server 7.0 + Windows NT Server 的組合方式。我們首先需在SQL Server 上建立所需的數(shù)據(jù)庫如:Ningguo ,并創(chuàng)建所需要的表,如maintable等。在SQL Server 上的數(shù)據(jù)庫建完之后,我們可以為剛才創(chuàng)建的數(shù)據(jù)庫創(chuàng)建一個用戶如:newguest,這樣我們就可以進(jìn)行下一步操作。
在前臺的工作站上,操作系統(tǒng)采用Window 98/95 即可,在工作站建立連接到SQL Server的ODBC 數(shù)據(jù)來源(Data Source)。 我們新建了一個數(shù)據(jù)源first,連接到 SQL Server 上的Ningguo 數(shù)據(jù)庫。
二.建立和數(shù)據(jù)庫相連的連接
下面我們就進(jìn)入與Visual Foxpro 相關(guān)的部分。在以 Visual Foxpro 所開發(fā)的主從結(jié)構(gòu)中,遠(yuǎn)程視圖(Remote View)扮演著關(guān)鍵性的角色。遠(yuǎn)程視圖使得程序設(shè)計師能夠?qū)F(xiàn)有的技術(shù)直接應(yīng)用于主從結(jié)構(gòu)系統(tǒng)的開發(fā)上,而無須增加太多的負(fù)擔(dān)。當(dāng)我們想要在 Visual Foxpro 中存取其他數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)紀(jì)錄時,便必須借助于遠(yuǎn)程視圖。在建立一個遠(yuǎn)程視圖之前,必須在數(shù)據(jù)庫中建立一個連接(Connection),它記錄了登入SQL Server 的相關(guān)信息并定義連接通道的一些設(shè)定信息。在數(shù)據(jù)庫設(shè)計器中新建一個連接, 分別在數(shù)據(jù)源、用戶標(biāo)識、密碼、數(shù)據(jù)庫所對應(yīng)的輸入框中輸入如前文所述的名稱,然后驗證連接即可,當(dāng)然也可以用連接串連接,如:dsn=first;uid=newguest;pwd=123;database=ningguo,或許在某些情況下,我們在應(yīng)用系統(tǒng)執(zhí)行期間以程序控制方式更改連接的相關(guān)設(shè)定,我們就可以用DBSETPROP()函數(shù),比如我們要更改名為connect1 的連接串,可用如下的命令敘述:
OPEN DATABASE test
dbsetprop("connect1","connection","connectstring",;
"dsn=first;uid=newguest;pwd=123;database=ningguo")
三.建立遠(yuǎn)程視圖
在連接成功的情況下,我們就可以建立遠(yuǎn)程視圖。我們既可以在數(shù)據(jù)庫設(shè)計器中用視圖向?qū)Ы⒁晥D,也可以用命令來建立視圖。下面以向?qū)槔齺磉M(jìn)行說明,在向?qū)е形覀兛梢允褂脭?shù)據(jù)源或者連接來創(chuàng)建視圖,一般而言,讓遠(yuǎn)程視圖透過已定義的連接來連接到所需的數(shù)據(jù)來源較好,因為連接本身就包含較完整的連接定義信息,而用數(shù)據(jù)源則每次使用遠(yuǎn)程視圖時便會出現(xiàn) SQL Server Login 對話框,顯然這是用戶所不希望看到的。接著選擇視圖所對應(yīng)的SQL Server 中的來源表即可。