在OLEDB中IMEX的默认值是什么?

string strConn = "Provider=Microsoft.Ace.OLEDB.12.0;Data Source=" + filename + ";Extended Properties=\"Excel 12.0 Xml;HDR=Yes;IMEX=1\";"; 

我在谷歌search,没有结果。 我认为默认值是2,但我不确定。

任何人都可以帮助我? 谢谢。

根据以下文章,0和2的IMEX值做同样的事情; 他们使用ImportMixedTypes = MajorityType。 如果您不在扩展属性中指定IMEX = 1,那么这是默认值。

所以默认的IMEX行为是MajorityType,这可以通过在连接string中使用IMEX = 1以及registry设置ImportMixedTypes = Text来覆盖。

http://www.instantpages.ltd.uk/ADODB_WP.htm

虽然我没有find关于默认的信息,但@Bao的评论帮助解释了IMEX设置。 根据Microsoft知识库文章194124 ,IMEX参数代表IM端口EX端口模式。 这里有一篇文章的引用:

IMEX的可能设置是:

  0 is Export mode 1 is Import mode 2 is Linked mode (full update capabilities) 

用简单的英文,您可以使用IMEX = 0写入,IMEX = 1为只读,IMEX = 2为修改/更新(读取,更改,保存更改)。

我注意到这个问题是为Excel标记的,但Microsoft.ACE.OLEDB提供程序允许连接许多types的Access数据库引擎支持的数据源,包括Access(* .accdb),Excel(* .xlsx),SharePoint列表, IMEX参数将以类似的方式影响这些其他types的数据源。


在其他文档ADO.NET连接string语法 (docs.microsoft.com)标题下的“正在连接到Excel”中提到的IMEX 扩展属性的其他注释:

在[example]连接string中, Extended Properties关键字设置特定于Excel的属性。 “HDR =是;” 表示第一行包含列名称,而不是数据, “IMEX = 1;” 告诉驱动程序总是将“混合”数据列作为文本读取

我相信以前的知识库文章仍然适用,并且IMEX设置更一般地应用于导出/导入/链接到数据源连接string中的其他非Excel数据源。 另外请注意,知识库文章指出“ImportMixedTypes”设置可能通过registry进行更改 – 这使我相信,这第二篇文章应该被大多忽略,有利于KB来解释IMEX设置。 针对外部数据源的 Access Connectivity Engine(ACE)Excel驱动程序@ Windowsregistry设置logging相关的registry设置- 初始化Microsoft Excel驱动程序 。