我最近重新访问了一个工作应用程序。
我将文件存储在 MSSQL 数据库的文本字段中。我将它读入 ADOTable 并作为 TBlobfield 调用 Savetofile 将其写入磁盘上的文件。这一直有效。但是现在它只是保存一个 8 字节的文件而不是正确的文件。
我对以前发生过这种情况有一个模糊的记忆,想知道是否有人遇到过它并知道解决方案?我正在使用德尔福 7。
数据库中是否有任何变化(服务器/版本升级)?客户端机器(XP?Vista?)?调用 SaveToFile 方法时保存的是什么(可能文件只有 8 个字节)?该字段可以为空/空吗?
我建议不要针对基于集合的 RDBMS(MSSQL、Oracle 等)使用基于表的组件(TTable、TADOTable 等),使用 TADODataSet 并确保应用了所有 D7/ADO 补丁。
祝你好运
几年前(旧版本的 ado),如果 blob 字段不是查询中的最后一个字段,就会出现问题。我不知道这仍然是真的
这个问题是我没有应用 Delphi 7 Update 1 直接导致的。
这是 Delphi 7 发布版本中的一个已知错误。