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