2015-05-28 76 views
0

我管理建立在一些VBA代碼,從獲取其數據訪問的應用程序:通過訪問用戶將計算從VBA遷移到SQL?

  • 投入形成在Sybase
  • 表(即通過訪問鏈接)
  • 本地表in Access

該應用程序用於進行一些財務計算。我們的計算需要很多條件,並且大多是一些複雜的計算(分數,乘法......)

我的問題是:是VBA比Sybase做的計算快嗎? (請注意不是當我們做我們的計算需要我們的3個種類的數據源)

我想所有的計算到Sybase的遷移一些存儲過程和從參數VBA代碼調用它,等待來自Sybase的輸出。

PS:我之所以要求這是另一個原因,是因爲我們考慮將我們的Access應用程序遷移到瘦客戶機(基於網絡的概率)作爲長期項目,並且如果所有計算已經在服務器/數據庫中它可能會更容易?你怎麼看?

非常感謝您的幫助

回答

0

IMO,我會將基於表單的變量(用戶條目)作爲參數傳遞給存儲過程,然後根據需要從SP中的表中獲取其他變量。這樣可以避免在窗體打開時向客戶端發送太多數據。這會從VBA代碼(或任何特定的前端語言)中抽象出邏輯,使其最終轉移到一個薄層更容易。您也可以根據需要重新編譯獨立的存儲過程,而不是部署另一個代碼實例(通常更難)。

如果有大量來自表單或本地表的參數,請考慮將它們作爲Sybase中的結構化數據類型傳遞。 Sybase中的過程緩存功能非常強大,並且與其他任何過程語言一樣快速編譯之後。

+0

謝謝你的意見丹尼爾。 您有沒有機會獲得Sybase的結構化數據類型的任何文檔? (我從來沒有聽說過)。 Sybase並沒有被使用過,並且沒有很多文檔提及它...... – Cyyrils

0

這取決於計算。 Sybase會更好地進行涉及分組數據的計算,但像分數等複雜計算......在代碼中執行起來會更快。從數據中分離出業務邏輯也是更好的做法。

+0

感謝您的回答。我們的計算需要很多條件,主要是一些複雜的計算(分數,乘法......)。 – Cyyrils

+0

我會將數據保存在數據庫中,並在應用程序中進行計算。使用像C#這樣的編譯語言會更快,但VBA應該做到這一點,然後您將始終擁有乾淨的數據。 – kickinchicken