VFP配合SQLSERVER開(kāi)發(fā)C/S系統(tǒng)

字號(hào):

1.CLIENT/SERVER 到底是什么?
    C/S屬于2-TIER系統(tǒng),適合于中小型應(yīng)用系統(tǒng)。大系統(tǒng)一般都用3-TIER了。
    打個(gè)比方單機(jī)系統(tǒng)(比如VFP), 相當(dāng)于前店后庫(kù).店里需要什么東西,得自己去庫(kù)房找,庫(kù)房管理也是有你自己進(jìn)行. 而C/S系統(tǒng)下,店和庫(kù)是相對(duì)獨(dú)立的,有一個(gè)專門的庫(kù)房管理(數(shù)據(jù)SERVER),店里需要什么,按照手續(xù)把單子給
    庫(kù)房管理人員,由他們?nèi)ゲ僮?
    因此可以看出C/S的優(yōu)點(diǎn): 支持多用戶;更有效的數(shù)據(jù)管理,數(shù)據(jù)安全和可靠得多;遠(yuǎn)程使用數(shù)據(jù).
    如果你是單機(jī)使用當(dāng)然沒(méi)有太大必要使用C/S了.
    如果用VFP本身做C/S系統(tǒng), 不是很明顯,因?yàn)閂FP的數(shù)據(jù)管理功能不是很強(qiáng),比如加鎖解鎖都需要程序來(lái)操作. 我主要說(shuō)的是VFP/SQL SERVER系統(tǒng).
    2. SQL SERVER
    SQL SERVER是微軟發(fā)布的RDBMS(關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)), orACLE, INFOMIX,POWERBUILD,也都是類似的系統(tǒng). 他們就相當(dāng)于倉(cāng)庫(kù)的管理系統(tǒng),但功能不僅僅是數(shù)據(jù)管理. 微軟的數(shù)據(jù)庫(kù)產(chǎn)品從功能和規(guī)模由小到大排列依次是: ACCESS, VFP, SQL SERVER.
    稍微大一點(diǎn)的系統(tǒng),SQL SERVER是需要專人管理的,這就是DBA (DATABASE ADMINISTRATOR)的位置.現(xiàn)在北美人才市場(chǎng)上, DBA的工作比程序員的工作好找些. 工資比普通程序員略高, 工作穩(wěn)定性也強(qiáng)一些.
    SQL SERVER是一套大的軟件系統(tǒng),可以安裝在專門的NT數(shù)據(jù)SERVER上,也有個(gè)人版可以安裝在WIN95/98上, 主要是為了咱們這些程序員方便測(cè)試.它的功能主要有這么幾塊: 數(shù)據(jù)庫(kù)的管理和維護(hù),用戶/安全管理, 數(shù)據(jù)的發(fā)布/轉(zhuǎn)換.
    3. 用VFP/SQL SERVER做C/S系統(tǒng)
    VFP和SQL SERVER的搭配應(yīng)該是比較完美的, 但因?yàn)椴攀俏④浀闹髁鳟a(chǎn)品(VB一直是微軟的,FOXPRO是后來(lái)才買的,后娘生的), 所以微軟從來(lái)沒(méi)有大力推薦或者宣傳過(guò)VFP, 而是把VFP獨(dú)有的數(shù)據(jù)庫(kù)技術(shù)融合到自己的其它產(chǎn)品里了: SQL SERVER, ODBC, OLE DB/ADO. 最近甚至把VFP從VISUAL STUDIO里獨(dú)立出來(lái)了.
    VFP和SQL SERVER的交流,可以通過(guò)3種方式進(jìn)行:
    A. 遠(yuǎn)程視圖B. ADO控件 C. SPT (SQL PASS THROUGH)
    3種方式各有優(yōu)缺點(diǎn), 而我最偏好第3種. 遠(yuǎn)程視圖和ADO都在VFP和SQL SERVER中間加了一個(gè)層次, 而這層次就相當(dāng)于一個(gè)黑箱,你不清楚它們到底怎么操作數(shù)據(jù)的,只需按照它們的規(guī)則進(jìn)行設(shè)置,使用
    相應(yīng)的命令就可以. 反正我作為程序員,喜歡清楚地知道我的程序每一步都在干什么,所以我喜歡用SPT, 也從不用向?qū)?lái)建立表單報(bào)表一類的.
    SPT技術(shù)是通過(guò)VFP的函數(shù)SQLCONNECT()來(lái)和SQL SERVER建立連接,然后用SQLEXEC()函數(shù)把要執(zhí)行的SQL命令 送到SQL SERVER上去執(zhí)行,
    所有對(duì)數(shù)據(jù)的操作都是通過(guò)這些SQL命令來(lái)進(jìn)行的. 每一個(gè)細(xì)節(jié)都由自己的代碼來(lái)控制.
    4. VFP數(shù)據(jù)的升遷
    VFP的數(shù)據(jù)庫(kù),可以直接用VFP自帶的升遷向?qū)мD(zhuǎn)到SQL SERVER上,但必須把所有的表都放到數(shù)據(jù)庫(kù)里,自由表不能直接升遷, 而實(shí)際上升遷上去的又只是表,數(shù)據(jù)庫(kù)本身不能轉(zhuǎn)到SQL SERVER里. 感覺(jué)怪怪的. 也許是為了升遷索引或者關(guān)系吧.