最近公司要求做一个从INTERBASE数据库转换数据到ORACLE数据库的程序,偶刚开始做的还算顺利,可是今天做到一个转换图片文件的地方就完蛋了,原INTERBASE数据库里存放的是JPG格式的图片,字段的数据类型是BLOB的,ORACLE数据库我选的也是BLOB数据类型的字段,可是我用语句QUERY1.FIELDBYNAME('照片').assign(IBQUERY1.FIELDBYNAME('PHOTO'));执行后系统提示说BLOB---readonly什么什么的提示,请问这到底是怎么回事?
谢谢高手们了!

解决方案 »

  1.   

    你看看Query1的字段属性,或orcale数据库里是不是只读的啊,
      

  2.   

    应该不会吧!oracle库是我自己建的,别的字段都很正常,可以录入数据,可就是到了这个BLOB就出现这个错误!不过oracle库我建的很简单,是用DBAstadio建的!是不是这里有什么说道呢!?还是程序里的问题!?
      

  3.   

    Jpeg:TJPEGIMAGE;
    Ms:TMemoryStream;JPeg:=QUERY1.FIELDBYNAME('PHOTO')
    ms:=Tmemorystream.Create;
    jpeg.SaveToStream(ms);
    ms.Position:=0;
    TBlobField(FieldbyName('照片')).LoadFromStream(MS)或许可以,试试吧
      

  4.   

    to jiangshi99(僵尸先生99) 不要谢直接给分,,比较现实。。
      

  5.   

    用两个函数就可以了:getmem,getdata
      

  6.   

    QUERY1 ?
    你用的是bde 组件还是 ado组件?
    如果是bde 的就不能用query,要用table,
    如果是ado的,请query1.edit;后然后再执行那一条.
      

  7.   

    你用的是odbc把,改成bde就可以了