2011-10-02 67 views
3

有沒有辦法在SSIS中使用Microsoft.Jet.OLEDB.4.0驅動程序訪問FlatFiles?SSIS FlatFile通過Jet訪問

通過FlatFile Source訪問更好,它只是關於是否存在使用Jet驅動程序執行此操作的方法。

回答

3

這似乎是一個有趣的問題,所以我在它周圍擺弄了一下。是的,您絕對可以使用JET驅動程序來讀取平面文件。 HOW TO: Use Jet OLE DB Provider 4.0 to Connect to ISAM Databases請參閱Open Text部分

默認情況下,它希望文件是CSV文件,但您可以指定Schema.INI中的格式,該文件與連接管理器指向的文件夾位於同一文件夾中。

有一件事要注意關於CM,它指向文本文件的文件夾,而不是一個特定的文件。當您創建連接管理器時,您需要進入全部選項卡(選擇本機OLE DB \ Microsoft Jet 4.0 OLE DB提供程序後),然後添加擴展屬性。我能夠使它與CSVDelimited的FMT一起工作,並且只是分隔符(因爲我的示例文件是csv)。

enter image description here

更換爲逗號標籤在源文件中,並設置在FMT TabDelimited沒有出現在連接管理器屬性的工作,但我沒有嘗試創建一個schema.ini文件指示的BOL文章。

您無法通過 連接字符串定義文本文件的所有特徵。例如,如果要打開固定寬度的文件 ,或者要使用逗號以外的分隔符,則必須在指定的Schema.INI文件中指定所有這些設置。

我CM ConnectionString中的全部價值低於

Data Source=C:\tmp\so\;Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties="text;HDR=Yes;FMT=CSVDelimited;"; 

如果包工程在設計時很好,但那張肚子了,一旦它運行時,JET驅動程序僅作爲32位,所以在一臺64位機器上,如錯誤信息所示。

SSIS錯誤代碼DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER。 AcquireConnection方法調用連接管理器 「OLEDB_JET」失敗,錯誤代碼爲0xC0209303。在此之前發佈的消息可能有錯誤 以及有關爲什麼 AcquireConnection方法調用失敗的更多信息。

的解決方法是在命令行在32位模式一樣

C:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn>.\dtexec /file C:\sandbox\SSISHackAndSlash\SSISHackAndSlash\so_JetFlatFile.dtsx 
+0

嗨從來就運行它嘗試過了,它的工作原理。 只是一個快速跟進問題: 我用OleDB數據源,測試連接成功。 之後,我添加了一個OleDB Source,使用我定義的OleDB數據源到我的FlatFile,並點擊預覽=>錯誤。 我也忘了CSV – kamahl