如果你肯吧文件发来,我帮你高定。其实就是通过文件(控件)转换。相信我吗?我保证可以高定。
并且将程序回复给你的 EMAIL

解决方案 »

  1.   

    TO:fangmins(尘莽)2G的数据库文件呢! 用EMAIL??
    程序吗,我不知道该怎么写! :(我告诉你数据库结构好了字段名         字段类型         长度
    no             Alpha            10
    pic1           Graphic
    pic2           Graphic
    pic3           Graphic
    pic4           Graphicpic1,pic2,pic3,pic4中的数据全是BMP格式的
    我现在要把那些数据转换成JPG格式的,这样可以节省大量的空间,我的想法是判断pic1,pic2,pic3,pic4中是否为空,如果为空,不处理,不为空,用流的形式取出数据转换成JPG,再存入一个不同名字,而字段相同的数据库中,循环!但是我不知道怎样写,望告之! 谢谢!
      

  2.   

    字段是否为空可以这样判断,
    (Table1.FieldByName('pic1') As TBlobField).IsNull
    转换可以这样,
    var
      bmp: TBitmap;
      jpg: TJPEGImage;
      stream1, stream2: TBlobStream;
    ....
    bmp := TBitmap.Create;
    jpg := TJPEDImage.Create;
    stream1 := TBlobStream.Create(Table1,FieldByName('pic1'), bmRead);
    stream2 := TBlobStream.Create(Table2.FieldByName('pic'), bmReadWrite);
    bmp.LoadFromStream(stream);
    jpg.Assign(bmp);
    jpg.SaveToStream(stream2);
    ....
    bmp.Free;
    jpg.Free;
    以上代码我是直接敲的,还没经过测试,你自己试一下吧。
      

  3.   

    好象存为jpg时,在数据库中不能有空的jpg字段,必须存一个空白的jpg图片,否则将来无法修改。(不一定是这样,记不太清了,只是给你提个醒,如果出问题。有个思路)。
      

  4.   

    老兄,我首先觉得你的数据库存开的就不对呀,
    你应开两个,一个专门存文件,另一个存数据库中的其它数据,并有一个主索引字段,存JPG文件中有一个字段和它对应。
    BMP转换为应JPG是很好转换的,等会儿我写上一个测试好的代码。
      

  5.   

    to:jin_fei(金飞)
    这是当然的啦,还不只是两个表呢,有N个,用了视图,为了速度,只选择了所必须的字段,no字段就是进行关联的主字段了,也是主索引。
    to:wk_knife(我爱北京天安门)
    我用的是TImage,将数据库中的数据读出后写入内存,然后在TImage中显示,那些图片不用修改的,只考虑增加,删除,我的打算先进行判断,如果数据库中为空,那么TImage中我就不显示,删除的话就先删除数据库中的信息,然后清内存,重新关闭和打开TImage,至于增加吗,测试早就通过了,所以应该没关系的。