ACCESS 調(diào)用后臺存儲過程的實現(xiàn)方法
來源:程序員人生 發(fā)布時間:2013-11-10 23:23:50 閱讀次數(shù):2863次
但是
它要對大量數(shù)據(jù)處理時
速度比較慢
當(dāng)有大量數(shù)據(jù)需要處理時
不能在Client端處理
而必須在Server端處理
但ACCESS和Server端之間多數(shù)通過ODBC來連接
這樣就增加了調(diào)用后臺存儲過程的難度
筆者通過在實際工作中長期的摸索
根據(jù)不同的業(yè)務(wù)需要
可以用下面三種方法去調(diào)用后臺存儲過程
一
Access 向后臺提交作業(yè)
這一個個作業(yè)對應(yīng)一個個的存儲過程
在SQL Server
中
通過Task Manager 來建立相應(yīng)的Task; 而在Oracle
中
通過Managing Job Queue 來建立相應(yīng)的Job
在Access中
在job_list表中插入一個作業(yè)
這些作業(yè)一般每天晚上運(yùn)行一次
這些作業(yè)對應(yīng)的業(yè)務(wù)一般是需要處理非常大量數(shù)據(jù)
而實時性又是較低的
在我們的業(yè)務(wù)中比較典型的例子是每天晚上大量的電費(fèi)計算
二
在Server端建立一些觸發(fā)器(Trigger)
在Access中激活這些觸發(fā)器
在SQL Server
和Oracle
中
都是通過Create Trigger 來實現(xiàn)
在Access中
根據(jù)不同的業(yè)務(wù)
通過插入
修改
刪除記錄來激活不同觸發(fā)器
在我們的業(yè)務(wù)中一個例子是
當(dāng)業(yè)務(wù)人員修改用戶的電表讀數(shù)后
激活計算電費(fèi)的觸發(fā)器
能立即重新計算該用戶的電費(fèi)
這樣子
既可以和批量計算電費(fèi)共享同一程序
不用在Access端重新開發(fā)
有可以加快前端的響應(yīng)速度
三
以上二種方法
只可以說是間接調(diào)用后臺存儲過程
Access還提供一種直接調(diào)用的方法
可以用Access 傳遞查詢直接將命令發(fā)送到數(shù)據(jù)庫服務(wù)器
建立Access 傳遞查詢步驟如下
(
) 在數(shù)據(jù)庫窗口中單擊
查詢
選項卡
然后單擊
新建
按鈕
(
) 在
新建查詢
對話框中單擊
設(shè)計視圖
選項
然后單擊
確定
按鈕
(
) 在
顯示表
對話框內(nèi)單擊
關(guān)閉
按鈕
(
) 在
查詢
菜單上
指到
SQL 語句條件
然后單擊
傳遞
命令
(
) 在工具欄上
請單擊
屬性
按鈕 以顯示查詢屬性表
(
) 在查詢屬性表中
請設(shè)置
ODBC 連接字符串
屬性來指定要連接的數(shù)據(jù)庫信息
可以輸入連接信息:
ODBC;DSN=ntserver
;UID=sa;PWD=;DATABASE=BMS
或用
生成器
按鈕生成
(
) 因存儲過程不用返回記錄
所以將
返回記錄
屬性設(shè)置為
否
(
) 在
SQL 傳遞查詢
窗口中
輸入傳遞查詢: exec statistics
Statistics 是SQL Server 數(shù)據(jù)庫的一個存儲過程
(
) 關(guān)閉查詢
保存查詢?yōu)?fp class='fp-yqxul'>stat_query
運(yùn)行傳遞查詢的方法有
(
) 用Microsoft Access的宏 OpenQuery
(
) 用下面的事件過程
Private Sub 統(tǒng)計_Click()
Dim dbs As Database
qdf As QueryDef
Dim tmq As Dynaset
Dim strSQL As String
Set dbs = CurrentDb
打開上面建的傳遞查詢stat_query
Set qdf = dbs
OpenQueryDef(
stat_query
)
qdf
Execute
Set dbs = Nothing
End Sub
這種方法在SQL Server
中實現(xiàn)完全沒問題
在Oracle
中不能實現(xiàn)
錯誤信息為
ORA
invalid SQL statement
由于這種方法不需要一個中間的表去排隊或激活后臺存儲過程
所以它的應(yīng)用面就很廣
凡是需要處理大量數(shù)據(jù)的業(yè)務(wù)
都可以放到Server端去處理
如統(tǒng)計報表
通過以上三種方法
解決了Access對大量數(shù)據(jù)處理速度慢的弱點
大大加大了深圳供電局?jǐn)?shù)據(jù)處理能力
生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈