直接用复杂的类型不行吗?系统自动会帮你作为流发送的:)
解决方案 »
- StringGrid用法
- 请问手写板为何在开发的应用程序上写不上汉字?在其他字处理软件上能写上。分不多了。
- Query1.ParamByName['xm'].AsString:= edit1.Text;不行,而改为:Query1.ParamByName('xm').AsString:= edit1.Text;就可以了.
- 请大家帮忙看看是什么错误,谢谢了!
- 关于文件操作
- 在excel中打开一个文本文件——在delphi中编程实现,怎么写?录制的宏在OLEObject中没有相应的openText的方法。
- 在线等D7+SQL SERVER 2000的问题.
- 高分求助:在制作安装程序时,出现EDBEngineErrot错误,并报告未知的数据库
- Delphi有何用?
- 一个关于窗体的问题
- 调用DLL时,出现"Could not obtain OLE control window handle"错误,怎么回事?
- 使用报表时遇到的问题
1.将服务器端对应datasetprovider的options的fetchblobondemand选项设为true,因为false情况下,客户端的clientdataset是不取blob数据的.或者在 false情况下用clientdataset的fetchblob方法取得数据库中的数据.
2.源程序如下(win2000/delphi/ocracle)
procedure writetoblobfield;
var
tfStream:TFileStream;
tbStream:TBlobStream;
nbufsize:integer;
pbuf:PChar;
begin
With clientdataset1 do
begin
if Active = false then
Active := true;
Append;
try
tfStream:=TFileStream.Create(FilePath,fmOpenRead);
nbufsize:=tfStream.Size +1;
pbuf:=AllocMem(nbufsize);
tfStream.Read(pbuf^,nbufsize);
tbStream:=TBlobStream.Create((fieldbyname('TestImage') as TBlobField),bmWrite);
tbStream.Seek(0,SoFromBeginning);
tbStream.Write(pbuf^,nbufsize);
finally
tfStream.Free ;
tbStream.Free ;
post;
FreeMem(pbuf,nbufsize);
Active:=False;
end;
end;
end;procedure savetoclient;
var
filebody:tstream;
tempfile:tmemostream;
begin
try
filebody:=clientdataset.createblobstream(Tblobfield,bmread);
filebody.position:=0;
tempfile:=tmemostream.create;
tempfile.loadfromstream(filebody);
tempfile.savetostream(文件名);
finally
tempfile.free;
filebody.frdd;
end;
end;
end;