blob的奇怪现象(50分)

  • 主题发起人 主题发起人 healthy
  • 开始时间 开始时间
H

healthy

Unregistered / Unconfirmed
GUEST, unregistred user!
我用如下方法将一word文档存入blob字段,并且在dbmemo中检测到数据,但程序一旦退出重
进,数据就不再存在,why?难道在内存中没有提交,但我没检查到设置上的错误啊。
help....我没有时间了,请求帮助。
table1.Insert;
stream1:=Tmemorystream.Create;
stream1.LoadFromFile('d:/uuu/luck.doc');
stream1.Position:=0;
Tblobfield(table1.FieldByName('docfield')).loadfromstream(stream1);
try
table1.Post;
finally
begin
stream1.Free;

end
 
试试这个过程
Table1.CommitUpdates;
 
还是不行,因为我的bde版本问题,数据库连接使用的是下载控件zeodbo,好象
与事物控制有关,不知谁用过此控件,多多指教。奇怪的是普通字段的存取没有
任何问题,而一遇到blob字段,就出怪招,不管插入多少条记录,当时显示一切
正常,但程序一旦退出重进,除了最后一条记录仍然正确,其他记录的blob统统为
空。???
 
我怀疑是zeos控件的使用出了问题,哪位仁兄用过,请指点12,主要是里面的
zorasqltransact不会使用。
 
找到问题的根源了,主要是zeosdb控件和普通的bde控件使用上有所不同,用zeosdb控件
可以正常将记录写入缓存中,但从缓存提交到数据库中,就会出错,不知哪位朋友用过
此控件,请指点迷津!
 
blob不是万能的,連JPEG都不能放。
 
你说的这句话好象没有什么依据吧
 
你用的是什么类型的数据库?
 
SQL server提供了三种二进制数据类型:binary、varbinary、image。
binary[(n)]为定长数据,数据长度为n+4,n的最大值为8000
varbinary[(n)]为不定长数据,数据长度为n+4,n的最大值为8000
image也为不定长数据,但它的最大长度为(2^31)-1字节。
所以你用binary不能成功。
改为image字段。
 
如果是采用bde联数据库好像也有容量限制。
 
在Oracle9i中只要把blob当成普通字段那样对待就可以了,哪有这么复杂!
 

Similar threads

后退
顶部