首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

Visual FoxPro 透過 SPT 技術連接 SQL Server 開發 C/S 應用實戰

     編輯:關於SqlServer

架構概覽

利用 VFP 的 SQL Pass-Through (SPT) 技術,配合 ODBC 連接 SQL Server,打造標準客戶端/伺服器 (C/S) 應用,兼具 VFP 開發速度與 SQL Server 安全性能。

伺服器端:SQL Server 物件建立

  1. 建立資料庫 SFXT。
  2. 建立表 通信錄(姓名 CHR(8) PK, 生日 DATETIME, 電話 CHR(11), email CHR(30))。
  3. 建立預存程序:
    • SP_SearchAll:SELECT * FROM 通信錄 ORDER BY 姓名
    • SP_InsertData(@name, @birthday, @telephone, @email):INSERT INTO 通信錄 VALUES (@name, @birthday, @telephone, @email)

客戶端:VFP 表單與 SPT 程式碼

1. 建立 ODBC 資料來源

* 按鈕「建立 ODBC 資料來源」
SQLSTRINGCONNECT()  * 省略參數彈出對話框手動建立

2. 兩種連線方式

* 方式一:使用現有 DSN
PUBLIC vODBC, vUSER, vPWD, vCONN
vODBC = 'sfxt'; vUSER = 'sa'; vPWD = '5213'
vCONN = SQLCONNECT(vODBC, vUSER, vPWD)

* 方式二:連線字串
vCONN = SQLSTRINGCONNECT('dsn=sfxt;uid=sa;pwd=5213')
IF vCONN > 0 MESSAGEBOX('連線成功') ELSE MESSAGEBOX('連線失敗') ENDIF

3. 連線屬性設定

SQLSETPROP(vCONN, "Asynchronous", .F.)      && 同步傳回
SQLSETPROP(vCONN, "ConnectTimeOut", 15)     && 連線逾時秒數
SQLSETPROP(vCONN, "IdleTimeout", 0)         && 閒置逾時 0=無限
SQLSETPROP(vCONN, "Transactions", 1)        && 1=自動遠端交易

4. 執行預存程序查詢

SQLEXEC(vCONN, "EXECUTE SP_SearchAll", "我的通信錄")
BROWSE

5. 執行即時 SQL 查詢

SQLEXEC(vCONN, "SELECT * FROM 通信錄", "我的通信錄")
BROWSE

6. 向預存程序傳參數新增

LOCAL vNAME, vBDAY, vTEL, vEMAIL, vSQL
vNAME = '姓名' + SYS(3)
vBDAY = DTOC(DATE() - INT(RAND()*10000))
vTEL = SYS(3)
vEMAIL = SYS(3) + '@hotmail.com'
vSQL = "EXECUTE SP_InsertData '" + vNAME + "','" + vBDAY + "','" + vTEL + "','" + vEMAIL + "'"
IF SQLEXEC(vCONN, vSQL) > 0 MESSAGEBOX('新增成功') ELSE MESSAGEBOX('新增失敗') ENDIF
SQLEXEC(vCONN, "EXECUTE SP_SearchAll", "我的通信錄")
BROWSE

7. 緩衝模式更新資料

CURSORSETPROP('BatchUpdateCount', 100)
CURSORSETPROP('Buffering', 3)          && 開放式列緩衝
CURSORSETPROP('FetchSize', -1)         && 全部提取
CURSORSETPROP('KeyFieldList', '姓名')  && 主鍵
CURSORSETPROP('SendUpdates', .T.)
CURSORSETPROP('Tables', '通信錄')
CURSORSETPROP('UpdateNameList', '姓名 通信錄.姓名, 生日 通信錄.生日, 電話 通信錄.電話, email 通信錄.email')
CURSORSETPROP('UpdatableFieldList', '姓名,生日,電話,email')
CURSORSETPROP('UpdateType', 1)         && REPLACE 方式
CURSORSETPROP('WhereType', 3)          && WHERE 含主鍵與異動欄位
BROWSE  && 移動記錄指標自動送更新

8. 斷開連線與關閉表單

SQLDISCONNECT(vCONN)
THISFORM.RELEASE

總結

完整示範 VFP SPT 技術實現查詢、新增、修改等核心功能,為 C/S 架構應用提供可複製的開發範本。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved