zoukankan      html  css  js  c++  java
  • 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数据类型的字段分开查询,尤其是遍历数据库记录时,否则记录多了速度会很慢。
    ---------------------
    作者:秋天之落叶
    来源:CSDN
    原文:https://blog.csdn.net/leavesguth/article/details/76178153
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    Java高并发24-使用自定义锁生成一个消费模型
    Java高并发连载23-基于AQS实现自定义同步器
    JavaScript连载38-编写评论界面
    Java高并发22-AQS条件变量的支持
    Java高并发21-AQS在共享,独占场景下的源码介绍
    SSH 集成Shiro和EhCache,设置登录超时时间无效解决办法。
    Vue3.0 + Echarts 实现地区人口数量分布展示
    从零开始学VUE之网络模块(Axios)
    从零开始学VUE之VueX(modules)
    从零开始学VUE之VueX(actions)
  • 原文地址:https://www.cnblogs.com/qi123/p/10104805.html
Copyright © 2011-2022 走看看