RO保存文件到Oracle的Blob字段问题(来人接分)~
环境:oralce 9i,RO 60.43.801,UniDAC 3.0.9
在客户端是通过StreamToVariant后传给服务端,服务端保存到数据库的代码
如下:
// 压入更新参数
for i := 0 to FDataTransferParams.Count - 1 do
begin
if FDataTransferParams.GetItems(i)^.isBlob then
begin
if (not VarIsNull(FDataTransferParams.GetItems(i).fValue)) and
(not VarIsEmpty(FDataTransferParams.GetItems(i).fValue)) then
begin
VariantToStream(FDataTransferParams.GetItems(i).fValue,
_IROStream.Stream);
_IROStream.Stream.Position := 0;
_IDASQLCommand.Params[i].DataType := datBlob;
_IDASQLCommand.Params[i].ParamType := daptInput;
_IDASQLCommand.Params[i].LoadFromStream(_IROStream);
end
else
_IDASQLCommand.Params[i].Value := NULL;
end
else
_IDASQLCommand.Params[i].Value := FDataTransferParams.GetItems(i)
.fValue;
end;
现在的问题是如果存的是文本文件,存取都正常,但如果是图片或其它二进制的文件,取出来就会少字节数据,奇怪了~~~~
-----------
好几天,居然没一个来接分的,唉,彻底的悲剧~~~