链接表 OLE 对象在记录集中显示为 null,而在查询视图中显示为 OLE 对象



我有以下 Oracle 表通过 ODBC 连接到 Access

ID (INT) FILE_TYPE (VARCHAR(20)) BLOB_DATA (BLOB)

BLOB_DATA字段包含 excel 文件,我想下载它们。

在"访问查询"视图中,该字段显示为 OLE 对象

到目前为止,我已经编写了以下代码 -

Dim db as Database
Dim rst as Recordset
Set db = CurrentDb
Set rst = db.openrecordset("SELECT BLOB_DATA FROM MY_TABLE;")
Dim fld as Variant
fld = rst.Fields(0).value

当我检查 fld 字段时,即使访问查询视图将其显示为 OLE 对象,它也显示为空。它是否必须与 ODBC 和链接表执行某些操作?还是我错过了什么?

不能只设置等于 OLE 或 BLOB 字段值的变体,因为它们可以包含非常大的对象。您需要在字段中使用.GetChunck来返回文件的大量数据,因此您不必将整个 BLOB 加载到变量中。

使用.GetChunck可以在将整个文件写入磁盘时将文件的一小部分保存在内存中。

所需的代码不小,但以下Microsoft文章很好地描述了它:https://support.microsoft.com/en-us/help/210486/acc2000-reading--storing--and-writing-binary-large-objects-blobs (是的,它是 Access 2000,但我无法从 Microsoft 中找到更新的来源(。

如果您还有问题,请随时在评论中提问。

最新更新