Sql 使用ODBC查询Access 2007多值字段

Sql 使用ODBC查询Access 2007多值字段,sql,ms-access,odbc,Sql,Ms Access,Odbc,我有一个Access 2007数据库,其中一个字段使用“附件”数据类型(Access 2007中新增的)。该字段是一个神奇的“多值”字段,可以包含多个附件 我希望能够使用单个ODBC查询轻松查看数据库中所有行的此字段的内容。理想情况下,原始表的每一行应该正好是一行,我希望所有附件都作为单个数据库单元返回。在理想情况下,可以使用一个INSERT into查询将该组附件重新插入到另一个表中 我认为这可能是一个很高的要求,因此如果我必须这样做,我会满足于: 一个SQL查询,告诉我给定附件字段中的附件

我有一个Access 2007数据库,其中一个字段使用“附件”数据类型(Access 2007中新增的)。该字段是一个神奇的“多值”字段,可以包含多个附件

我希望能够使用单个ODBC查询轻松查看数据库中所有行的此字段的内容。理想情况下,原始表的每一行应该正好是一行,我希望所有附件都作为单个数据库单元返回。在理想情况下,可以使用一个INSERT into查询将该组附件重新插入到另一个表中

我认为这可能是一个很高的要求,因此如果我必须这样做,我会满足于:

  • 一个SQL查询,告诉我给定附件字段中的附件数
或最坏情况:

  • 一个SQL查询,告诉我给定行中的附件是否为空
我似乎在网上找不到任何关于多值字段的好文档。也许它们太新了

想法

(顺便说一句,不要告诉我多值字段是邪恶的。我已经知道了。我不是创建数据库的人。)

查看一些信息,尽管他没有很好的屏幕截图或查询SQL。他的网站也不是最好的格式或可读性

这假设您正在从Access 2007内部运行查询。如果您想通过ODBC运行它,请参见

了解一些信息,尽管他没有很好的屏幕截图或查询SQL。他的网站也不是最好的格式或可读性


这假设您正在从Access 2007内部运行查询。如果要通过ODBC运行,请参见如果可以使用ADO,则连接到数据源,而不使用连接字符串中的
OLEDB:Support Complex data=True
,并查询列:您应该获得类型为
adLongVarWChar
的列(即
MEMO
)其中,值是由分号字符分隔的文件名。因此,获取文件列表只需要简单的解析


可能可以使用ADO获取附件,但我还没有看到它完成。使用
OLEDB:Support Complex Data=True
意味着您将获得类型为
adispatch
的列,即对象。这个对象是什么,我不知道(我希望它是一个
ADODB.Recordset
,但不可以)。

如果可以使用ADO,那么就不用在连接字符串中使用
OLEDB:Support Complex data=True
来连接到数据源,并查询列:您应该得到类型为
adLongVarWChar
(即
MEMO
)其中,值是由分号字符分隔的文件名。因此,获取文件列表只需要简单的解析


可能可以使用ADO获取附件,但我还没有看到它完成。使用
OLEDB:Support Complex Data=True
意味着您将获得类型为
adispatch
的列,即对象。这个对象是什么,我不知道(我希望它是一个
ADODB.Recordset
,但是不行)。

微软推荐ADO用于ACE 2007复杂数据,是吗?非常有趣;)有趣的是,他们根本不支持ODBC的这种功能。我相信这是我在Access/JET数据库中看到的第一个例子。微软推荐ADO用于ACE 2007复杂数据,是吗?非常有趣;)有趣的是,他们根本不支持ODBC的这种功能。我相信这是我在Access/JET数据库中看到的第一个实例。。。哦,对不起,你说不要告诉我。忽略;)请参阅本文“被认为有害的多值数据类型”()。。。哦,对不起,你说不要告诉我。忽略;)亲爱的,这很有帮助;我至少可以通过解析字符串找到附件的数量。我可能可以使用不同的查询来获取原始内容,但这是一项单独的任务……很好,这很有帮助;我至少可以通过解析字符串找到附件的数量。我可能可以使用不同的查询获取原始内容,但这是一项单独的任务。。。