VFP中怎么保存和打开PDF文件

w568412 2012-09-10 10:45:29
我想将本地的PDF文件保存到SQL数据中,然后再从SQL读取打开此PDF文件。我采用了十豆三老师分享的方法
1、将图片文件用 Filetostr()转成字符A; 2、再用 Strconv("字符A",13)将字符A转成base64编码数据的字符B; 3、将字符B保存到SQL Server的Text类型字段或者Access的备注字段。
这个方法对不太大的PDF文件可以有效的保存和读取打开,但是我测试一个30M大小的文件时,出现了读取失败的问题,主要是这个函数Strconv报错,提示字符串太长不能容纳,保存到数据库这个步骤却没报错,搞不明白了?
我测试了Blob 类型字段的方法,但是这个不知道哪里不对,保存到SQL的步骤也没成功(不是文件大小的问题)。
我想请教还有其他更好或者不限制大小的保存、打开方法吗?
...全文
817 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
都市夜猫 2012-09-10
  • 打赏
  • 举报
回复
我一直用 vfp 的 blob 配合 sql server 的 Image 类型来保存这类二进制文件,没有发现有什么问题,你可以这样试试:

1. sql server 中新建一个 test 表,两个字段
   id    int   (not null / key)
fff image (null)

2. vfp 中,略去错误检查
   *-- 创建测试数据
create cursor t1 (id int, fff blob)
append blank
append memo fff from (getfile('pdf'))

*-- 保存到 sql server
hh = SQLStringConnect('Driver={SQL Server};Server=(Local);Database=test;Uid=sa;Pwd=连接口令')
? SqlExec(hh, 'insert into test (id, fff) values (1, ?fff)')
SQLDisconnect(hh)
use in t1

*-- 从 sql server 中取出另存
hh = SQLStringConnect('Driver={SQL Server};Server=(Local);Database=test;Uid=sa;Pwd=连接口令')
CursorSetProp("MapBinary", .t., 0)
? SqlExec(hh, 'select fff from test where id = 1', 't2')
SQLDisconnect(hh)
copy memo fff to c:\1.pdf


用 text 类型来保存二进制文件,就必须先转成 base64 编码,大小将增加 1/3,没必要
w568412 2012-09-10
  • 打赏
  • 举报
回复
非常感谢夜猫老师!确实可行的。
不过在运行过程中存在这么个问题,如果用存储过程来执行保存和读取操作,而不是直接用SQL语句,会存在存储过程的输出参数无法接收到,但数据已经正确保存的问题。
于2024年4月-2025年9月期间,研究团队在贵州习水国家级自然保护区制定39条样线,涵盖灌木林、常绿阔叶林、针叶林、常绿落叶阔叶混交林、针阔混交林等不同植被类型,每条样线分春夏秋冬4个季节采集样品,用真菌采集软件记录经纬度、海拔、采集地点、时间、生境等信息,使用佳能相机(R6 mark Ⅱ)对大型真菌进行拍照,并采集标本,标本存放于贵州省生物研究所大型真菌标本馆(HGAMF)。 通过形态学初步鉴定,结合分子生物学最终鉴定,参考已]报道的国毒蘑菇名录开展毒蘑菇的认定。 调查到保护区内有毒真菌7目25科64种,导致毒的主要类型有急性肾衰竭型、神经精神型和胃肠炎型。最终形成贵州习水国家级自然保护区大型有毒真菌图片数据集,它由以下2个部分组成。 (1)附件1包含78张原始照片(.JPG),照片名字包括了大型有毒真菌的拉丁名和文名,若无文名的直接用拉丁名。 (2)附件2是一个压缩文件,包含了2张工作表,其一张表是大型有毒真菌39条样线的信息,另一张表是大型有毒真菌的毒类型。 照片采用佳能相机R6 mark Ⅱ拍摄,物种鉴定通过多种文献核实,并经两位以上专家鉴定确认。该数据集可为研究地及周边的普通人识别有毒大型真菌提供参考,通过及时的图片对比,能有效避免误采误食大型有毒真菌,同时为因误食大型真菌可能引发的身体损伤进行了总结,能为患者及时治疗提供参考。

2,749

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧