知识大全 DELPHI存取JPEG文件到SQL Server数据库

Posted 数据库

篇首语:人凭志气,虎凭威势。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 DELPHI存取JPEG文件到SQL Server数据库相关的知识,希望对你有一定的参考价值。

DELPHI存取JPEG文件到SQL Server数据库  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

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

interface

usesWindows Messages SysUtils Classes Graphics Controls Forms Dialogs ExtCtrls DBCtrls Grids DBGrids Db ADODB jpeg StdCtrls dbtables;一定要USES JPEG单元 使能存储JPG文件格式typeTForm = class(TForm)DataSource : TDataSource;ADOQuery : TADOQuery;DBGrid : TDBGrid;DBNavigator : TDBNavigator;Image : TImage;savebutton: TButton;showbutton: TButton;OpenDialog : TOpenDialog;ADOQuery id: TIntegerField;ADOQuery pic: TBlobField;procedure savebuttonClick(Sender: TObject);procedure showbuttonClick(Sender: TObject);procedure DBNavigator Click(Sender: TObject; Button: TNavigateBtn);private Private declarations public Public declarations end;

varForm : TForm ;

implementation

$R * DFM

function JpegStartsInBlob(PicField:TBlobField):integer;varghy: TADOBlobstream;buffer:Word;hx: string;beginResult := ;ghy := TADOBlobstream Create(PicField bmRead);trywhile (Result = ) and (ghy Position + < ghy Size) dobeginghy ReadBuffer(buffer );hx:=IntToHex(buffer );if hx = FF then beginghy ReadBuffer(buffer );hx:=IntToHex(buffer );if hx = D then Result := ghy Position else if hx = FF thenghy Position := ghy Position ;end; //ifend; //whilefinallyghy Freeend; //tryend;

procedure TForm savebuttonClick(Sender: TObject);varpicstream:tadoblobstream;beginadoquery edit;picstream:=tadoblobstream Create(tblobfield(adoquery fields[ ]) bmWrite);if form opendialog execute thenbeginpicstream LoadFromFile(opendialog filename);picstream Position:= ;adoquery edit;tblobfield(adoquery Fields[ ]) loadfromstream(picstream);adoquery post;end;

end;

procedure TForm showbuttonClick(Sender: TObject);varghy:TADOBlobstream;pic:tjpegimage;beginghy := TADOBlobstream Create(Adoquery pic bmRead);tryghy Seek(JpegStartsInBlob(Adoquery pic) soFromBeginning);Pic:=TJpegImage Create;tryPic LoadFromStream(ghy);Image Picture Graphic:=Pic;finallyPic Free;end;finallyghy Freeend;end;

procedure TForm DBNavigator Click(Sender: TObject; Button: TNavigateBtn);beginif button in [nbFirst nbPrior nbNext nbLast] then showbutton Click;end;

end

cha138/Article/program/Delphi/201311/24961

相关参考

知识大全 直接存取文件的方法

  为了方便编程Delphi在很多需要与文件打交道的组件类中都定义了直接文件存取方法使用这些方法可以非常简单地将组件中处理的数据保存到文件中或从文件中读取所需的数据到组件中LoadFromFile和S

知识大全 利用Delphi的TJPEGImage控件把BMP转化成JPEG

利用Delphi的TJPEGImage控件把BMP转化成JPEG  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起

知识大全 Delphi存取图像完整解决方案

Delphi存取图像完整解决方案  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 对于涉及图像数据的

知识大全 Delphi中对Oracle存取RTF文档

Delphi中对Oracle存取RTF文档  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  关系数

知识大全 Delphi实现在数据库中存取图像

Delphi实现在数据库中存取图像  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  本实例演示如何

知识大全 放置任意的文件到Delphi的EXE文件里面

放置任意的文件到Delphi的EXE文件里面  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  通常

知识大全 在DELPHI程序中使用ADO对象存取ODBC数据库

在DELPHI程序中使用ADO对象存取ODBC数据库  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 ASP.NET如何存取SQL Server数据库图片

ASP.NET如何存取SQLServer数据库图片  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 复杂的结构化存取(三):存取函数

  今天写了四个小函数拿来与大家共享  DirDoc把文件夹下的所有文件(不包括子文件夹)保存成一个复合文件  DocDirDirDoc的反操作  ZipDirDoc同DirDoc只是同时执行了压缩 

知识大全 数据从SQL Server输到文本文件

数据从SQLServer输到文本文件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  你需要做的第