gpt4 book ai didi

mysql - Delphi - 将 TStringStream 保存到 SQL

转载 作者:行者123 更新时间:2023-11-29 01:30:45 30 4
gpt4 key购买 nike

我正在使用 Embarcadero Delphi XE2

我正在创建一个快速报告(它并不那么重要)并将其保存到 TStringStream

接下来只是为了测试,我将 TStringStream 输出到文件,PDF 可以很好地保存并打开。它的重量约为 40KB(更少)

接下来我需要做的是通过 INSERT 将此 PDF (TStringStream) 写入 SQL 数据库,我唯一要做的修改是将所有 "替换为 ""因为它在 "引号内,否则 SQL 不会'不工作。

奇怪的是,当我从数据库加载文件时,甚至选择长度(附件),其中附件是之前保存的 PDF 数据。当我这样做时,大小超过 50KB(某些 PDF 甚至大约 70KB),并且 PDF 完全是空白的。

我被迫为这个项目使用一个简单的 mysql 单元,它不允许某些 setParams 或通过我用谷歌搜索的 Blob 对象保存它。所以我需要一个关于这个简单方法的答案。将 TStringStream 插入 SQL 数据库。

数据库字段类型为MEDIUMBLOB

提前致谢!

jack

最佳答案

在您的数据库中定义一个 blob 字段,然后您可以使用 DataSet 组件的 CreateBlobStream() 方法获取可用于读取的 TStream 对象,以及根据需要写入 blob 字段。

您甚至可以完全消除 TMemoryStream,具体取决于它在其余代码中的使用方式。例如,如果您只是将 PDF 保存到临时 TMemoryStream 以将其存储在数据库中,那么您可以摆脱 TMemoryStream 并拥有 FastReport通过 CreateBlobStream() 返回的 TStream 将 PDF 直接保存到 blob 字段。

关于mysql - Delphi - 将 TStringStream 保存到 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13846195/

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