在VBA項目中,我有一個大型SQL查詢,我將其檢索到一個字符串變量中以形成從遠程數據庫檢索數據的操作的一部分。將大型文本資源存儲在VBA項目中
目前,我以純文本形式存儲在文件中這一點,我從該文件中檢索需要的時候。
雖然這使得開發/更新更容易,因爲我可以隨時編輯文件中的查詢,但它確實呈現曝光,因爲用戶可能會惡意地編輯文件(損壞的機會有限,但仍然是不可接受的安全風險) 。
來降低這種風險,我正在考慮的選項/人認爲是:
- 店項目中的文本,作爲一個全局變量。好,因爲它沒有公開給用戶,但不幸的是這意味着每次我需要對查詢進行更改時,我必須將查詢轉換爲塊,轉義引號,使用行連續,添加換行符以及將每個塊連接在一起。育。
- 存儲包裹在指令模塊中的文本不編譯它,然後使用VBE方法來檢索和在從模塊行解析的文本。比上述更好,但要求最終用戶啓用VBE。這就是這個選項。
- 保持在外部文件中的文本,但它混淆(例如Base64編碼它)。爲編輯添加一些(可接受的)開銷,但需要項目中的base64解碼方法(VBA是否有一個?)。
- 如上所述,但使用某種加密 - 同樣需要項目中的解密方法。
- 將文本以基於文件的安全格式(例如.mdb或.accdb)和代碼憑據存儲到Visio項目中以檢索文本。
任何建議或經驗?我錯過了VBA提供的一些簡單的選擇嗎?
你是什麼意思選項1 - 「變換成塊...串聯「 - 你需要多長時間更改從查詢中收到的字符串?如果字符串將要更改,是否應該再次運行查詢? – Raystafarian
@Raystafarian實際上存儲的字符串*是*這個查詢主要是在開發過程中,我需要經常更改它,在生產中應該是非常靜態的,但是隻要對查詢進行細微更改而不必重新發布解決方案的能力就是我的問題的驅動程序。 – sasfrog
我不認爲你可以在應用程序關閉時將它存儲在一個Visio變量中,而不會丟失它。我也不認爲*你可以將輸出打印到VBE中的一個模塊中 – Raystafarian