我的环境是:window server 2000 ,oracle 8.0.5,delphi 6.0 pack 2.
数据库表中有blob字段,我试了BDE及ADO都出现错误(不支持的接口或是不支持的数据类型),
所以没办法,只能把表blob类型改为long raw类型,使用ado->odbc(数据源,微软驱动)->oracle.
可以使用。
下载了oracle ole db for 8.1.7,装不上.
究竟如何解决呢?
oracle中不能在表有数据的时候把blob字段类型转为long raw类型,有什么办法呢?

解决方案 »

  1.   

    看看这个贴子,对你可能有帮助
    http://www.csdn.net/expert/topic/960/960982.xml?temp=.7765467
    -----------------------------------------------------
    在用Delphi进行数据库编程,使用Blob字段时,经常会遇到一些问题。我把使用Blob时的常见问题总结了一下,在这里和大家一起分享和探讨:  
     
    1.如何对Blob字段进行读写?  
     
           Blob的读写一般通过流,也可以直接从文件读出数据和保存数据到文件。  
           
           写入Blob的代码如下:  
     
               Query.SQL.Clear;  
               Query.Sql.Add('INSERT  INTO  表名  (...,Blob字段名,...)  VALUES  (...,:Blob,...)');      
               Query.ParamByName(Blob)).LoadFromStream(Stream);  
               //还可以用方法LoadFromFile()直接保存文件中的数据  
               Query.SQL.ExecSQL;  
     
           从字段读出代码如下:  
                 
               Query.Close;  
               Query.SQL.Clear;  
               Query.SQL.Add('SELECT  ...,Blob字段名,...  FROM  表名  WHERE  ...');  
               Query.Open;  
               TBlobField(Query.SQL.FieldByName(Blob字段名)).SaveToStream(Stream);  
               //或(Query.ParamByName(Blob字段名)  as  TBlobFiedl).SaveToStream(Stream);  
               //或Stream=TBlobFieldStream.Create(TBlobField(Query.SQL.FieldByName(Blob字段名)),bmRead);  
               //保存到文件用SaveToFile(文件名)