但是,它要對大量資料處理時,速度比較慢。當有大量資料需要處理時,不能在client端處理,而必須在server端處理。 但access和server端之間多數通過odbc來連線,這樣就增加了呼叫後台儲存過程的難度。筆者通過在實際工作程式設計客棧中長期的摸索,根據不同的業務需要,可以用下面三種方法去呼叫後台儲存過程。
一、 access 向後台提交作業,這乙個個作業對應乙個個的儲存過程。在sql server 6.5中,通過task manager 來建立相應的task; 而在orac程式設計客棧le 8.0中,通過managing job queue 來建立相應的job。在access中,在job_list表中插入乙個作業,這些作業一般每天晚上執行一次。這些作業對應的業務一般是需要處理非常大量資料,而實時性又是較低的,在我們的業務中比較典型的例子是每天晚上大量的電費計算。
二、 在server端建立一些觸發器(trigger),在access中啟用這些觸發器。在sql server 6.5 和oracle 8.0中,都是通過create trigger 來實現。在access中,根據不同的業務,通過插入、修改、刪除記錄來evmsntlq啟用不同觸發器。在我們的業務中乙個例子是,當業程式設計客棧務人員修改使用者的電表讀數後,啟用計算電費的觸發器,能立即重新計算該使用者的電費。這樣子,既可以和批量計算電費共享同一程式,不用在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 呼叫後台儲存過程的實現方法
本文位址:
在ACCESS 中呼叫後台儲存過程
深圳供電局自動化分部 楊炯夫 access是乙個client server的優秀前端開發工具,具有易學易用,介面友好,開發簡單,和其他資料庫介面靈活。但是,它要對大量資料處理時,速度比較慢。深圳供電局現有60萬使用者,下面有6個營業所,通過64k ddn 和局相連,如果有乙個營業所要對1萬使用者進行...
前台呼叫後台方法
在pixmm 中,商家的主介面有很多的新增管理功能,但是每一條記錄後邊的刪除都不可用,跟蹤了一下,發現這個在前台連他的js都沒有呼叫,但是明明寫了方法卻沒有呼叫,為什麼呢?刪除 這是處錯誤的語句,有木有看出 的問題。代表著跳轉到頁面的頂部,這樣標籤中就會先到頁面的頂部,才會執行我們的方法,但是這樣的...
jQuery Ajax 呼叫後台方法
首先在頁面的後台檔案中引入命名空間 using system.web.services 一.無引數的呼叫方法 c webmethod public static bool getstr js function else error function err html 執行 後,如果返回值為false...