请问 Oracle数据库中的long RAW 的数据类型的是否有长度限制?急!!!(200分)

  • 主题发起人 主题发起人 Norrin
  • 开始时间 开始时间
N

Norrin

Unregistered / Unconfirmed
GUEST, unregistred user!
本人需要在数据库中存储对象文件,Oracle数据库中采用的对应数据类型是
 Long Raw ,但是当对象数据超出一定长度时,出现"Invalid Blob Length";
后来本人将数据类型改为 Blob但是用Ttable,TQuery都不能打开该表,
报"General SQl Err";
请问:1:Oracle数据库中的long RAW 的数据类型的是否有长度限制?
2:如何在的Delphi中打开 Blob数据类型的字段
3:是否有其他的变通办法?
急!!!
先谢谢!!

  
  
 
我使用的是Delphi 4.0
 
1、Oracle数据库中的long RAW 的数据类型的是否有长度限制? 4G
2、用BLOB流,
3、偶用asvariant 赋值(空的也要赋''),还没见过其他人这么用的
 
1,不知道,只是在用的时候没有装不下的情况
2,可以用流模式,delplhi中的流模式是没有限制的,肯定可以。
3,不知道,只用过流模式打开。
 
我载入的队家就是用TblobStream载入的
当我的对象大于1M左右就出现了“Invalid Blob Length”错误!!
是不是数据库在建表时有什么设置?我的代码如下:

procedure TFileComponent{我的对象}.SaveToTableField(aField: TBlobField);
var iBlob:TBlobStream;
iWriter: TWriter;
begin
iBlob:=TBlobStream.Create(aField,bmReadWrite);
try
iWriter := TWriter.Create(iBlob, 8192);
WriteData(iWriter);{对象写入的方法}
finally
iWriter.Free;
end;
iBlob.Free;
end;
//在引用aField的Table提交时报上述错误!!

请指点!!
 
long raw的限制应该和long是相同的吧?没有到G级别。而且在高版本的oracle中所有大
容量的数据存储都建议使用blob字段来实现。blob的最大容量是4G。
我一般是用table控件实现对有blob字段的数据表的操作。对于Tblobfield有两个属性可以
利用:loadfromfile,savetofile。无论是table还是query,都不能直接对blob字段进行
某些操作,需要进行转换。
在我的应用过程中,只是发现有blob字段的数据表必须要有PK,其它的没发现有什么限制。
对了,BDE中的设置参数根据需要进行调整。
 
我已经发现为什么文件大小受到限制了。原因是BDE中的Blob size的大小在32~1000之间
所以当文件大于1MB时BDE不能完成操作了。现在请问谁有较好的Oracle数据库引擎控件,
(当然Blob size不受引擎的限制,:))最好带源码。
 
BDE中的参数不会只有那么小的,可以将它改大。

如果另外找oracle数据库引擎,不外乎oracle odbc, oracle ado,这两个都是oracle自身
的产品。
记得在论坛中有人推荐过odac,是第三方的产品,我没用过,你也可以找来试试看。
 
Odac我知道但没有源码;
bde的参数值是bde的在线帮助说的,不会错的

 
可以参考 DOA ,它用的是OCI接口
 
谢谢大家!
问题已经解决;没招了只有使用Odac控件来解决问题。;)
 
long raw 要改dbe中case size否則只有32k
 
后退
顶部