我有一个Access 2007数据库,它对其中一个字段使用“附件”数据类型(Access 2007中的新增内容)。这个字段是一个神奇的“多值”字段,可以包含多个附件。
我希望能够使用单个ODBC查询轻松查看数据库中所有行的此字段的内容。理想情况下,原始表的每一行应该只有一行,我希望所有附件都作为单个数据库单元返回。在一个完美的世界中,可以使用单个INSERT INTO查询将该组附件重新插入另一个表中。
我认为这可能是一个很高的要求,所以如果必须,我会满足于:
或最坏的情况:
我似乎无法在网上找到任何关于多值字段的好文档。也许他们太新了。
思想?
(P.S。不要打扰告诉我多值字段是邪恶的。我已经知道了。我不是制作数据库的人。)
答案 0 :(得分:3)
如果您可以使用ADO,则使用连接字符串中的OLEDB:Support Complex Data=True
连接到数据源而不并查询列:您应该获得类型为adLongVarWChar
的列( ie MEMO
)其中值是由分号字符分隔的文件名。因此,获取文件列表只需要一个简单的解析。
可能可以使用ADO获取附件,但我还没有看到它完成。使用OLEDB:Support Complex Data=True
表示您将获得类型为adIDispatch
的列,即对象。那个对象是什么,我不知道(我希望它会是一个ADODB.Recordset
,但不会去。)
答案 1 :(得分:1)
请参阅http://www.access-freak.com/tutorials.html#Tutorial07获取一些信息,尽管他没有好的截图或查询的SQL。他的网站也不是最好的格式或可读。
这假设您正在从Access 2007内部运行查询。如果要通过ODBC运行它,请参阅http://groups.google.ca/group/microsoft.public.data.odbc/browse_thread/thread/d0ee29cc5e54e0fb