请教高手老问题: 关于OLEContainer<==>Blob Field(150分)

  • 主题发起人 主题发起人 yvping
  • 开始时间 开始时间
Y

yvping

Unregistered / Unconfirmed
GUEST, unregistred user!
请教高手老问题: 关于OLEContainer&lt;==&gt;Blob Field
数据库是oracle7.3, DElphi是 D5, 程序分3部分,写入库BLOB字段是没有出错的,
总是在从库BLOB字段读到 OLEContainer中时报错: '%1已存在'.
请高手指点,送上150分以表谢意,(我水平较差,留下100分下次用,惭愧!惭愧!)

//1: 选择'文件' 到 'OLEContainer'
procedure TFormKblist.BtnSeleFileClick(Sender: TObject);
begin
if (OleContainerKbsm.State = osEmpty) or (MessageDlg('Delete current OLE object?', mtConfirmation, mbOkCancel, 0) = mrOk) then begin
OleContainerKbsm.InsertObjectDialog;
if (OleContainerKbsm.State &lt;&gt; osEmpty) then
OleContainerKbsm.doverb(1);
end;
end;

//2: 'OLEContainer' 存入数据库 Bolb字段'SM'
procedure TFormKblist.BtnSaveToDBClick(Sender: TObject);
var
OleStream : TMemoryStream;
begin
OleStream := TMemoryStream.Create;
try
OleContainerKbsm.SaveToStream(OleStream);
OleStream.Position := 0; //回零点
tbKBLIST.edit;
tBlobfield(tbKBLIST.FieldByName('sm')).LoadFromStream(OleStream);
tbKBLIST.Post ;
finally
OleStream.Free;
end;
end;

//3: 从数据库 Bolb字段'SM' 读数据到'OLEContainer'
procedure TFormKblist.BtnFetchBlobClick(Sender: TObject);
var
blobstream : tBlobStream;
OleStream : TMemoryStream;
begin
OleStream := TMemoryStream.Create;
OleStream.Position := 0;
try
blobstream := tBlobstream.create(tbKBLIST.FieldByName('sm') as tblobfield, bmread);
OleStream.copyfrom(blobstream, 0);
OleStream.Position := 0;
if (OleContainerKbsm.State = osEmpty) or (MessageDlg('Delete current OLE object?', mtConfirmation, mbOkCancel, 0) = mrOk) then begin
OleContainerKbsm.LoadFromStream(OleStream); //总是这一行报错: '%1已存在'
//OleContainerKbsm.DoVerb(1); //显示
end;
finally
OleStream.Free;
end;
end;
 
怎么没人理?我是真的搞不定!
 
这个问题已经有了一点眉目,今天我改用paradox7.0的表ole型字段
还是这段程序做了一下试验,过了。
我想,程序是没有什么问题,问题是出在数据库上。
请班主结束这个问题吧。

 
同问,同问
不过不知道你是否已经解决,如果解决,请贴出来,让小弟我参考参考!谢谢
 
已经解决,那段程序并没有什么错误,问题出在我用的是Oracle7.3的LONG型字段,后来我改用LONGRAW型
字段,就一切OK了。但我以前用PB7时,用LONG型是可以的,不过很不稳定,经常在WORD下打不开。
 
继续请教:
我用的是SQL SERVER 的IMAGE字段!
我估计是存储时的问题!
 
请以后自己结束问题
gcq:对不起,如需要,请重提问题
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
928
SUNSTONE的Delphi笔记
S
后退
顶部