一、服務器端MS SQL Server數據庫設計
1. 在MS SQL Server中建立名為“SFXT”的數據庫。
2. 在SFXT數據庫中建立名為“通信錄”的數據表,表結構如下:
列名(字段名) 數據類型 長度
姓名 chr 8
生日 datetime 8
電話 chr 11
email chr 30
并將姓名設置為主鍵。
3. 在“SFXT”數據庫中建立查詢出所有記錄的存儲過程。 SP_SearchAll
CREATE PROCEDURE [SP_SearchAll]
AS
select * from 通信錄 order by 姓名
return
4. 在“SFXT”數據庫中建立插入新記錄的存儲過程 SP_InsertData。
CREATE PROCEDURE [SP_InsertData]
@name [char] (10),
@birthday [datetime] ,
@telephone [char] (11),
@email [char] (30)
AS
insert into 通信錄(姓名,生日,電話,email) values (@name,@birthday,@telephone,@email)
return
二、客戶端VFP的SQL pass-through技術設計
1. 建立如(^15020603b^)的VFP表單界面。
2. 建立名為“SFXT”的ODBC數據源連接MS SQL Server中的SFXT數據庫。
可通過執行上面VFP表單的按鈕“建立OBDC數據源”來完成;或者通過運行Windows控制面板中的“OBDC數據源”來完成。主要設置包括選擇SQL Server驅動程序,通信協議,登錄標識與密碼等。
“建立OBDC數據源”按鈕.CLICK事件:
*函數說明SQLSTRINGCONNECT([cConnectString])
*省略連接字符串cConnectString時顯示""SQL數據源""對話框,可選擇或新建數據源
sqlstringconnect()
3. 兩種連接MS SQL Server數據源的方式。
使用現有數據源名稱建立連接,“建立連接方式1”按鈕.CLICK事件。
public vodbc,vuser,vpwd,vconn
vodbc='sfxt' &&連接SQL SERVER數據庫ODBC數據源名稱
vuser='sa' &&訪問SQL SERVER數據庫的登錄用戶名,sa為系統用戶
vpwd='5213' &&用戶登錄密碼,為sa系統用戶設置的密碼
vconn=SQLCONNECT(vodbc, vuser,vpwd)
if vconn>0
messagebox('連接成功!',,'ODBC數據源')
else
messagebox('連接失!',,'ODBC數據源')
endif
使用連接字符串建立數據源連接,“建立連接方式2”按鈕.CLICK事件。
public vconn
vconn=SQLSTRINGCONNECT('dsn=sfxt:uid=sa:pwd=5213')
if vconn>0
messagebox('連接成功!',,'ODBC數據源')
else
messagebox('連接失!',,'ODBC數據源')
endif
4. 數據源連接的主要參數設置,“活動連接屬性設置”按鈕.CLICK事件。
* 注:用函數sqlgetprop()可返回設置的參數值
sqlsetprop(vconn,""asynchronous"",.f.) &&取假值時為結果集同步返回: 取真值時為異步返回
sqlsetprop(vconn,""ConnectTimeOut"",15) &&連接超時等待秒數設置,可取值0至600
sqlsetprop(vconn,""IdleTimeout"",0) &&空閑超時間隔秒數,取值0為無限期超時等待
sqlsetprop(vconn,""Transactions"",1) &&取值1時為自動處理遠程事務:取值2時為手工處理
5. “執行存儲過程查詢數據”按鈕.CLICK事件。
*函數說明SQLEXEC(nConnectionHandle, [cSQLCommand, [CursorName]])
*nConnectionHandle 當前數據源活動連接句柄
*cSQLCommand 執行SQL SERVER存儲過程的SQL語句表達式
*CursorName 返回執行結果臨時表的名稱
sqlexec(vconn,""execute SP_SearchAll"",""我的通信錄"")