updateblob 保存一个6MB的XLS文件,提示成功,但实际没更新入数据库中

FrankLiang 2016-05-11 02:55:03
更新小一点文件,如2M, 就很正常。
这个6MB文件,我用了OLE DB的方式,自动保存入数据库也是可以的。说明数据库没有限制。
程式如下:
Blob lb_picture
string ls_file
ls_file="c:\abc\text6mb.xls"
setnull(lb_picture)
if f_2blob(lb_picture,ls_file)=1 then
else
messagebox("Stop","文件過大,不能處理,請再試!")
return
end if
connect using sqlca;
sqlca.autocommit=true
updateblob m_pre_head set PRD_ole=:lb_picture where lot_num=:lot_num using sqlca;
if sqlca.sqlcode=0 then
commit using sqlca;
messagebox("saved","已成功插入:"+so_num)
sqlca.autocommit=false
disconnect using sqlca;
else
rollback using sqlca;
sqlca.autocommit=false
disconnect using sqlca;
messagebox("","Sorry! 插入失敗!")
end if

插入6MB的文件,提示:已成功插入,但实际数据库没有内容。求指点一下,谢谢!
...全文
217 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
FrankLiang 2016-05-13
  • 打赏
  • 举报
回复
谢谢各位回复, 问题已找到原因! 原因是某个导入的文件不可,其它的文件都可updateblob, updateblob几十M的都可以。 看来不关updateblob的问题, 但这些文件都是正规的EXCLE文件,为何不能转blob后再保存到数据库?
FrankLiang 2016-05-13
  • 打赏
  • 举报
回复
我換了sqlnrows>0来判断,系统都是提示成功保存的。
updateBlob前,我len(blob),能得到真实大小,当超过5M时,就不能真正保存。而3M左右,则可以真正保存入数据库中。





引用 1 楼 HXDZLQ 的回复:
发现一个小问题:按PB的帮助说明,Updateblob应该检查SQLCA.SQLNRows而不用sqlca.sqlcode来判断是否更新成功。
FrankLiang 2016-05-13
  • 打赏
  • 举报
回复
我试过用FileRead()及FileReadex()两种方法读到BLOB中,LEN(BLOB)与实际文件大小是一致的。 很奇怪的如用FileReadex(),可以保存数据到数据库中。
引用 2 楼 lzp_lrp 的回复:
看一下F_2blob,怀疑问题出在那里了,有可以你读的内容不全,检查一下长度及内容,updateblob没听说有大小限制,几十M的文件保存是没有问题的
猎奇567 2016-05-12
  • 打赏
  • 举报
回复
发现一个小问题:按PB的帮助说明,Updateblob应该检查SQLCA.SQLNRows而不用sqlca.sqlcode来判断是否更新成功。
WorldMobile 2016-05-12
  • 打赏
  • 举报
回复
看一下F_2blob,怀疑问题出在那里了,有可以你读的内容不全,检查一下长度及内容,updateblob没听说有大小限制,几十M的文件保存是没有问题的

752

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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