文档章节

TClientDataSet[20]: 使用 Blob 字段

涂孟超
 涂孟超
发布于 2014/09/26 15:32
字数 148
阅读 14
收藏 0

Blob(Binary Large Object) 字段包括:
ftBlob, 
ftMemo, 
ftGraphic, 
ftFmtMemo, 
ftParadoxOle, 
ftDBaseOle, 
ftTypedBinary, 
ftCursor, 
ftFixedChar, 
ftWideString,
ftLargeint, 
ftADT, 
ftArray, 
ftReference, 
ftDataSet, 
ftOraBlob, 
ftOraClob, 
ftVariant, 
ftInterface, 
ftIDispatch, 
ftGuid, 
ftTimeStamp, 
ftFMTBcd, 
ftFixedWideChar, 
ftWideMemo

{ TBlobType = ftBlob..ftWideMemo }

 
 
 
 
 

 

 

  

示例:



uses IOUtils, MMSystem;

{ 建立包含 Blob 字段的数据集, 并载入 Windows\Media\*.wav }
procedure TForm1.FormCreate(Sender: TObject);
var
  MediaPath, Path: string;
begin
  with ClientDataSet1 do begin
    FieldDefs.Add('WavFileName', ftString, 32);
    FieldDefs.Add('WAV', ftBlob);
    CreateDataSet;
  end;

  MediaPath := GetEnvironmentVariable('SystemRoot') + '\Media\';
  for Path in TDirectory.GetFiles(MediaPath, '*.wav') do
  begin
    ClientDataSet1.Append;
    ClientDataSet1['WavFileName'] := ExtractFileName(Path);
    TBlobField(ClientDataSet1.FieldByName('WAV')).LoadFromFile(Path);
  end;
  ClientDataSet1.MergeChangeLog;
end;

{ 播放 }
procedure TForm1.Button1Click(Sender: TObject);
var
  BlobStream: TClientBlobStream;
  BlobField: TBlobField;
begin
  BlobField := ClientDataSet1.FieldByName('WAV') as TBlobField;
  BlobStream := TClientBlobStream.Create(BlobField, bmRead);
  Win32Check(PlaySound(BlobStream.Memory, 0, SND_SYNC or SND_MEMORY));
  BlobStream.Free;
end;

 
 
 
 
 

 

 

  

本文转载自:http://www.cnblogs.com/del/archive/2010/02/04/1663860.html

涂孟超
粉丝 12
博文 2011
码字总数 14107
作品 0
深圳
程序员
私信 提问
TClientDataSet使用(二)

转自:http://hi.baidu.com/zwl232/blog/item/76f011dfc9543812622798f2.html TClientDataSet    与TTable、TQuery一样,TClientDataSet也是从TDataSet继承下来的,它通常用于多层体系结构的......

天地弦
2007/06/01
0
0
TClientDataSet的使用以及遇到的坑

在Delphi未加入之前,似乎是没有内存表控件的(也许有,可能我不知道吧),但是可以用控件来做内存表使用,即使有了可以使用,我还是觉得更好用一些。 做内存表使用 创建 排序 在定义字段后,...

天朝八阿哥
01/12
157
0
关于TField.DataSize的坑

在从数据库中查询数据时,有时需要事先取得字段内容的大小,再根据情况进行处理。 对于之类返回类型的,可以使用属性,但是!!!这里有很深的坑!!!。 首先看如下代码: 按预想,当字段里...

天朝八阿哥
07/11
16
0
java将blob数据写入到xml中,Delphi TClientDataSet 读取blob失败

我用java把mysql数据写入到xml中,delphi TClientDataSet读取xml展示数据,数值、文本类型都能正常显示;blob类型异常 这里的原因应该是java将blob数据写入到xml中,delphi不认,请大神指点,...

liutao7514
2014/10/13
209
0
ClientDataSet探讨(1)-介绍

KeyLife富翁笔记 作者: hongxingdl 标题: ClientDataSet探讨(1)-介绍 关键字: midas 分类: 开发经验 密级: 公开 与TTable、TQuery一样,TClientDataSet也是从TDataSet继承下来的,...

天地弦
2004/08/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

为什么要在网站中应用CDN加速?

1. 网页加载速度更快 在网站中使用CDN技术最直接的一个好处就是它可以加快网页的加载速度。首先,CDN加速的内容分发是基于服务器缓存的,由于CDN中缓存了不少数据,它能够给用户提供更快的页...

云漫网络Ruan
17分钟前
2
0
亚玛芬体育(Amer Sports)和信必优正式启动合作开发Movesense创新

亚玛芬体育和信必优正式启动合作开发Movesense创新,作为亚玛芬体育的完美技术搭档,信必优利用Movesense传感器技术为第三方开发移动应用和服务。 Movesense基于传感器技术和开放的API,测量...

symbiochina88
28分钟前
2
0
创龙TI AM437x ARM Cortex-A9 + Xilinx Spartan-6 FPGA核心板规格书

SOM-TL437xF是一款广州创龙基于TI AM437x ARM Cortex-A9 + Xilinx Spartan-6 FPGA芯片设计的核心板,采用沉金无铅工艺的10层板设计,适用于高速数据采集和处理系统、汽车导航、工业自动化等领...

Tronlong创龙
28分钟前
2
0
好程序员Java学习路线分享MyBatis之线程优化

  好程序员Java学习路线分享MyBatis之线程优化,我们的项目存在大量用户同时访问的情况,那么就会出现大量线程并发访问数据库,这样会带来线程同步问题,本章我们将讨论MyBatis的线程同步问...

好程序员官方
34分钟前
6
0
IDEA 自定义方法注解模板

IDEA 自定义方法注解模板 1、使用效果 /*** 计算交易费用* @Author wangjiafang* @Date 2019/9/11* @param feeComputeVo* @return*/@PostMapping("/v1/fee_compute")public ApiResp......

小白的成长
35分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部