我一直不认为能把代码写的和天书一样的程序员是好的程序员,那不过是因为我真的对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数据类型的字段分开查询,尤其是遍历数据库记录时,否则记录多了速度会很慢。
---------------------
作者:秋天之落叶
来源:CSDN
原文:https://blog.csdn.net/leavesguth/article/details/76178153
版权声明:本文为博主原创文章,转载请附上博文链接!

最新文章

  1. NOIp2016 游记
  2. Android WiFi密码(查看工具)
  3. loadrnner添加C语言代码的几种方式
  4. 何修改WAMP中mysql默认空密码--转
  5. 八 mybatis查询缓存(一级缓存,二级缓存)和ehcache整合
  6. Struts---- <s:bean>标签
  7. IT从业人员必看的十几个论坛
  8. MySQL强制性操作
  9. 【衡阳八中noip模拟题】国色天香
  10. HTML5 总结-表单-输入类型
  11. Lua面向对象设计(转)
  12. C#输出日历
  13. Python--day01(计算机基础)
  14. How to execute a Stored Procedure with Entity Framework Code First
  15. [PA2014]Żarówki
  16. three.js 微信小游戏
  17. ELK之filebeat
  18. JAVA设计模式详解(三)----------装饰者模式
  19. Unity3D学习笔记(二十五):文件操作
  20. 从Chrome 69.0 版本起,Flash权限受到进一步限制,默认仅在当前浏览器会话有效。

热门文章

  1. B - Yet Another Palindrome Problem的简单方法
  2. 由最多N个给定数字集组成的数字 Numbers At Most N Given Digit Set
  3. Cesium 源码笔记[1] Viewer模块实例化的大致过程
  4. 服务器安装 mongodb
  5. matplotlib.pyplot.text
  6. 使用Keras进行深度学习:(二)CNN讲解及实践
  7. 我国三大坐标系的区别(西安80、北京54、WGS-84)
  8. 解决pycharm不能导入bs4模块问题
  9. Python python 函数参数:必选参数,默认参数
  10. JavaScript的URLSearchParams方法