2011-05-09 44 views
3

我有一個SSIS 2008包,它從Access數據庫(OLEDB數據源)讀取數據並使用它來更新SQL Server表。如何刪除SSIS包中的Access數據源?

當更新完成時,我想讓軟件包刪除Access數據庫。我試過了一個文件系統任務和一個腳本任務,但都沒有工作,因爲這個包保持打開數據庫連接。

我得到的錯誤信息:

該進程無法訪問該文件 「C:..... \ abc.mdb」,因爲它正被另一個進程使用 。

如何獲取包來釋放數據庫連接?

我試着在ConnectionManager對象上調用Dispose()方法,但無濟於事。我注意到ConnectionManager類有一個ReleaseConnection方法,但我認爲這隻會釋放一個與相關的AcquireConnection方法創建的新連接。我需要SSIS來釋放它自己的內部連接,以便可以刪除MDB文件。

有什麼建議嗎?

在此先感謝。

+0

你在哪裏執行包?從內部管理工作室?或者你是否遠程調用這個包?這對連接的保留方式有所不同。 – D3vtr0n 2011-05-10 16:28:54

+0

從Visual Studio中運行時,它工作正常。但是,從Management Studio運行或通過存儲過程遠程運行時,它不會釋放連接。 – Doug 2011-05-11 07:45:18

回答

2

你可以嘗試設置一個作業來運行ssis軟件包,它有兩個步驟,一個運行軟件包,一個刪除文件。如果pacakge運行完畢,它應該釋放連接。

+0

極好的橫向思維。工作正常!非常感謝您的幫助。 – Doug 2011-05-11 07:42:05