var
st:TFileStream;
//; olecontainer1:Tolecontainer;
begin
if not opendialog1.Execute then
exit;
st :=TFileStream.Create(opendialog1.FileName,fmOpenRead);
try
with CD_view do //cd_view:TClientDataSet;
begin
close;
sql.Add('select * from docu where docu_id=1');
open;
edit;
Tblobfield(fieldbyname('UpFiles')).LoadFromStream(st);
post;
ApplyUpdates(-1);
end;
finally
st.Free
end;
end;
以上代码编译通过,但运行后没有将需要的文件以流的方式写入数据库物理字段内,请高手指教是那里有错误???换句话说就是可以运行,但保存不住。第一次用这个TClientDataSet的东东,呵呵!!不要见笑哦!!
st:TFileStream;
//; olecontainer1:Tolecontainer;
begin
if not opendialog1.Execute then
exit;
st :=TFileStream.Create(opendialog1.FileName,fmOpenRead);
try
with CD_view do //cd_view:TClientDataSet;
begin
close;
sql.Add('select * from docu where docu_id=1');
open;
edit;
Tblobfield(fieldbyname('UpFiles')).LoadFromStream(st);
post;
ApplyUpdates(-1);
end;
finally
st.Free
end;
end;
以上代码编译通过,但运行后没有将需要的文件以流的方式写入数据库物理字段内,请高手指教是那里有错误???换句话说就是可以运行,但保存不住。第一次用这个TClientDataSet的东东,呵呵!!不要见笑哦!!
解决方案 »
- DELHI读取C#webservice问题?
- 唤醒善良:2003最震撼的网络照片
- 紧急求助:如何引用其他窗体中定义的变量?
- 报表设计时选用的是A3的纸,可是在预览时却只看到A4的纸张大小版面,所有一部分数据根本就看不到,怎么解决?
- 请问如何从edit控件中得到浮点数?
- 怎样把当前的窗体卸载掉?在线等!!!!!!!
- ■■■如何将图片平铺在窗体的画布上?■■■
- 想直接操作ftp上的*.mdb数据库,该如何做?
- 有谁知道FLASH的OCX如何用呀!在DELPHI中。
- ado控件的数据集采集完后,通过dbgrid的DBGrid1itleClick事件能实现排序吗?
- 帮忙解决一下SQLSERVER2000里image字段如何存放图片
- 汉化一个错误提示:"recordindex out of range" 怎么解决
function FileStreamToVar(fStream: TFileStream): OleVariant; //将FileStream转化为OleVariant
var
P: Pointer;
Stream: TStream;
begin
Stream := TStream.Create;
fStream.Position := 0;
Stream.CopyForm(fStream, fStream.size);
Result := VarArrayCreate([0, Stream.size -1],Varbyte);
P := VarArrayLock(Result);
Try
Stream.Position := 0;
Stream.Read(P^, Stream.size);
Finally
VarArrayUnlock(Result);
end;
end; 然后这里:Tblobfield(fieldbyname('UpFiles')).LoadFromStream(st);
改为:FieldByName('UpFiles').Value := FileStreamToVar(st);这样看看行不行。
ps :我没有测试^_^