社区
PowerBuilder
帖子详情
读写image字段
rosytree
2000-07-31 09:28:00
我发现用updateblob语句无法将数据写入image字段,程序也没有任何错误提示,我检查过所传的blob变量,是正确的,请各位大虾指教,感激不尽。
...全文
241
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,079
社区成员
66,439
社区内容
发帖
与我相关
我的任务
PowerBuilder
PowerBuilder 相关问题讨论
复制链接
扫一扫
分享
社区描述
PowerBuilder 相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章