您好,登錄后才能下訂單哦!
這篇文章主要講解了“Ado Connection技巧是什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Ado Connection技巧是什么”吧!
我們首先知道 activex dll是一個類庫 最典型的是 ado msxml 等等 這些類庫是功能相對單一的庫 作為程序進程的一部分 Ado Connection 在主exe運行的時候 就加載在主程序中的.被稱為進程內組件。
但是activex exe不太一樣 它是在調用組件的時候 創建一個新進程 主程序調用接口,然后由進程外的服務進程處理后傳回來數據。Ado Connection所以這種方式叫做進程外組件 又叫做ole 自動化服務器。
這是一種功能非常大的程序常用的方式 比如word excel 等 我們可能只需要我們的進程有他們一小部分功能 開啟了一小部分接口的引用 但是在這個主進程外的引用進程中 可能整套的office都在協同工作。你現在的問題就出在你嘗試進程間傳遞一個Ado Connection這是一個帶有連接狀態的敏感對象這在activex exe進程間傳遞是非常危險且消耗巨大 而被禁止的。
但是在activex dll 傳遞 是在同一個進程中就絕對沒問題。所以 建議傳遞 CONNECTION STRING的值類型 而不是一個具有狀態的對象或者 把主程序的 和activex exe的公用邏輯部分 做成一公共的 activex dll 分別由兩個工程飲用它。
如果使用調用ADO.NET是必需的,那么如果程序結構導致我無法使用using(){}來包裹我的Ado Connection,比如說我的Connection是同一個help類返回的,那我又怎么辦呢?
這是一個經常遇到的問題。在這樣的環境中,我們無法將整個connection包裹在一個connection中。解決這樣的方法有兩個,一個就是修改您的代碼結構。傳入一個ConnectionString來返回調用ADO Connection 。另一個方法就是反復檢查您的代碼,是否及時關閉了Connection。
因為Close的效果與dispose是相同的。但是如果不使用using(){}這個及時關閉Connection的任務就等于是交到了我們自己的手上,而不再由.net framework為我們把關了。
感謝各位的閱讀,以上就是“Ado Connection技巧是什么”的內容了,經過本文的學習后,相信大家對Ado Connection技巧是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。