不能这样用吧,你应该使用TBlobStream来存取啊。

解决方案 »

  1.   

    读:
    TBlobField * pField=(TBlobField *)pQuery->FieldByName("Image");
    TBlobStream * pmem=new TBlobStream(pField,bmRead);
    pmem->Seek(0,soFromBeginning);
    Graphics::TBitmap * pBitmap=new Graphics::TBitmap();
    pBitmap->LoadFromStream(pmem);
    Image1->Picture->Assign(pBitmap);
    delete pBitmap;
    delete pmem;
    写:
    TBlobField * pField=(TBlobField *)pQuery->FieldByName("Image");
    TBlobStream * pmem=new TBlobStream(pField,bmWrite);
    pmem->Seek(0,soFromBeginning);
    Graphics::TBitmap * pBitmap=new Graphics::TBitmap();
    pBitmap->Assign(Image1->Picture->Graphic);
    pBitmap->SaveToStream(pmem);
    delete pBitmap;
    delete pmem;注意:一定要用此方法进行读写,因为实际上它是以二进制流的方式存入数据库!
      

  2.   

    to  hank
      是C++还是DELPHI?我只懂一点DELPHI!请再指教。谢谢
        
      

  3.   

    使用您的语句,我修改 SQL Server 的数据,
    没有见到有什么异常情况,我是在win98下试的。不知你使用时出现什么信息?你用什么数据库?
      

  4.   

    To jingpingyi
      我使用的是WIN98,DELPHI5,SQLSERVER7,我用INSERT加入图片时没有出错,但用UPDATE时且没有存入数据库,既然运行了没有错误,那可能是我其它方面出了错误,我再试试。
    To hank
      我刚才用你的方法在DELPHI中试了下,可以,但只可以用数据集控件来更新数据,而我想的是用SQL语言来更新数据,你的方法让我学到了如何使用数所流,谢谢!
        我是一个刚上CSDN不久的菜鸟,希望和各位交个朋友,共同进步!!!
        Email:[email protected]
      

  5.   

    补充:
        我使用UPDATE时程序就一直忙光标显示为SQL忙,最后只有CTRL+ALT+DEL,不知是什么原因??。