我的学习生涯(Delphi篇) - 21

    我们平常要和图片打交道,那么我们如何把图片存在数据库中呢?

    -------------------------------------------------------------------------------------------------美丽分割线---------------------------

   年代:2007

   文件:My0919.7z


   程序运行效果如下图:

   

   


   单元文件:

   Unit1.pas

 

unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, DB, ADODB, StdCtrls, ExtCtrls, ExtDlgs, LoadSaveImg, DBCtrls;typeTForm1 = class(TForm)Button1: TButton;Button2: TButton;ADOConnection1: TADOConnection;ADODataSet1: TADODataSet;OpenPictureDialog1: TOpenPictureDialog;Button3: TButton;ADODataSet1car_number: TStringField;ADODataSet1pic1: TBlobField;DataSource1: TDataSource;DBNavigator1: TDBNavigator;Image1: TImage;DBMemo1: TDBMemo;procedure Button1Click(Sender: TObject);procedure Button3Click(Sender: TObject);procedure Button2Click(Sender: TObject);private{ Private declarations }TS: TMemoryStream;LSI: TLSImg;public{ Public declarations }end;varForm1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
varFName, FType: string;
beginOpenPictureDialog1.Filter := GraphicFilter(TGraphic);if OpenPictureDialog1.Execute thenbeginFName := OpenPictureDialog1.Files.Strings[0];FType := Copy(FName, LastDelimiter(' .', FName) + 1, Length(Fname) - LastDelimiter(' .', Fname));LSI := TLSImg.Create;if LSI.GetImgType(FType) <> 0 thenbeginTS := TMemoryStream.Create;LSI.Picture.Graphic.LoadFromFile(FName);LSI.SaveToStream(TS);with ADODataSet1 dobegintryAppend;(Fields[1] as TBlobField).LoadFromStream(TS);Post;exceptraiseend;end;TS.Free;end;LSI.Free;end;
end;procedure TForm1.Button3Click(Sender: TObject);
begin//ADOConnection1.Close;ADOConnection1.Open;Application.MessageBox('connection success!','hint',0);//ADODataSet1.Close;ADODataSet1.CommandText:='select car_number,pic1 from totalTable';ADODataSet1.Open;Application.MessageBox('query success!','hint',0);
end;procedure TForm1.Button2Click(Sender: TObject);
beginwith ADODataSet1 dobeginif not Eof thenbeginLSI := TLSImg.Create;TS := TMemoryStream.Create;(Fields[1] as TBlobField).SaveToStream(TS);LSI.LoadFromStream(TS);Image1.Picture := LSI.Picture;TS.Free;LSI.Free;end;end;
end;end.

 

 

 

转载于:https://www.cnblogs.com/snake-hand/archive/2013/06/10/3131116.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/421724.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Map 的Properties集合存储IO流对象

package IODemo;import java.io.FileInputStream; import java.io.FileOutputStream; import java.util.Properties;/*** author Alina* date 2021年12月07日 11:29 下午* 集合IO一起使用* Map接口实现Hashtable 子类 Properties* 特点&#xff1a;线程安全&#xff0c;泛型Str…

WordPress的RSS订阅优化

一、确定一个永久的RSS地址 WordPress默认的订阅地址是www.domain.com/feed&#xff0c;使用这样的地址有三个比较大的缺陷&#xff1a; 1、无法统计多少人订阅了你。 2、博客更换域名或者被GFW后原RSS地址不能访问了&#xff0c;原来的读者群就流失了。 3、输出的内容太单调…

练习IO流

package IODemo;import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.util.Properties; import java.util.Scanner;/*** author Alina* date 2021年12月08日 11:49 下午* 已知用户有一个文本文档&#xff0c;里面包含的键值对…

轻量级的ORM框架 fluentdata

codePlex 地址&#xff1a;http://fluentdata.codeplex.com/releases/view/82592转载于:https://www.cnblogs.com/Qiaoyq/archive/2013/06/11/3131428.html

(JAVA)线程

/*** author Alina* date 2021年12月12日 11:37 下午* 线程&#xff1a;分为三个级别* 1.定义类&#xff0c;继承Thread 类&#xff0c;继承线程类* 该类重写run&#xff08;&#xff09;方法* 创建子类对象* * 执行join方法的线程&#xff0c;会一次执行完毕&#xff0c;其…

(JAVA)序列化

对象序列化与反序列化 对象中的数据有&#xff1a;new Object() 自己的成员变量 如果对象的基本数据不变&#xff0c;反复使用 什么是序列化 将对象中的数据以二进制方式存入硬盘&#xff0c;永久保存 二进制文件可以在网络上传输 反序列化 将存在硬盘中的二进制文件,读取出来还…

某final神犇的工作感想

http://hi.baidu.com/codemao/item/0bc294417fbaeceba5c06690  。。。 这一年&#xff0c;工作上也渐渐步入正轨了&#xff0c;首先&#xff0c;我很庆幸在我刚工作的时候就能碰到一个好的经理&#xff0c;我想&#xff0c;工作上最重要的事情莫过于跟对组&#xff0c;跟对经理…

(JAVA)线程之lock和死锁(例)

package thread; import java.util.concurrent.locks.*;/*** author Alina* date 2021年12月20日 11:07 下午* JDK5新特性* import java.util.concurrent.locks 包* lock接口* void lock() 获取锁&#xff0c;进同步* void unlock () 释放锁&#xff0c;出同步***/ c…

XML工作总结

XML文件使用 1webconfig webconfing有默认有缓存依赖&#xff0c;修改&#xff0c;则服务重启。JS三级联动XML处理导出。2asp.net站点地图3Soap WEB服务传输数据&#xff0c;Soap是有特殊数据的XML。本质是表单提交&#xff0c;Web服务response数据&#xff0c;表单要知道服…

c语言之计算两个数的大数

# include<stdio.h> //编译预处理指令 int main(){ //定义主函数int max (int x,int y);int a,b ,m; scanf("%d,%d",&a,&b);m max( a, b);printf("max is %d \n ",m);return 0 ;} int max(int x,int y){int c ;if (x>y){cx;}else{c y…

redis数据批量导入导出

针对工作中可能用到 将某台服务器中的redis数据 导出然后导入到新的服务器中&#xff0c;一种方法是redis-dump工具&#xff0c;但是 他需要安装ruby环境&#xff0c;安装环境的过程中还可能出现意想不到的错误。所以不得不选用其他方法了。一下 是几点思路 供参考。在此谢谢我…

(JAVA)多线程之wait()与notify()

/*** author Alina* date 2021年12月22日 12:17 上午**/ class Student{String name;String sex;boolean flag false;} class Product implements Runnable{Student s ;Product(Student s ){this.s s;}public void run(){int x 0;//通过奇数偶数进行赋值while(true){synchro…

ASP.NET中数据有效性校验的方法

主要用Regex的IsMatch方法&#xff0c;在BusinessRule层进行校验数据的有效性&#xff0c;并将校验的方法作为BusinessRule层基类的一部分。 在WebUI层现实提示信息。 using System;using System.Data;using System.Text.RegularExPRessions;namespace Education.BusinessRules…

(Java) 线程池

线程池&#xff1a;1.出现版本&#xff1a;JDK1.52.包&#xff1a;java.util.concurrent3.Executors类 -->工厂类1.三个静态方法&#xff1a;static ExecutorService newCachedThreadPool() 创建新的线程池对象Creates a thread pool that creates new threads as needed, …