gpt4 book ai didi

MS Access 数据库中的 Delphi 和附件文件

转载 作者:行者123 更新时间:2023-12-03 15:57:39 25 4
gpt4 key购买 nike

我在 Google 中搜索了很多次,所以我找不到任何有关通过 delphi 使用附件的信息,所以我决定写这个问题。

我在 .accdb 数据库中有一个名为 Files 的表,其中包含这些字段:

IDFile PK AutoIncField,
FileName WideStringField,
FilesAttached WideMemoFiled.

enter image description here

如何使用 delphi 将文件保存到附件字段或从附件字段加载文件?

<强> Attach files and graphics to the records in your database

这里的问题是,在delphi中FilesAttached的数据类型是TWideMemoField,当我写 ShowMessage(FDTable1FilesAttached.Value); 时,它只给出附件的名称。

我不知道如何使用 delphi 在该字段中插入/保存文件。

最佳答案

找到使用 .accdb 附件字段的 VBA/C# 示例似乎并不难,这些示例应该相当容易地转换为 Delphi。然而,事实证明,要找到 a) 没有误解附件字段实际是什么以及 b) 实际有效的东西比我想象的要困难。跳到下面的更新部分。

例如,谷歌搜索

accdb create attachment in vba

提供了许多点击率,包括这个

http://sourcedaddy.com/ms-access/working-with-attachment-fields.html

您可以尝试将其作为起点。它使用 MS DAO 对象,并包含用于将文件存储到附件字段并访问它们的简单代码。您需要使用 IDE 的导入类型库

为 DAO 类型库创建一个 Delphi 包装器单元(如果您还没有)

如果您更喜欢基于 ADO 的东西,您可以看看

https://www.codeproject.com/Questions/843001/Handling-fields-of-Attachment-type-in-MS-Access-us

更新请参阅此线程中“aspen”(日期= 4/11/2012 07:18 am)帖子中的函数OpenFirstAttachmentAsTempFile

https://access-programmers.co.uk/forums/showthread.php?t=224112&page=2

这显示了从附件字段中提取文件的明显成功尝试(该线程还包含对此函数进行编码的其他几次尝试)。

特别注意这一行

Set rstChild = rstCurrent.Fields(strFieldName).Value ' the .Value for a complex field returns the underlying recordset

这意味着附件字段的Value可以返回包含附加文件的记录集。

据推测,将 DAO 类型库的最新版本导入 Delphi 将允许一个 Delphi 应用程序执行相同的操作,然后可以对 rstChild 记录集进行逆向工程以了解如何在代码中填充此字段。不过我还没有这么做。

关于MS Access 数据库中的 Delphi 和附件文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46011424/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com