社区
PowerBuilder
帖子详情
读写image字段
rosytree
2000-07-31 09:28:00
我发现用updateblob语句无法将数据写入image字段,程序也没有任何错误提示,我检查过所传的blob变量,是正确的,请各位大虾指教,感激不尽。
...全文
233
8
打赏
收藏
读写image字段
我发现用updateblob语句无法将数据写入image字段,程序也没有任何错误提示,我检查过所传的blob变量,是正确的,请各位大虾指教,感激不尽。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
viv_wangsc
2000-12-23
打赏
举报
回复
此外,SQLSERVER7使用blob语句好象有问题,需要到www.sybase.com.cn下载新的for sql7的pb6.5的直连程序
下面是我使用blob的一些语句,希望对你有参考:
blob lb_file,lb_tmp
long ll_flen, ll_bytes_read, ll_new_pos
integer li_fnum, li_loops, li_i
openWithParm(w_pub_wait,'正在上传版本到服务器,上传文件:['+ as_file +']请稍侯!')
//取文件长度
ll_flen = FileLength(as_file)
if ll_flen<0 then return -1
//因为一次最多只能读出32765个字节,所以需要计算重复读的次数
IF ll_flen > 32765 THEN
IF Mod(ll_flen, 32765) = 0 THEN
li_loops = ll_flen/32765
ELSE
li_loops = (ll_flen/32765) + 1
END IF
ELSE
li_loops = 1
END IF
//读取文件
ll_new_pos = 1
li_fnum = FileOpen(as_file ,StreamMode!)
for li_i = 1 to li_loops
ll_bytes_read = FileRead(li_fnum, lb_tmp)
lb_file = lb_file + lb_tmp
next
FileClose(li_fnum)
//更新数据库中的文件清单
UPDATEBLOB wh_wjb SET wjnr= :lb_file
WHERE wjmc=:as_file;
if sqlca.sqlcode<>0 then
rollback;
return -1
end if
commit;
close(w_pub_wait)
return 1
michaelzhang
2000-12-23
打赏
举报
回复
没错,长度问题。同意wwwunix。
romance_zhang
2000-12-23
打赏
举报
回复
试试qianhaiyuan的方法。
selectblob、updateblob的操作结果无法通过sqlca.sqlcode判断,要判断sqlnrows=1测试是否成功。
qianhaiyuan
2000-12-11
打赏
举报
回复
用的是MS SQL Server 7吗?别忘了SQL Server数据库要:
sqlca.autocommit=True
UpdateBlob ......
sqlca.autocommit=false
MHB
2000-12-09
打赏
举报
回复
你用的一定是 MS SQL Server 7 ,是PB6.5 或 PB6 的直连 DLL 有Bug, 请下载新的直连程序!
PB7 就没这个问题。
mingjob
2000-11-09
打赏
举报
回复
pb内嵌的fileread()最多函数每次最多只能读出32,765 bytes大小的文件,所以估计你用updateblob语句无法将数据写入image字段是因为这个问题。你可以在使用fileread()函数之前用FileLength()函数获得文件大小,再用文件大小除以32765可以得到一个整数,用此整数作为你的循环次数,循环读出你要插入的图片文件即可。你可以看看下面的例程:
//定义使用到的变量
string docname, named, ls_filepath
integer value, fh ,id, li_FileNum, loops, i
long flen, bytes_read, new_pos, ll_filesize
blob b, tot_b, Emp_pic,Emp_pic_sel
//
value = GetFileOpenName("Select Picture File", &
+ docname, named, "jpg", &
+ "Bmp Files (*.BMP),*.BMP," &
+ "Jpg Files (*.JPG),*.jpg")
// Set a wait cursor
SetPointer(HourGlass!)
// Get the file length, and open the file
IF value = 1 THEN
flen = FileLength(docname)
li_FileNum = FileOpen(docname, &
StreamMode!, Read!, LockRead!)
// Determine how many times to call FileRead
IF li_FileNum <> -1 THEN
IF flen > 32765 THEN
IF Mod(flen, 32765) = 0 THEN
loops = flen/32765
ELSE
loops = (flen/32765) + 1
END IF
ELSE
loops = 1
END IF
END IF
// Read the file
new_pos = 1
FOR i = 1 to loops
bytes_read = FileRead(li_FileNum, b)
tot_b = tot_b + b
NEXT
FileClose(li_FileNum)
Emp_pic = tot_b
//更新数据库图片信息
UPDATEBLOB game_field SET image = :Emp_pic WHERE id = : id;
//判断往数据库中插入图片是否成功
IF (sqlca.sqlcode = 0) THEN
messagebox("提示","插入图片成功!")
ELSE
messagebox("提示","插入图片失败!", Exclamation!)
return
END IF
祝你好运!
唏嘘的猪肉贩
2000-11-08
打赏
举报
回复
关心
wwwunix
2000-08-08
打赏
举报
回复
要用循环,每次读入32K字节,然后将每次读入的32K字节合成为一个大的blob就可以了。
C# 对SqlServer中
Image
字段
的
读写
(例子)
C# 对SqlServer中
Image
字段
的
读写
的思路是将图片转换为二进制在向数据库写.
python
读写
sqlserver
image
字段
python 通过adodbapi
读写
sqlserver
image
字段
类型。
MaxScale 实现 MySQL
读写
分离与负载均衡
Re: MaxScale 实现 MySQL
读写
分离与负载均衡 ==================================== # MaxScale作用 配置好了MySQL的主从复制结构后,能够实现
读写
分离,把读操作分散到slave服务器中,并且对多个slave服务器能...
C#
读写
SQL数据库
Image
字段
C#
读写
SQL数据库
Image
字段
包括
Image
类型的输出输入
delphi
读写
sqlserver二进制
字段
image
使用delphi
读写
sqlserver中
image
字段
,可以读取dmp,jpg,gif等格式的图片,至于二进制文件没有尝试过。
PowerBuilder
1,075
社区成员
66,437
社区内容
发帖
与我相关
我的任务
PowerBuilder
PowerBuilder 相关问题讨论
复制链接
扫一扫
分享
社区描述
PowerBuilder 相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章