|
为什么保存不了小图片到数据库?
各位大家好,我想请教大家一个问题:保存一个只有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) |
|
一、使用blob对象保存到数据库的时候,要设置连接对象为自动提交
SQLCA.AutoCommit=TRUE;
保存完毕后再改回来
SQLCA.AutoCommit=false
读取的时候也同理
二、insert into 、updateblob语句执行后,都检查一下SQLCA.SQLCODE的返回值,看看语句执行是否成功
三、SELECTBLOB语句执行完成后,也应该检查一下SQLCA.SQLCODE的返回值,确定一下读、写数据库是否成功
四、如果还是找不到原因,那么,你再判断一下读图片是否正确
messagebox("数据长度",len(emp_id_pic)) |
|
好的,真的非常谢谢您版主。
我先试试,这个论坛真好。 |
|
版主您好!
按您说的修改了程序,测试结果如下:
二、insert into 、updateblob语句执行后,都检查一下SQLCA.SQLCODE的返回值,看看语句执行是否成功
返回值:0
三、SELECTBLOB语句执行完成后,也应该检查一下SQLCA.SQLCODE的返回值,确定一下读、写数据库是否成功
返回值:0
四、如果还是找不到原因,那么,你再判断一下读图片是否正确
messagebox("数据长度",len(emp_id_pic))
长度:310
但运程序后还是无法显示图片,何解呢? |
| yf_DiNozzo | | 2008-7-20 23:51 |
|
| 数据库连接呢 |
|
楼主,检查向数据库里修改数据
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来检查是否修改成功 |
相关文章: 青春梦想--我与祖国共奋进 关于retrieve参数的问题 PB打印标签DLL,支持128码 PB9 + sql2000 开发,用windows什么系统好 如何筛选同一内容的最新记录?
Powered by 51CTO.COM
|