在ACCESS 中呼叫後台儲存過程

2022-06-05 05:06:13 字數 2235 閱讀 6023

深圳供電局自動化分部

楊炯夫

---- access是乙個client/server的優秀前端開發工具,具有易學易用,介面友好,開發簡單,和其他資料庫介面靈活。但是,它要對大量資料處理時,速度比較慢。深圳供電局現有60萬使用者,下面有6個營業所,通過64k ddn 和局相連,如果有乙個營業所要對1萬使用者進行處理的話,要花2~3小時,嚴重影響其他業務的開展。所以,當有大量資料需要處理時,不能在client端處理,而必須在server端處理。 但access和server端之間多數通過odbc來連線,這樣就增加了呼叫後台儲存過程的難度。筆者通過在實際工作中長期的摸索,根據不同的業務需要,可以用下面三種方法去呼叫後台儲存過程。

---- 一、 access 向後台提交作業,這乙個個作業對應乙個個的儲存過程。在sql server 6.5中,通過task manager 來建立相應的task; 而在oracle 8.0中,通過managing job queue 來建立相應的job。在access中,在job_list表中插入乙個作業,這些作業一般每天晚上執行一次。這些作業對應的業務一般是需要處理非常大量資料,而實時性又是較低的,在我們的業務中比較典型的例子是每天晚上大量的電費計算。

---- 二、 在server端建立一些觸發器(trigger),在access中啟用這些觸發器。在sql server 6.5 和oracle 8.0中,都是通過create trigger 來實現。在access中,根據不同的業務,通過插入、修改、刪除記錄來啟用不同觸發器。在我們的業務中乙個例子是,當業務人員修改使用者的電表讀數後,啟用計算電費的觸發器,能立即重新計算該使用者的電費。這樣子,既可以和批量計算電費共享同一程式,不用在access端重新開發,有可以加快前端的響應速度。

---- 三、 以上二種方法,只可以說是間接呼叫後台儲存過程,access還提供一種直接呼叫的方法,可以用access 傳遞查詢直接將命令傳送到資料庫伺服器。

---- 建立access 傳遞查詢步驟如下:

---- (1) 在資料庫視窗中單擊「查詢」選項卡,然後單擊「新建」按鈕。

---- (2) 在「新建查詢」對話方塊中單擊「設計檢視」選項,然後單擊「確定」按鈕。

---- (3) 在「顯示表」對話方塊內單擊「關閉」按鈕。

---- (4) 在「查詢」選單上,指到「sql 語句條件」,然後單擊「傳遞」命令。

---- (5) 在工具欄上,請單擊「屬性」按鈕 以顯示查詢屬性表。

---- (6) 在查詢屬性表中,請設定「odbc 連線字串」屬性來指定要連線的資料庫資訊。可以輸入連線資訊: 」odbc;dsn=ntserver0;uid=sa;pwd=;database=bms」,或用「生成器」按鈕生成。

---- (7) 因儲存過程不用返回記錄,所以將「返回記錄」屬性設定為「否」。

---- (8) 在「sql 傳遞查詢」視窗中,輸入傳遞查詢: exec statistics。statistics 是sql server 資料庫的乙個儲存過程。

---- (9) 關閉查詢,儲存查詢為:stat_query。

---- 執行傳遞查詢的方法有:

---- (1) 用microsoft access的巨集 openquery。

---- (2) 用下面的事件過程:

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 6.5 中實現完全沒問題,在oracle 8.0中不能實現,錯誤資訊為:ora-00900 invalid sql statement. 由於這種方法不需要乙個中間的表去排隊或啟用後台儲存過程,所以它的應用面就很廣,凡是需要處理大量資料的業務,都可以放到server端去處理,如統計報表。

---- 通過以上三種方法,解決了access對大量資料處理速度慢的弱點,大大加大了深圳供電局資料處理能力

ACCESS 呼叫後台儲存過程的實現方法

但是,它要對大量資料處理時,速度比較慢。當有大量資料需要處理時,不能在client端處理,而必須在server端處理。但access和server端之間多數通過odbc來連線,這樣就增加了呼叫後台儲存過程的難度。筆者通過在實際工作程式設計客棧中長期的摸索,根據不同的業務需要,可以用下面三種方法去呼叫...

在asp中呼叫sql server的儲存過程

在asp中呼叫sql server的儲存過程可以加快程式執行速度,所以這些天在研究asp中利用sql server的儲存過程,現總結如下,其中很多思想也是直接從chinaasp論壇中得出來,希望能給大家一些幫助。1.呼叫儲存過程的一般方法 先假設在sql server中有一儲存過程dt users ...

在asp中呼叫sql server的儲存過程方法

在asp中呼叫sql server的儲存過程可以加快程式執行速度 1.呼叫儲存過程的一般方法 先假設在sql server中有一儲存過程dt users create procedure dbo dt users asselect from users return go第一種方法是不利用comma...