使用BLOB向SQL中存储WAV文件时的问题?(50分)

  • 主题发起人 主题发起人 xjhuo
  • 开始时间 开始时间
X

xjhuo

Unregistered / Unconfirmed
GUEST, unregistred user!
我在将WAV文件以TBLOBFIELD类型存入SQL时,发现对于小文件是对的,而对于稍微大点儿的文件就出错,出错信息为“INVALID BLOB LENGTH”,程序如下:
。。。
OpenDialog1.Execute;
Table1.Close;
Table1.Open;
Table1.Edit;
Table1.FieldByName('Name').AsString:='Shen';
Table1.FieldByName('Sex').AsString:='MA';
mem:=TMemoryStream.Create;
mem.LoadFromFile(OpenDialog1.FileName);
TBlobField(Table1.Fields[2]).LoadFromStream(mem);
//或TBlobField(Table1.Fields2]).LoadFromFile
//(OpenDialog1.FileName)也不对,出错信息同上,
希望能够尽快指教与我,具体点好吗?谢谢!这可是我的最后一点积蓄了,
若非不得已,也不会动用它!
 
我以前不是跟你说过了吗.
你的数据库中只存WAV文件的文件名,然后,把那个WAV文件放到
同一目录下去,什么问题都没有.
"相信我,没错的"
 
直接用TBlobField(Table1.FieldByName('xxx')).LoadFromFile(OpenDialog1.FileName)
应该是正确的,如果有错,请把错误信息贴出来
 
blob 的buffer太小了吧?
 
什么数据库?我用Interbase存1.2m的Bmp没问题!
 
不知道你用的什么数据库。我用paradox库
存放12M的wav文件。好象没有什么问题。也没有
改BDE的配置。
以前使用后台SQL SERVER6.0存放3M的JPEG时,
改过BDE配置,好象是blob size等字段。你改改看。
 
我插入第一条记录是可以的,但是当提交第二条记录时,
出现以下错误:
Non-blob column in table required to perform operation
WHY
(不好意思,xihuo,调试你的程序出现错误,所以借你的
宝地问一问)
 
1.free mem
2.post db
3.edit blob size if nessary
 
1、注意使用Update SQL时,能存的BLOB大小与BOLB CACHE大小有关。
2、你的程序中没有POST。
 
我也碰到同样问题,需要把Mpeg文件存到MSSQL70的Blob,如只存文件
名,存放文件的目录要共享,否则client端无法访问主机的文件,难以
进行权限控制,还不如直接存到blob字段,但ODBC for Sql,sqllink都不支持大于
1M的文件,听说bde501可解决这一问题,但需用sqllink而不能用ODbc.
 
存文件名的说法纯属无稽之谈,要是那样的话,根本就没有BLOB字段存在的意义了。
BLOB理论上可保存2G的数据,当然实际可保存的长度与机器有关,我实验过几十MB
的数据是可以的,但再大的就要难一些了,必须采用分段处理的方法,应该是可以
的,只是实际做起来复杂一些,用TTable或TQuery实在不行的话,直接用BDE的API
应该是能行的。
 
请您继续讨论,或结束该问题
 
我也碰到类似的问题,在用SQL Server 6.5时,出现Invalid Blob length,
请问一下:(不好意思)Blob Size 要多大可以支持1M的图象?
 
我用interbase的BLOB字段,储存1.4M的WORD文档都没问题。
不过大于2M的就有问题。
 
多人接受答案了。
 

Similar threads

后退
顶部