文本版|topic 高级搜索
   名人堂 帮助 论坛制度 意见反馈 | 首页 博客 周新贴 专题 求职 读书
RSS 底部
 
社区导航: 专家门诊   网络技术   操作系统   数据库   程序设计   系统应用   考试认证   CIO及信息化   站长交流   综合交流   下载基地  51CTO产品服务 设为首页 | 收藏本站
51CTO技术论坛» PowerBuilder » 为什么保存不了小图片到数据库?       [ 打印]  [ 订阅]  [ 收藏]  [ 推荐给朋友]   [ 本帖文本页]

论坛跳转:
     
标题: 为什么保存不了小图片到数据库?  ( 查看:336  回复:6 )   
 该主题悬赏的20无忧币已被全部领完 
 
pengyunan
新新人类  点击可查看详细



帖子 5
精华 0
无忧币 12
积分 5
阅读权限 20
注册日期 2008-7-7
最后登录 2008-8-24 离线

[查看资料]  [发短消息]  [Blog
       
发表于:2008-7-8 20:55   标题:为什么保存不了小图片到数据库?
上一帖 |
各位大家好,我想请教大家一个问题:保存一个只有7K的图片到数据库里,但却保存不了,何解?
用的是PB6.5和SQL Server2000
数据库里用的字段类型是:image
因为图片小,只要读一次图片文件就可以了,所以我没有写判断语句。

代码如下:
1、保存按钮click事件:
long ll_handle
blob emp_id_pic
string ls_dwo = "111"
ll_handle = fileopen("test.bmp" ,StreamMode!)
fileread(ll_handle,emp_id_pic)
fileclose(ll_handle)
messagebox("",string(emp_id_pic))
insert into u_test (u_carid) values (:ls_dwo);
UPDATEBLOB u_test set u_Memo = :emp_id_pic where u_carid = :ls_dwo;
commit;

2、读取按钮click事件:
string ls_temp
blob temp
ls_temp = "111"
selectblob u_Memo into :temp from u_test where u_carid = :ls_temp;
p_1.SetPicture(temp)



论坛活动:测测你对IT技术大会的了解指数(赠微软礼品、无忧币)
2008-7-8 20:551楼
[ 顶部 ]
 
pengyunan
新新人类  点击可查看详细



帖子 5
精华 0
无忧币 12
积分 5
阅读权限 20
注册日期 2008-7-7
最后登录 2008-8-24 离线

[查看资料]  [发短消息]  [Blog
       
发表于:2008-7-8 23:06  ,被系统奖励 4 点无忧币
请各位指教一下是哪里出错了,谢谢。



论坛活动:测测你对IT技术大会的了解指数(赠微软礼品、无忧币)
2008-7-8 23:062楼
[ 顶部 ]
 
ribut9225
主版主  点击可查看详细


开坛元老   内阁大臣   诚信兄弟   主版主专用   巨蟹座  
帖子 3110
精华 1
无忧币 5981
积分 4100
阅读权限 150
来自 (保密)
注册日期 2006-6-22
最后登录 2008-10-8 在线

[查看资料]  [发短消息]  [Blog
  QQ       
发表于:2008-7-9 08:32  ,被系统奖励 4 点无忧币
一、使用blob对象保存到数据库的时候,要设置连接对象为自动提交
SQLCA.AutoCommit=TRUE;
保存完毕后再改回来
SQLCA.AutoCommit=false

读取的时候也同理

二、insert into 、updateblob语句执行后,都检查一下SQLCA.SQLCODE的返回值,看看语句执行是否成功
三、SELECTBLOB语句执行完成后,也应该检查一下SQLCA.SQLCODE的返回值,确定一下读、写数据库是否成功

四、如果还是找不到原因,那么,你再判断一下读图片是否正确
messagebox("数据长度",len(emp_id_pic))



用户必读,51CTO积分系统调整通知
2008-7-9 08:323楼
[ 顶部 ]
 
pengyunan
新新人类  点击可查看详细



帖子 5
精华 0
无忧币 12
积分 5
阅读权限 20
注册日期 2008-7-7
最后登录 2008-8-24 离线

[查看资料]  [发短消息]  [Blog
       
发表于:2008-7-9 13:11  ,被系统奖励 4 点无忧币
好的,真的非常谢谢您版主。
我先试试,这个论坛真好。



论坛活动:测测你对IT技术大会的了解指数(赠微软礼品、无忧币)
2008-7-9 13:114楼
[ 顶部 ]
 
pengyunan
新新人类  点击可查看详细



帖子 5
精华 0
无忧币 12
积分 5
阅读权限 20
注册日期 2008-7-7
最后登录 2008-8-24 离线

[查看资料]  [发短消息]  [Blog
       
发表于:2008-7-9 13:33  ,被系统奖励 4 点无忧币
版主您好!
按您说的修改了程序,测试结果如下:
二、insert into 、updateblob语句执行后,都检查一下SQLCA.SQLCODE的返回值,看看语句执行是否成功
返回值:0

三、SELECTBLOB语句执行完成后,也应该检查一下SQLCA.SQLCODE的返回值,确定一下读、写数据库是否成功
返回值:0

四、如果还是找不到原因,那么,你再判断一下读图片是否正确
messagebox("数据长度",len(emp_id_pic))
长度:310

但运程序后还是无法显示图片,何解呢?



论坛活动:测测你对IT技术大会的了解指数(赠微软礼品、无忧币)
2008-7-9 13:335楼
[ 顶部 ]
 
yf_DiNozzo
新新人类  点击可查看详细



帖子 1
精华 0
无忧币 10
积分 1
阅读权限 20
注册日期 2008-7-21
最后登录 2008-7-21 离线

[查看资料]  [发短消息]  [Blog
       
发表于:2008-7-21 07:51 
数据库连接呢



论坛活动:测测你对IT技术大会的了解指数(赠微软礼品、无忧币)
2008-7-21 07:516楼
[ 顶部 ]
 
ribut9225
主版主  点击可查看详细


开坛元老   内阁大臣   诚信兄弟   主版主专用   巨蟹座  
帖子 3110
精华 1
无忧币 5981
积分 4100
阅读权限 150
来自 (保密)
注册日期 2006-6-22
最后登录 2008-10-8 在线

[查看资料]  [发短消息]  [Blog
  QQ       
发表于:2008-7-21 08:01  ,被系统奖励 4 点无忧币
楼主,检查向数据库里修改数据
insert into .......  //新增数据
if sqlca.sqlcode<>0 then
    messagebox("提示","新增数据失败")
   rollback;
else
      //修改数据
      updateblob 表名  set ...........
      if sqlca.sqlNrow=0 then
          messagebox("提示","保存数据失败")
          rollback;
      else
          commit;
          messagebox("提示","保存数据完毕")
      end if
end if


update语句,是用sqlNrow来检查是否修改成功



用户必读,51CTO积分系统调整通知
2008-7-21 08:017楼
[ 顶部 ]
     
论坛跳转:  

| | |

| | |

| | |

标记已读 · 删除论坛Cookies · 文本版 · WAP
 
| 诚征版主 | 版主堂 | 意见建议 | 大史记 | 论坛地图
Copyright©2005-2008 51CTO.COM  Powered by Discuz!
本论坛言论纯属发布者个人意见,不代表51CTO网站立场!如有疑义,请与管理员联系。
京ICP备05051492号