文档章节

如何在数据表中存取图片 - 回复 "三足乌" 的问题

涂孟超
 涂孟超
发布于 2014/09/26 15:37
字数 307
阅读 8
收藏 0
点赞 0
评论 0

问题来源: http://www.cnblogs.com/del/archive/2009/05/28/1491186.html#1801853

准备工作:
1、在空白窗体上添加: ClientDataSet1、Button1
2、激活窗体的 OnCreate 事件、激活 Button1 的 OnClick 事件

实现代码:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, DB, DBClient;

type
  TForm1 = class(TForm)
    ClientDataSet1: TClientDataSet;
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

const
  PicPath1 = 'c:\temp\test1.bmp'; {保证测试图片的存在}
  PicPath2 = 'c:\temp\test2.bmp';

{建立数据表并载入数据}
procedure TForm1.FormCreate(Sender: TObject);
begin
  {建表}
  with ClientDataSet1 do begin
    FieldDefs.Add('Name', ftWideString, 8);
    FieldDefs.Add('Age', ftInteger);
    FieldDefs.Add('Picture', ftGraphic);
    CreateDataSet;
  end;

  {添加第一条数据}
  ClientDataSet1.Append;
  ClientDataSet1['Name'] := '张三';
  ClientDataSet1['Age']  := 66;
  TGraphicField(ClientDataSet1.FieldByName('Picture')).LoadFromFile(PicPath1);

  {添加第二条数据}
  ClientDataSet1.Append;
  ClientDataSet1['Name'] := '李四';
  ClientDataSet1['Age']  := 16;
  TGraphicField(ClientDataSet1.FieldByName('Picture')).LoadFromFile(PicPath2);
end;

{读出指定记录中的图片数据}
procedure TForm1.Button1Click(Sender: TObject);
var
  BlobStream: TClientBlobStream;
  GraphicField: TGraphicField;
  Bitmap: TBitmap;
begin
  {查找姓名是李四的记录}
  if ClientDataSet1.Locate('Name', '李四', []) then //可以把其中的李四换成张三试试
  begin
    {读取其 Picture 字段}
    GraphicField := ClientDataSet1.FieldByName('Picture') as TGraphicField;
    {读入到 Blob 流}
    BlobStream := TClientBlobStream.Create(GraphicField, bmRead);
    {给一个 TBitmap 流是为了看看}
    Bitmap := TBitmap.Create;
    Bitmap.LoadFromStream(BlobStream);
    Canvas.Draw(10, 10, Bitmap);
    Bitmap.Free;
    //
    BlobStream.Free;
  end;
end;

end.

 
 
 
 
 

 

 

  

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

共有 人打赏支持
涂孟超
粉丝 12
博文 2011
码字总数 14107
作品 0
深圳
程序员
评论在数据库中存储!!

而这些不同的动作对应的数据其实是存在不同的表中,例如话题表、回帖表、评论表等等。 今天主要是介绍 OSChina 是如何将这些属于不同范围的数据汇总到用单一时间轴进行展示的动态。 动态表 ...

zjg23
2016/12/15
17
1
今天遇到的一个面试题,我比较没思路,大家帮忙看看帮忙给个思路或代码

今天面试,遇到一个问题,学的不是很好,向大家求助。问题如下: 有一个txt文档,里面有两个字段,一个name,一个age。然后底下是两百万条数据,类似于如图: 第一问:如何将这一百万条数据通...

明舞
2013/07/22
764
7
Mysql如何实现跨表查询排序

问题说明: 现有表字段结构如下: 1、message ————id (自增,主键) ————title ————content 2、comment ————id (自增,主见) ————mid (message表 id) ————contn...

5D同学
2012/04/27
1K
5
Mysql 中的blob相关问题

一、MySQL BLOB 类型介绍 MySQL中,BLOB是一个二进制大型对象,是一个可以存储大量数据的容器,它能容纳不同大小的数据。BLOB类型实际是个类型系列(TinyBlob、Blob、MediumBlob、LongBlob)...

文文1
2015/09/08
17
0
深入数据库索引背后算法及数据结构

MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。提取句子主干,就可以得到索引的本质:索引是数据结构。 我们知道,数据库查询是数据库的最主要功能之一。我们都...

chirnson
2013/12/19
0
0
django快速搭建一个sample blog(1)

练手之作,前端不太熟,只能瞎胡搞~ Django 的设计鼓励松耦合及对应用程序中不同部分的严格分割。 遵循这个理念的话,要想修改应用的某部分而不影响其它部分就比较容易了。把数据存取逻辑、业...

lovelace521
2015/01/06
0
0
Java数据结构与算法(第一章综述)

数据结构和算法能起到什么作用? 数据结构是对在计算机内存中(有时在磁盘中)的数据的一种安排。数据结果包括数组、链表、栈、二叉树、哈希表等等。算法对这些结构中的数据进行各种处理,例...

小风89
2015/10/21
146
0
Android sqlite 存取图片

数据库中存取图片通常使用两种方式,一种是保存图片所在路径,二是将图片以二进制的形式存储(sqlite3支持BLOB数据类型)。对于两种方法的使用,好像第二种方法不如第一种方法更受程序员欢迎...

zjbpku
2013/05/04
0
1
微信机器人高级版常见问题汇总

下面列出微信机器人高级版可能碰到的一些问题和解决方案,以便大家碰到类似的问题的时候能够快速找到答案并修正,本文也会长期更新 1. 如何安装和升级 安装:上传到 wp-content/plugins/ 目录...

小天博客
2017/06/08
0
0
我想用asp实现被动回复图片消息,纯图片的,现在无法上传多媒体文件.

@老陌 你好,想跟你请教个问题: 看过你留言,感觉你能帮到我,先谢谢啦! 微信官方是这么解释的, 我想用asp实现被动回复图片消息,纯图片的, asp微信上传多媒体文件,也是curl post图片这...

小熊儿
2015/01/31
317
2

没有更多内容

加载失败,请刷新页面

加载更多

下一页

OSChina 周三乱弹 —— 你被我从 osc 老婆们名单中踢出了

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @小鱼丁:分享五月天的单曲《后来的我们 (电影《后来的我们》片名曲)》: 《后来的我们 (电影《后来的我们》片名曲)》- 五月天 手机党少年们想...

小小编辑
12分钟前
6
1
Spring Boot Admin 2.0开箱体验

概述 在我之前的 《Spring Boot应用监控实战》 一文中,讲述了如何利用 Spring Boot Admin 1.5.X 版本来可视化地监控 Spring Boot 应用。说时迟,那时快,现在 Spring Boot Admin 都更新到 ...

CodeSheep
31分钟前
0
0
Python + Selenium + Chrome 使用代理 auth 的用户名密码授权

米扑代理,全球领导的代理品牌,专注代理行业近十年,提供开放、私密、独享代理,并可免费试用 米扑代理官网:https://proxy.mimvp.com 本文示例,是结合米扑代理的私密、独享、开放代理,专...

sunboy2050
今天
0
0
实现异步有哪些方法

有哪些方法可以实现异步呢? 方式一:java 线程池 示例: @Test public final void test_ThreadPool() throws InterruptedException { ScheduledThreadPoolExecutor scheduledThre......

黄威
今天
1
0
linux服务器修改mtu值优化cpu

一、jumbo frames 相关 1、什么是jumbo frames Jumbo frames 是指比标准Ethernet Frames长的frame,即比1518/1522 bit大的frames,Jumbo frame的大小是每个设备厂商规定的,不属于IEEE标准;...

六库科技
今天
0
0
牛客网刷题

1. 二维数组中的查找(难度:易) 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入...

大不了敲一辈子代码
今天
0
0
linux系统的任务计划、服务管理

linux任务计划cron 在linux下,有时候要在我们不在的时候执行一项命令,或启动一个脚本,可以使用任务计划cron功能。 任务计划要用crontab命令完成 选项: -u 指定某个用户,不加-u表示当前用...

黄昏残影
昨天
0
0
设计模式:单例模式

单例模式的定义是确保某个类在任何情况下都只有一个实例,并且需要提供一个全局的访问点供调用者访问该实例的一种模式。 实现以上模式基于以下必须遵守的两点: 1.构造方法私有化 2.提供一个...

人觉非常君
昨天
0
0
《Linux Perf Master》Edition 0.4 发布

在线阅读:https://riboseyim.gitbook.io/perf 在线阅读:https://www.gitbook.com/book/riboseyim/linux-perf-master/details 百度网盘【pdf、mobi、ePub】:https://pan.baidu.com/s/1C20T......

RiboseYim
昨天
1
0
conda 换源

https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/conda config --add channels https://mir......

阿豪boy
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部