程序员家园论坛软件开发PowerBuilder 关于在PB中往SQL SERVER2000中插入图片问题

1  /  1  页   1 跳转 查看:197

关于在PB中往SQL SERVER2000中插入图片问题

关于在PB中往SQL SERVER2000中插入图片问题

一个关于在PB中往SQL SERVER2000中插入图片怎么操作:
    表:t_image(no int ,b image),其中no为自增型。要求是往数据库中插入10万张相同图片(主要用于数据库性能分析)。
    我是这样做的:
    string filename,filelen,filenum
    long looops,i,bytes
    blob total,b
    filename="e:\IMG_0182.JPG"//指定文件
    filelen=filelength(filename)//计算文件长度
    filenum=fileopen(filename,StreamMode!Read!)//读方式打开图片
    if filelen>32765 then 
        if mod(filelen,32765)=0 then  //一次只能读32765个字节
          loops=filelen/32765  //读取次数
        else
          loops=filelen/32765 +1
    else
        loops=1
   
    for i=1 to loops
        bytes=fileread(filenum,b)
        total=total+b
    next
    close(filename)
    //插入记录
    for i=1 to 100000
        insert into t_image(b)
        values(null);
    next
    //插入图片列
    for i=1 to 100000
      updateblob t_image  set b=:total  where no=:i;
    next
    commit;
   
    这样做就是特别慢!运行17个小时才插入24000条!
    有什么好的办法?我现在不想把图片放到数据库外的文件系统中。
 

回复:关于在PB中往SQL SERVER2000中插入图片问题

为啥不单独建张表来保存那个张图片呢?只保存一张就可以了啊
暂时没有想好
 

回复:关于在PB中往SQL SERVER2000中插入图片问题

谢谢版主。是这样的,我想做10万张图片的数据库性能分析,10万张图片难找,我就用同一张代替了。因此需要往数据库中插入10万张相同的图片。
 

回复 1F jis 的帖子

for i=1 to 100000
      updateblob t_image  set b=:total  where no=:i;
    next
这个 改一下
直接用
updateblob t_image  set b=:total 
“where no=:i;”条件去掉  10w行就全部保存相同的数据了

前提是 数据表必须有10W行数据
最后编辑1975_1009 最后编辑于 2008-10-19 10:35:27
 
1  /  1  页   1 跳转

版权所有 程序员家园论坛   Sitemap

Powered by Discuz!NT 2.1.202    Copyright © 2001-2008 Comsenz Inc.
Processed in 0.03125 second(s) , 3 queries. 浙ICP备07502118号
返顶部