delphi使用ADO在sql数据库存取图片的方法

新手参考,老鸟绕行

我一直不认为能把代码写的和天书一样的程序员是好的程序员,那不过是因为我真的对delphi也就是略懂皮毛,太深了看不懂。
网上查询数据库存取图片的方式,看的是一头雾水,有人提出保存路径使用时再调用,方法很好,但现实很残酷,在客户端使用时才发现,无法调用服务器端的路径和图片(我指的服务器也就是一台部门使用的普通的PC机,只不过是安装了数据库而已)。使用网络路径需要将服务器端的图片目录共享,或者使用FTP上传下载,不是不安全,就是很麻烦。
一个部门也就200人左右,保存成图片,规格小一点,数据库应该不会太大,调用速度应该不会太慢的,于是又回归了数据库保存的思路。
人懒了写代码就愿意少一点,研究后才发现,网上那些复杂的代码就是故意让人们发晕的。
只为了演示如何存取,什么控件、路径、对话框什么的就省了,知道怎么保存和取出图片就行了。sql数据库图片字段使用image类型,存储时如果要显示图片建议使用TImage,取图显示时建议使用TDBImage。

存储图片
procedure TForm1.Button1Click(Sender: TObject);
var
  Picture1: TPicture;
begin
  Picture1 := TPicture.create;
  Picture1.loadfromfile('你自己定义的图片路径+名字.bmp'); 
  image1.picture.loadfromfile('你自己定义的图片路径+名字.bmp');
  ADOQuery1.Close;
  ADOQuery1.sql.clear;
  ADOQuery1.sql.add('insert into pic values(:名字,:图片) ');
  ADOQuery1.Parameters.ParamByName('名字').Value :='你自己定义的名字';
  ADOQuery1.Parameters.ParamByName('图片').Assign(Picture1);
  ADOQuery1.ExecSQL;
  Picture1.Free;
end;

取出图片
procedure TForm1.Button2Click(Sender: TObject);
begin
  ADOQuery1.Close;
  ADOQuery1.sql.clear;
  ADOQuery1.sql.add('select * from pic where 名字:=名字');
  ADOQuery1.Parameters.ParamByName('名字').Value :='你自己查询的名字';
  ADOQuery1.Open;
  DBEdit1.Text:=ADOQuery1.FieldByName('名字').AsString;

DBImage1.DataField:='图片';        //可在属性里直接设置
  DBImage1.DataSource:=DataSource1;    //可在属性里直接设置

end;

建议:该方法只支持image格式的图片,tiff格式的图片支持存储,取出时还需要自己捉摸一下。在应用期间查询时,建议其他字段和image数据类型的字段分开查询,尤其是遍历数据库记录时,否则记录多了速度会很慢。

delphi使用ADO在sql数据库存取图片的方法相关推荐

  1. 安卓 mysql读取图片路径_android开发之数据库存取图片

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

  2. 火山安卓Sqlite数据库存取图片

    一.配置模块 勾选火山模块 二.布局 按下图布局 三.创建资产和变量 ①设置资产目录 app目录下创建assets文件夹,并放入图片 ②创建变量 启动类下创建 四.打开创建数据库 ①创建事件 ②设置代 ...

  3. SQL Sever数据库存取图片

    转自:http://www.cnblogs.com/hfzsjz/archive/2010/05/21/1740778.html 本实例主要介绍如何将图片存入数据库.将图片存入数据库,首先要在数据库中 ...

  4. c mysql如何获取照片_MYSQL数据库存取图片等文件(C语言)

    直接把文件放入数据库中比较适合小文件,方便管理,比如头像图片和声音,如果是较大型的文件建议不要直接存进数据库,而是放在服务器,把文件索引放在数据库. MYSQL 中有个数据对象是 BLOB,即 Bin ...

  5. oracle 处理图片,oracle数据库存取图片方法教程-Oracle

    数据库存取图片信息,有两种方式: 1)转换成二进制数据存储,故首先设置对应的数据字段数据类型为Blob. 2)服务器设置路径保存上传文件,数据库中只存储文件路径. 这里采用第一种方式简单示范如何存储并 ...

  6. 小谈c#数据库存取图片的方式

    第一种方式   文件夹与数据库配合 /// <summary>/// 上传图片/// </summary>/// <param name="FUSShopURL ...

  7. pl/sql 11g 12705_如何用PLSQL导出数据库存表结构信息

    如何用PLSQL导出表结构,不用登陆数据库存,直接用plsql工具怎么导出指定表的表结构呢?下面我就介绍下如何导出. 1:进行plsql后选怎Tools -->> Exports User ...

  8. Delphi 原生ADO(二)

    我发现很多朋友在开发数据库时都使用 Delphi 自带的 ADO 组 件 或 Diamond ADO,其实在 Delphi 中使用原生 ADO 接口也是十分方便和有效的.我使用原生 ADO 开发项目已 ...

  9. 【转】MFC下用ADO连接SQL SERVER,保存图片,BLOB

    使用ADO实现BLOB数据的存取 一.前言 在实际的开发过程中我们常常需要存储较大的二进制数据对象,比如:图像.音频文件. 或其它二进制数据,这些数据我们称之为二进制大对象BLOB(Binary La ...

最新文章

  1. 智能制造-逆向工程-三维测量-标定
  2. C#面向对象(四)虚方法实现多态
  3. Python Requests 简明教程
  4. 蓝桥杯哈夫曼树java_Java实现蓝桥杯3n+1问题
  5. python免费开源工具推荐_年薪200万的程序员,推荐这10大Python免费开源工具!
  6. CentOS 7 SSH相关使用问题及其解决办法
  7. 165体重_身高165的女性体重多少比较合适?过胖和过瘦都不太好
  8. 08.存储Cinder→5.场景学习→08.Backup Volume→2.实操
  9. 掰碎了讲换行符和回车符
  10. CSS常见的中属性级,选择符级的Hack
  11. 操作系统原理学习总结
  12. 迅为IMX6ULL开发板Linux RS232/485驱动实验(上)
  13. 阿里巴巴Java开发手册代码规范
  14. 禁止谷歌浏览器 错误报告_报告浏览器错误
  15. linux geos 动态库,未经sudo许可在linux上安装GEOS库
  16. DSP CCS12.00 芯片:TMS320F28335 外部中断 XINT1, 和映射区域的 k1 -- k4 按键的功能实现
  17. redis为什么这么快
  18. 企业高频实用API推荐
  19. 【情报工具】分享15款保护隐私的搜索引擎
  20. Ubuntu编译内核树

热门文章

  1. html 对象元素如何获取div 里的data值 原生和jq对象两种获取
  2. App应用接口版本兼容设计和使用原则
  3. 王者干货:交互原型axure50套第二版
  4. 国内食品包装机选哪个品牌?云易科包装机怎么样?
  5. 2023年湖北省建设厅七大员报名培训考试招生详细介绍
  6. 东莞产品设计、PROE软件自由造型
  7. Android检查手机是否Root以及应用是否获取Root权限
  8. IP地址及数制的转换
  9. Apache 的 httpd.conf 详解
  10. 前端原型编辑器Mockplus(破解)