起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 2785|回复: 2

如何操作二进制流的字段

[复制链接]
发表于 2004-7-15 15:38:35 | 显示全部楼层 |阅读模式
对于二进制流字段的赋值,说明如下,例如dsTarget是目标数据集代理,dsSource是源数据集代理,DataEditBlobOle是个表现类型为OLE字段的DataEdit。

1、实现Copy表二(Source)中当前记录的二进制流图片字段到表一(Target)中,代码如下:

dsTarget.DataSet.FieldByName('BlobPic').Assign
(dsSource.DataSet.FieldByName('BlobPic'));

2、实现通过OpenPictureDialog选择一个图片文件,并保存到表一(Target)的二进制流图片字段中,代码如下:

TBlobField(dsTarget.DataSet.FieldByName('BlobPic')).
LoadFromFile(OpenPictureDialog.FileName);

3、实现Copy表二(Source)中当前记录的二进制流OLE字段到表一(Target)中,代码如下:

dsTarget.DataSet.FieldByName('BlobOLE').Assign
(dsSource.DataSet.FieldByName('BlobOLE'));

4、实现通过OpenDialog选择一个OLE文件,并保存到表一(Target)的二进制流OLE字段中,代码如下:

TOleContainer(CZEJZLZDSLYWXX.TEJZLB1JLST(DocView1.Doc).
DataEditBolbOLE.InplaceControl).
CreateObjectFromFile(OpenDialog.FileName, False);

5、实现通过操作系统对话框,为OLE字段赋值,代码如下:

TOleContainer(CZEJZLZDSLYWXX.TEJZLB1JLST(DocView1.Doc).
DataEditBolbOLE.InplaceControl).InsertObjectDialog
回复

使用道具 举报

发表于 2005-7-1 10:16:15 | 显示全部楼层

导入文档之后,如何保存到字段中

var
  lOle:TOleContainer;
begin
    lOle := (EDContent.InplaceControl) as TOleContainer;
    if lOle.InsertObjectDialog then
    begin
        StreamSaveToField(dsbOATpgroup.DataSet.FieldByName('OASendtpcontent'),lOle);
    end;
//  if  DLGLoaddoc.Execute then
//     lOle.CreateObjectFromFile(DLGLoaddoc.FileName, False);
end;


static procedure TOARsgroup.StreamSaveToField(AField:TDataField;AOle:TOleContainer);
var
  lStream: TMemoryStream;
begin
  lStream := TMemoryStream.Create;
  try
    AOle.AllowInPlace := True;
    AOle.SaveToStream(lStream);
    if  not AField.DataSet.Active then AField.DataSet.Open;
    AField.DataSet.Edit;
    TBlobField(AField).LoadFromStream(lStream);
    AField.DataSet.Post;
  finally
    lStream.Free;
  end;
end;
回复 支持 反对

使用道具 举报

发表于 2006-5-13 12:00:44 | 显示全部楼层
把表现类型为OLE的字段保存下来,用
TOleContainer(CZEJZLZDSLYWXX.TEJZLB1JLST(DocView1.Doc).
DataEditBolbOLE.InplaceControl).SaveAsDocument(FileName: String)
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2024-12-22 19:49 , Processed in 0.040908 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表