【问题标题】:What is the default value of IMEX in OLEDB?OLEDB中IMEX的默认值是多少?
【发布时间】:2012-07-05 16:37:16
【问题描述】:
string strConn = "Provider=Microsoft.Ace.OLEDB.12.0;Data Source=" + filename + ";Extended Properties=\"Excel 12.0 Xml;HDR=Yes;IMEX=1\";";

我在谷歌上搜索,并没有得到任何结果。我认为默认值是 2,但我不确定。

有人可以帮助我吗?谢谢。

【问题讨论】:

    标签: excel connection-string oledb


    【解决方案1】:

    虽然我没有找到有关默认设置的信息,但 @Bao 的评论有助于解释 IMEX 设置。根据Microsoft Knowlege Base Article 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 提供程序允许连接到 Access 数据库引擎支持的多种类型的数据源,包括 Access (*.accdb)、Excel (*.xlsx)、 SharePoint 列表等。IMEX 参数将以类似方式影响这些其他类型的数据源。


    2017 年 8 月更新。在另一个文档 ADO.NET Connection String Syntax (docs.microsoft.com) 的标题“连接到 Excel” 下,IMEX 扩展属性 上的其他 cmets:

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

    我相信之前的知识库文章仍然适用,并且 IMEX 设置更普遍地应用为导出/导入/链接到数据源连接字符串中的其他非 Excel 数据源。另请注意,知识库文章指出“ImportMixedTypes”设置可以通过注册表更改 - 这使我相信第二篇文章应该大部分被忽略,而支持知识库来解释 IMEX 设置。 Access Connectivity Engine (ACE) Excel Driver @Windows Registry Settings for External Data Sources - Initializing the Microsoft Excel Driver 记录了相关的注册表设置。

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-20
      • 2018-07-12
      • 2015-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多