为什么报'Blob not open'?(100分)

  • 主题发起人 主题发起人 D_LOVER
  • 开始时间 开始时间
D

D_LOVER

Unregistered / Unconfirmed
GUEST, unregistred user!
stream:=TBlobStream.Create(BlobField,bmRead);
RichEdit.Lines.LoadFromStream(stream)....执行此句时报'Blob not Open',为什么?

请多多帮助!
 
有两个可能,首先看一看你的数据表中的blob是不是已经被破坏了,因为blob字段中
存的只是一个指针,如果有一次打开错误的话,指针就有可能被改变了,然后无法OP,因为
指针指向的是一个不存在的区域。还有一个可能就是看看数据库的类型对blob的支持,以及
在delphi中指定的blob字段的类型是否有误?如果类型错误的话,也有可能发生此类情况。
 
RichEdit.Lines.LoadFromStream(stream)之后就要:stream.Free 看看
 
stream:=TBlobStream.Create(BlobField,bmRead);
*******
你是读还是写啊???
 
RichEdit.Lines.LoadFromStream(stream) 当然读就可以了
 
我用的是Paradox,程序是这样的:先将文本文件导入数据库的BLOBFIELD,然后再从数据库
读到Richedit显示,然后就出错了
导入时用过post,而且没有用Cache,
当重新运行程序时又正常了,真奇怪

非常感谢大家的热心帮忙,我是刚刚进入大富翁的,还请大家多多关照!
 
每导入一个文件都是这样
 
导入的代码也贴出来
 
try
stream1:=TFileStream.Create(@#@.txt,fmOpenRead);
stream2:=TBlobStream.Create(BlobField,bmWrite);
stream2.CopyFrom(stream1);
finally
stream2.free;
stream1.free;
end;
 
上面这段测试好像没问题
 
dateset.Append或者edit、dateset.Post在哪里?
 
谢谢,问题已经解决

原来是stream2.free的问题,他要放在Post之前

 

Similar threads

回复
0
查看
611
撒玛利亚人
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部