详读ADO Connection对象进行研究

开发 后端
但对于占少数的数据类型,则会返回ADO Connection值如果该列中两种类型数据的数量相等,提供程序将优先选择数字型数据,放弃文本型数据。

本文介绍,ADO Connection猜测 Excel 工作表或范围中各列的数据类型。(这不受 Excel 单元格格式设置的影响。)如果同一列中既有数字值,也有文本值,会出现严重的问题。Jet 和 ODBC 提供程序将返回占多数的类型的数据,

例如:
在被扫描的八 (8) 行中,如果该列包含五 (5) 个数字值和三 (3) 个文本值,则提供程序将返回五ADO Connection 个数字和三 (3) 个空值。在被扫描的八 (8) 行中,如果该列包含三 (3) 个数字值和五 (5) 个文本值,则提供程序将返回三 (3) 个空值和五 (5) 个文本值。

在被扫描的八 (8) 行中,如果该列包含四 (4) 个数字值和四 (4) 个文本值,则提供程序将返回四 (4) 个数字和四 (4) 个空值。因此,如果列中包含不同类型的值,唯一的解决方法是将该列中的数字值存储为文本,然后在需要时使用ADO Connection 函数或同等功能的函数将其还原为数字。

作为解决只读数据问题的一种替代方法,可在连接字符串的“扩展属性”部分中使用ADO Connection 这一设置来启用导入模式。这可强制执行 ImportMixedTypes=Text 注册表设置。但在此模式下,执行更新操作时可能会出现意外的结果。 有关此设置的其他信息,请单击下面的文章编号,查看 Microsoft 知识库中相应的文章:

在 ADODC 属性对话框的常规选项卡上指定 Excel 数据源的连接设置后,单击记录源选项卡。如果选择的 CommandType 为 adCmdText,则可以使用上文介绍的语法在命令文本对话框中输入一个 SELECT 查询。如果选择的 ADO Connection 为 adCmdTable,而且使用的是 Jet 提供程序,所选工作簿中的可用命名区域和工作表的名称都会显示在下拉列表中,命名区域排在前面。#t#

如果有可用空间,可以将记录添加到 Excel 记录源中。但是,如果将新记录添加到了原来指定的区域之外,那么在对原来指定的区域重新进行查询时,将看不到这些记录。请参见上文中“指定区域时应注意的事项”一节。

使用 ADO Connection 可以检索有关 Excel 数据源(表和字段)的结构的数据。虽然使用两种 OLE DB 提供程序时至少都返回相同数量(很少)字段的有用信息,但结果在两者之间仍有细微差别。使用 ADO Connection 对象的 OpenSchema 方法可检索此元数据。

该方法返回一个 ADO Recordset 对象。也可以使用更强大的 Microsoft ActiveX Data Objects Extensions for Data Definition Language and Security (ADOX) 库来检索元数据。然而,对于 Excel 数据源,“表”既可以是工作表也可以是命名区域,而“字段”则是几种有限的一般数据类型之一,ADO Connection 所以这一附加的功能没有什么用处。

责任编辑:chenqingxiang 来源: 博客园
相关推荐

2009-12-24 16:56:21

ADO.NET库

2009-12-24 14:54:25

ADO.NET使用

2009-12-24 17:01:42

ADO3.0

2009-12-28 14:23:37

ADO启动连接

2009-12-28 11:14:53

ADO 连接对象

2009-12-24 16:46:42

ADO Connect

2010-01-04 10:14:04

ADO.NET对象模型

2009-12-15 10:24:32

Visio 2008架

2010-02-26 15:37:11

Python主线程

2009-12-21 16:40:10

ADO连接

2009-11-04 10:23:05

ADO.NET Con

2009-12-21 13:59:03

ADO.NET特性

2009-11-04 10:35:42

ADO.NET Con

2009-11-27 09:24:29

VS2003命令

2009-12-24 15:51:34

ADO属性

2010-01-04 17:20:47

ADO属性

2009-11-11 09:11:19

2009-12-28 10:03:58

ADO 对象

2009-11-25 17:01:33

VS2005图片

2010-03-02 10:36:05

Android窗体
点赞
收藏

51CTO技术栈公众号