L
libra_l
Unregistered / Unconfirmed
GUEST, unregistred user!
请高手指教:
我用Delphi开发的一个软件需要在Oracle的Blob字段中存取Excel文件,
保存文件到库中没有问题,但是确无法打开从库中读取的文件,打开文件是,
系统提示如下信息:
“不能访问MyFile.xls,该文件可能是只读的,或者你要访问的位置是只读的,
或者文件所在的服务器没有相应。”
我试过的方法包括:
1:直接用Blob字段读取,例如:
存:TBLobField(MyBlobField).LoadFromFile(MyFileName)
读:TBlobField(MyBlobField).SaveToFile(MyFileName)
2:利用文件流,例如:
存:FileStream.LoadFromFile(MyFileName);
TBlobField(MyBlobField).LoadFromStream(FileStream);
读:TBlobField(MyBlobField).SaveToStream(FileStream);
FileStream.SaveToFile(MyFileName);
3:利用文件流和Blob数据流
存:FileStream := TFileStream.Create(MyFileName,fmOpenRead);
FileStream.Seek(0,soFromBeginning);
Buffer := AllocMem(FieldStream.Size+1);
FileStream.Read(Buffer^,FileSize);
BlobStream.Create(MyBlobField,bmWrite);
BlobStream.Write(Buffer^,FileSize);
读: ......
FileStream := TFileStream.Create(MyFileName,fmCreate);
FieldStream:= TBlobStream.Create(TBlobField(MyBlobField,bmRead);
Buffer := AllocMem(FieldStream.Size+1);
FieldStream.Read(Buffer^,FieldStream.Size+1);
FileStream.Write(Buffer^,FieldStream.Size+1);
......
以上三种方法读出的文件现象都一样
急用,请高手指教
我用Delphi开发的一个软件需要在Oracle的Blob字段中存取Excel文件,
保存文件到库中没有问题,但是确无法打开从库中读取的文件,打开文件是,
系统提示如下信息:
“不能访问MyFile.xls,该文件可能是只读的,或者你要访问的位置是只读的,
或者文件所在的服务器没有相应。”
我试过的方法包括:
1:直接用Blob字段读取,例如:
存:TBLobField(MyBlobField).LoadFromFile(MyFileName)
读:TBlobField(MyBlobField).SaveToFile(MyFileName)
2:利用文件流,例如:
存:FileStream.LoadFromFile(MyFileName);
TBlobField(MyBlobField).LoadFromStream(FileStream);
读:TBlobField(MyBlobField).SaveToStream(FileStream);
FileStream.SaveToFile(MyFileName);
3:利用文件流和Blob数据流
存:FileStream := TFileStream.Create(MyFileName,fmOpenRead);
FileStream.Seek(0,soFromBeginning);
Buffer := AllocMem(FieldStream.Size+1);
FileStream.Read(Buffer^,FileSize);
BlobStream.Create(MyBlobField,bmWrite);
BlobStream.Write(Buffer^,FileSize);
读: ......
FileStream := TFileStream.Create(MyFileName,fmCreate);
FieldStream:= TBlobStream.Create(TBlobField(MyBlobField,bmRead);
Buffer := AllocMem(FieldStream.Size+1);
FieldStream.Read(Buffer^,FieldStream.Size+1);
FileStream.Write(Buffer^,FieldStream.Size+1);
......
以上三种方法读出的文件现象都一样
急用,请高手指教