2011-10-02 71 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