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

字號(hào):

EndScan
    *** 要得到SQL SERVER上某個(gè)表的結(jié)構(gòu),有兩種辦法,一是運(yùn)行SQL SERVER自帶的系統(tǒng)存儲(chǔ)過(guò)程。一是運(yùn)行一個(gè)Select命令。
    比如要從SQL SERVER得到EMP表的結(jié)構(gòu)
    lnReturn=SQLEXEC(連接句柄,"Select Top 0 * From Emp","TmpEmp")
    返回的結(jié)果都是臨時(shí)表,是只讀的,要想變成可讀寫(xiě)的,需要做點(diǎn)小變化:
    Select 0
    Use DBF("TmpEmp") Again Alias Emp
    Use In TmpEmp
    現(xiàn)在得到的EMP臨時(shí)表就是可讀寫(xiě)的了。
    *注 "Select Top 0 From Emp" 命令在VFP里是錯(cuò)誤命令,但SQL SERVER里可以執(zhí)行.
    SPT和使用視圖相比,優(yōu)點(diǎn)是每一步你都清楚自己在做什么,知道為什么命令會(huì)出錯(cuò)。缺點(diǎn)是你需要多寫(xiě)命令,多了解SQL SERVER的語(yǔ)法。
    ***************
    談?wù)刅FP和SQL SERVER搭配做C/S系統(tǒng) (五) --從VFP控制SQL SERVER事務(wù)處理和加鎖
    **建立與SQL SERVER的連接
    lnHandle=SQLConnect("ODBC數(shù)據(jù)源","用戶(hù)名","密碼")
    If lnHandle>0
    && 設(shè)置成手工事務(wù)處理模式,由代碼來(lái)控制
    = SQLSETPROP(lnSQL_Hand, ’Transactions’, 2)
    **下面的命令從EMPPAY里選取記錄,并給該表加上獨(dú)占鎖(TABLELOCKX),一直到該事務(wù)結(jié)束(HOLDLOCK)
    ln1=SQLEXEC(lnHandle, "Select * FROM EmppayWITH (TABLOCKX, HOLDLOCK)","Emppay")
    **執(zhí)行其它命令,比如更新數(shù)據(jù)
    ln2=SQLEXEC(lnHandle,"Update PayTotal Set ......")
    ...
    ...
    **如果所有命令都正確執(zhí)行了,則
    =SQLCOMMIT(lnHandle)
    ***如果要放棄整個(gè)事務(wù)處理,用
    =SQLROLLBACK(lnHandle)
    ***關(guān)閉連接,事務(wù)自動(dòng)結(jié)束,鎖也解開(kāi)
    =SQLDISCONNECT(lnHandle)
    Else
    ****連接失敗
    EndIf
    *** SQLSETPROP()函數(shù)
    這個(gè)VFP函數(shù)是用來(lái)設(shè)置當(dāng)前連接的屬性的。 比如上邊的手工事務(wù)處理。
    還有一個(gè)比較常用的屬性是DISPLOGIN,該屬性控制是否顯示SQL SERVER的登錄表單
    第3個(gè)參數(shù): 1 - 顯示登錄表單,如果登錄信息(用戶(hù)名,密碼)不完全2 - 總顯示登錄表單3 - 不顯示登錄表單
    例如:
    =SQLSETPROP(lnHandle, "DISPLOGIN",1)
    當(dāng)使用SPT技術(shù)時(shí),為節(jié)約連接數(shù)減少負(fù)擔(dān),需要經(jīng)常連接和斷開(kāi)SQL SERVER,有時(shí)候你并不希望每次連接都讓用戶(hù)登錄,當(dāng)用戶(hù)首次登錄后,可以把名字和密碼存起來(lái),以后的連接可以自動(dòng)登錄了。
    ***************
    談?wù)刅FP和SQL SERVER搭配做C/S系統(tǒng) (六) -- SQL SERVER的索引
    作為VFP程序員,我們深知索引對(duì)表的重要性,好的索引可以大大縮短程序讀取數(shù)據(jù)的時(shí)間。
    索引對(duì)于SQL SERVER數(shù)據(jù)表來(lái)說(shuō),同樣是很重要的。你可以做個(gè)簡(jiǎn)單的測(cè)試。
    1. 索引測(cè)試
    從SQL SERVER程序組里或者ENTERPRISE MANAGER的TOOLS菜單上打開(kāi)QUERY ANALYZER工具.
    連接到你的SERVER后, 選擇QUERY菜單上的CURRENT CONNECTION OPTIONS(當(dāng)前連接選項(xiàng)).