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