ASE15.0.3问题请教,在线等待,盼急回,感谢(数据库中保存超大文件,PB中无法使用SYC sybase ase),

Yellho 2011-06-17 08:26:37
现就问题说明如下:

我想把程序的升级文件保存在数据库中,方便各个客户端下载,文件转成blob保存在数据库中代码如下:

f_sys_fileto_blob方法如下

global function boolean f_sys_fileto_blob (string sfilename, ref blob sfilecontent);
Integer loops, i
Long flen, fnum, bytes, newpos
Blob readblob

SetPointer(HOURGLASS!)

IF Not FileExists(sfilename) THEN Return False
flen = FileLength(sfilename)
fnum = FileOpen(sfilename, STREAMMODE!, READ!, LOCKREAD!)

IF flen > 32766 THEN loops = ((flen - 1) / 32766) + 1 ELSE loops = 1

FOR i = 1 To loops
bytes = FileRead (fnum, readblob)
IF i = 1 THEN sfilecontent = readblob ELSE sfilecontent = sfilecontent + readblob
newpos = newpos + bytes
FileSeek (fnum, newpos, FROMBEGINNING!)
NEXT
FileClose(fnum)

Return True
end function


if f_sys_fileto_blob(filesname,tot_b) = false then
dw_file.SETITEM(i,2,'上传失败')
return 1
end if
messagebox('文件转成blob后长度',len(tot_b)) 此处得到的文件长度和要传的文件大小一致


delete from fileupdate where filename = :fname;
commit;
insert into fileupdate (bbh,filename) values (:ls_ver,:fname);
commit;
Sqlca.autocommit = true
updateblob fileupdate set filenr = :tot_b where filename = :fname;


if SQLCA.SQLCode = -1 then
dw_file.SETITEM(i,2,'上传失败')
MessageBox(gs_mess,SQLCA.SQLErrText,Information!)
return -1
else
dw_file.SETITEM(i,2,'上传成功')
commit;
end if
setnull(tot_b )

selectblob filenr into :tot_b from fileupdate where filename = :fname;
messagebox('文件保存数据中后长度',len(tot_b)) //此处得到的文件长度只的 32767
Sqlca.autocommit = false

如果文件大小小于32767 的话,可以保存在数据库中,也可以将数据库中的blob 读取,写成正确的文件,但文件超过32767就不行,请高手指点一下


我在PB11.5开发环境下,想用syc sybase ase 连接数据库,连接不成功 提示很多的 ?????????????????(在dsedit中是能ping成功的)

我在PB9开发环境下,想用syc sybase ase 连接数据库, 根本就不能new profile 提示未安装正确,但确实不知道怎么安装,不知道是不是版本高了的原因我的ASE用的15.0.3的开发版


PB9用syc sybase ase 专用连接如何连接ase15的数据库呢?要怎么安装请说明谢谢!
...全文
157 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
iihero 2012-03-19
  • 打赏
  • 举报
回复
用这个:
SQLCA.dbParm = "DBTextLimit = '1000000'"
再试试看
Yellho 2012-03-18
  • 打赏
  • 举报
回复
设置了还是一样的
  • 打赏
  • 举报
回复
不管使用什么接口来连接sybase数据库。在连接属性中设置每次读取text类型字段的最大长度set textsize 10000000

2,598

社区成员

发帖
与我相关
我的任务
社区描述
Sybase相关技术讨论区
社区管理员
  • Sybase社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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