老问题重谈,sqlserver2000下的image型数据,在PB的数据窗口中如何显示?欢迎参加讨论。

Oldman 2002-04-25 04:27:58
我现在在PB8下用SQLSERVER2000数据库,里面有image型数据,我现在用updateblob tablename set blobcolumn = blobvarible restofupdatestatement;语句成功地将BMP形式的数据存人了数据库中,用selectblob restofselectstatement;语句将BMP数据导出也一切正常,就是在PB的数据窗口控件下面的blob列中显示不出来。各位有经验的兄弟们,希望你们不惜鼠标和键盘,指点、指点一下我。不甚感激!
...全文
226 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
tianlinyi 2002-04-28
  • 打赏
  • 举报
回复
up
Oldman 2002-04-28
  • 打赏
  • 举报
回复
问题 可以说是解决了,我改用了ODBC连接,一切问题都没有了,而且也不用什么图片控件来转载出来,直接用blob列就可以显示出来了。
coolnan 2002-04-27
  • 打赏
  • 举报
回复
我在http://www.pdriver.com/上专门做了一个这样的例子,“在PB中对SQL SERVER数据库备份/恢复及照片存取”,你可以去下了看看http://www.pdriver.com/display.asp?key_id=1495。
anrong 2002-04-26
  • 打赏
  • 举报
回复
在数据窗口中加入一OLE对象!
Oldman 2002-04-26
  • 打赏
  • 举报
回复
首先谢谢各位!
to: killerdanny(danny@转职中...月夜惊心)
你的方法肯定可以,把数据读出来以后然后放入文件中,再将其取回,这样尽管烦琐了一点,但能够实现单个的显示功能,但当我要N条记录一块打印时,可能就不是那么方便了,若是能够将图片直接显示在ole database blob控件里头,我看只有这样才能够达到最佳效果,如果达到这个最佳效果?也就是说在检索时将图片一块检索出来分别显示在相对应的记录上,这个方法如何实现?
killerdanny 2002-04-26
  • 打赏
  • 举报
回复
blob emp_id_pic
string ls_path
int li_FileNum
blob temp
int n,i,ret
long start
SELECTBLOB photo INTO :emp_id_pic FROM attach
WHERE member_id =:member_id;
if isnull(emp_id_pic) then
emp_id_pic=blob('')
end if
ls_path= "c:\ "+member_id+ ".bmp "
li_FileNum = FileOpen(ls_path, streammode!,Write!, LockReadWrite!,Replace!)
if Li_filenum <0 then
messagebox( "错误 ", "创建相片文件时发生错误 ")
return
end if
n=len(emp_id_pic)/32765+1
for i=1 to n
start=(i - 1)*32765+1
temp=blobmid(emp_id_pic,start,32765)
if isnull(temp) or temp=blob('') then
exit
end if
ret=FileWrite(Li_FileNum, temp)
IF ret <0 THEN
messagebox( "错误 ", "写相片文件时发生错误 ")
fileclose(li_filenum)
return
end if
next
fileclose(li_filenum)
dw_2.modify( "p_1.filename=' "+ls_path+ "' ")
jjweid 2002-04-26
  • 打赏
  • 举报
回复
pb例子中
某个字段好像存储 图片的文件名XXX.bmp 这样也可以显示图片,为什么?
feixuepiaopiao 2002-04-26
  • 打赏
  • 举报
回复
举一个简单的例子
定义一个共享变量
blob pic
selectblob picture
into: pic
where 你需要的条件
SetPicture(p_1,pic)
Oldman 2002-04-26
  • 打赏
  • 举报
回复
我的ole database blob 列是这样配置的,
client class:datawindow,client name:unitiled,
table: employdes,
large binary/text columns: 照片:blob,
key clause: 姓名=:姓名,
file template:(空),
ole class description :paint.picture:位图图象,
client name expression: "object"
注:我用的数据库是中文字段。
我生成的数据窗口对象是quick select形式生成的,不知这里头有什么问题,每次当我调用dw_1.settransobject(sqlca)
dw_1.retrieve()时,总是出现“Select error:尝试启动新的SQL SERVER 操作,结果未决。”这个错误,在里面的blob列上双击时,不是弹出带有picture的绘图板,而是出现一个空白的绘图板,怎样才能使他在检索时不出现错误,在双击blob列时弹出的绘图板中出现的是存入的picture,而不是空白的绘图板?
Oldman 2002-04-26
  • 打赏
  • 举报
回复
我现在已经把PICTURE数据存入了数据库中,我在用quick select制作的数据窗口控件也已经加入了blob列,但我每次检索时就弹出错误窗口说:Select error:尝试启动新的SQL SERVER 操作,结果未决。
而且检索出来就只有一条记录,blob列可定是空的,当我在blob列上双击时,弹出的绘图窗口中是空白,没有显示出我存进去的图片,但当我用selectblob 照片 into :textl from employdes where 姓名 = :姓名;将数据检索到texl中后,然后放入数据窗口外面的ole控件上却能将图片给显示出来,怎样才能使他不出现那个错误,而且双击之后就能在绘图窗口中显示出保存的图片?
左格 2002-04-26
  • 打赏
  • 举报
回复
在pb的数据窗口中有一个OLE DB的控件可以满足你的要求。但是它是不能显示在数据窗口中的。他要双击该列之后才显示图片。如果你真想同时看到文字和图片,就必须使用与killerdanny(danny@转职中...月夜惊心)方法类似的去做,虽然数据窗口很强大,但是也有它的缺陷。
Oldman 2002-04-25
  • 打赏
  • 举报
回复
但我的图片要随数据窗口一块打印出来啊,而且是随着对应的记录啊,怎么办?
lcong 2002-04-25
  • 打赏
  • 举报
回复
做一个留有空地的数据窗口,然后在窗口中放入数据窗口,然后创建一个图片控件,用SETPICTURE或者用OLE显示都可以以假乱真.
Oldman 2002-04-25
  • 打赏
  • 举报
回复
这样好象是把图片给放到了外面的控件上,我当时就是这样弄的,我现在想把他显示在数据窗口里头,在数据窗口里头怎样用这个setpicture函数啊?
jaguarcts 2002-04-25
  • 打赏
  • 举报
回复
blob lb_bmp
selectblob img into :lb_bmp from tab where ?;
p_1.setpicture(lb_bmp)
Oldman 2002-04-25
  • 打赏
  • 举报
回复
但是我的图片是以image形式存放在数据库里头的,乍办?

jaguarcts 2002-04-25
  • 打赏
  • 举报
回复
放一个图片控件到窗口中,
p_1.setpicture(lb_bmp)

1,079

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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