背景:我们的产品包括一个文档管理系统,允许用户保存和检索各种文档类型(.PDF、.DOC、.JPG、.PNG、.TIF 等)。目前数据库中有一条记录存储文档信息,但文档本身存储在服务器的硬盘上。数据库记录包括磁盘文件名,以便可以检索和显示它。我们现在需要将所有文档迁移到数据库中。对于我们的一些客户来说,这可能意味着数千个单独的文档文件。我们知道将文档放在数据库中的优点和缺点,但仍然需要将它们迁移到数据库。
计划:我计划循环遍历包含所有文档信息的表。现在,每条记录都有一个新的空 BLOB 字段和一个用于保存文件扩展名的文本字段(以便我知道稍后如何显示它)。计划是在循环到下一个记录/文档时检索该文件并将其及其扩展名保存在新的 BLOB 字段中。
问题:到目前为止我读过的文章都是使用Streams来创建一个全新的记录。流的类型取决于文章(TMemoryStream、TFileStream、TBlobStream)。由于我已经有一条记录,因此我有兴趣了解填充 BLOB 字段的最佳方法。如果有人可以提供将这样的文档添加到 Firebird 数据库的 Delphi 代码示例,我将不胜感激。善待。我已经编码了很多年,但从未有机会使用 BLOB 流。
CreateBlobStream()
方法来访问现有记录的 BLOB 字段。您可以向该流写入任何您想要的内容。