文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院程序开发DelphiDELPHI存取JPEG文件到SQL Server数据库
精品推荐
特别推荐
·利用Delphi编写Socket通信程序
·拦截其它程序的网络数据封包
·Delphi编程根据IP地址得到主机名
·Delphi 程序员代码编写标准指南
·用DELPHI开发自动化服务器
·将日期转化为汉语的形式
·加密ACCESS数据库增加安全性
·使用TCP/IP协议实现聊天程序
·在Delphi中控制扫描仪
热点TOP10
·Delphi中DLL的创建和使用(1)
·用Delphi实现WinSocket高级应用
·利用Delphi编写Socket通信程序
·DBGrid使用全书(三)
·DELPHI多层分布式开发(2)
·实现关键字查找word文档里相匹配的内容
·实现高速文件拷贝
·用Delphi实现动态获取版本信息
·使用TCP/IP协议实现聊天程序
·在Delphi中控制扫描仪
·实现webbrowser中的打印、复制、全选等编辑功能
·拦截其它程序的网络数据封包
·Delphi下的ADO使用方法!
·DELPHI多层分布式开发(1)
·Delphi中利用钩子实现QQ聊天窗口的修改
·Delphi多层开发方案比较
·Delphi下“培养”自己的简单木马
·Delphi数据库控件使用入门
·Delphi的拨号连接类
·在Delphi中实现数据分析模块的动态报表

DELPHI存取JPEG文件到SQL Server数据库

日期:2007年5月2日 作者: 查看:[大字体 中字体 小字体]



高红岩(ghyghost)

近日笔者书写一个小型的学生管理系统时,需要用到ADO控件存取SQL Server数据库图片,查看资料发现基本都是针对BMP文件进行操作(巨增数据库大小),但发现了★eagletian★高手翻译的ADO英文技术文档,里面涉及到了数据库存取JPEG文件的关键技术,在win98+sql server桌面版中测试通过,运行良好,现于源码公开如下:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls, DBCtrls, Grids, DBGrids, Db, ADODB,jpeg, StdCtrls,dbtables;
   {一定要USES JPEG单元,使能存储JPG文件格式}
type
  TForm1 = class(TForm)
    DataSource1: TDataSource;
    ADOQuery1: TADOQuery;
    DBGrid1: TDBGrid;
    DBNavigator1: TDBNavigator;
    Image1: TImage;
    savebutton: TButton;
    showbutton: TButton;
    OpenDialog1: TOpenDialog;
    ADOQuery1id: TIntegerField;
    ADOQuery1pic: TBlobField;
    procedure savebuttonClick(Sender: TObject);
    procedure showbuttonClick(Sender: TObject);
    procedure DBNavigator1Click(Sender: TObject; Button: TNavigateBtn);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

function JpegStartsInBlob(PicField:TBlobField):integer;
   var
    ghy: TADOBlobstream;
    buffer:Word;
    hx: string;
   begin
    Result := -1;
    ghy := TADOBlobstream.Create(PicField, bmRead);
    try
     while (Result = -1) and (ghy.Position + 1 < ghy.Size) do
     begin
      ghy.ReadBuffer(buffer, 1);
      hx:=IntToHex(buffer, 2);
      if hx = ’FF’ then begin
       ghy.ReadBuffer(buffer, 1);
       hx:=IntToHex(buffer, 2);
      if hx = ’D8’ then Result := ghy.Position - 2
       else if hx = ’FF’ then
             ghy.Position := ghy.Position-1;
      end; //if
     end; //while
     finally
      ghy.Free
     end;  //try
   end;


procedure TForm1.savebuttonClick(Sender: TObject);
var
picstream:tadoblobstream;
begin
adoquery1.edit;
picstream:=tadoblobstream.Create(tblobfield(adoquery1.fields[1]),bmWrite);
if form1.opendialog1.execute then
begin
picstream.LoadFromFile(opendialog1.filename);
picstream.Position:=0;
adoquery1.edit;
tblobfield(adoquery1.Fields[1]).loadfromstream(picstream);
adoquery1.post;
end;


end;

procedure TForm1.showbuttonClick(Sender: TObject);
var
ghy:TADOBlobstream;
pic:tjpegimage;
begin
ghy := TADOBlobstream.Create(Adoquery1pic, bmRead);
try
  ghy.Seek(JpegStartsInBlob(Adoquery1pic),soFromBeginning);
  Pic:=TJpegImage.Create;
  try
   Pic.LoadFromStream(ghy);
   Image1.Picture.Graphic:=Pic;
  finally
   Pic.Free;
  end;
finally
ghy.Free
end;
end;

procedure TForm1.DBNavigator1Click(Sender: TObject; Button: TNavigateBtn);
begin
if button in [nbFirst, nbPrior, nbNext, nbLast] then showbutton.Click;
end;

end.

如果数据库中要存储的是BMP文件,则在procedure TForm1.showbuttonClick(Sender: TObject);过程中代码更改如下即可存储显示BMP文件格式的操作。
procedure TForm1.showbuttonClick(Sender: TObject);
var
ghy:TADOBlobstream;
pic:tbitmap;
begin
ghy := TADOBlobstream.Create(Adoquery1pic, bmRead);
try
{ ghy.Seek(JpegStartsInBlob(Adoquery1pic),soFromBeginning);}
  Pic:=Tbitmap.Create;
  try
   Pic.LoadFromStream(ghy);
   Image1.Picture.Graphic:=Pic;
  finally
   Pic.Free;
  end;
finally
ghy.Free
end;
end;
  到此用DELPHI存取JPEG文件到SQL Server数据库中的具体操作已经叙述完毕。
我的网站:
http://delphijl.99898.com
QQ:123168091


[1] [2] 下一页 




上一篇:DELPHI程序注册码设计

下一篇:Delphi的TWebBrowser编程综述

DELPHI存取JPEG文件到SQL Server数据库 相关文章:
·MPEG、RM、WMV电影文件格式转换指南
·SQL server 2005安装问题汇总
·清除垃圾文件DIY
·怎样清除硬盘及系统垃圾文件?
·ASP.NET上传文件的实例
·TCP/IP编程实现远程文件传输
·dll文件下载
·Windows无法访问指定设备,路径或文件.您可能没有合适的权限访问这个项目
·局域网文件共享详解
·局域网内共享文件 提示没有访问权限的问题
DELPHI存取JPEG文件到SQL Server数据库 相关软件:
·SQL Server 2000 基础系列课程视频
·Windows 2003 Server 简体中文企业版(免激活)ISO
·最强文件加密锁2007
·巨城文件保险柜 v2.3
·ACCESS数据库教程 北京大学的ACCESS教程
·爆出网站数据库路径
·Ultra RM Converter(Real文件转换分割,合并)V3.3.0916 汉化版
·Allok Video Splitter(视频文件分割)V2.2 0726 修正II版
·联想OEM Winxp的5个文件
·Microsoft SQL Server 2005 Enterprise Edition SP1简体中文企业版

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.vipcn.net
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.vipcn.net All Rights Reserved. 鄂ICP备05000083号Powered by:viphot