在DELPHI中更简单的存取JPEG文件到SQLSERVER数据库

王朝delphi·作者佚名  2006-01-08
宽屏版  字体: |||超大  

最近在CSDN上看到两篇关于《DELPHI中存取JPEG文件到SQLSERVER》中的文章之后,觉得其中讲述的方法虽然有可取之处,但颇费时,我这里有更简单的操作方法,而且安全可靠,不敢一人独享,愿发布出来与大家共享。在Delphi7.0+Win2000+SqlServer 2000中测试通过,运行良好,现将思路、源码公开如下:

解决思路:

1、 关键在于将打开的JPEG文件动态转换为Tbitmap对象并显示在Timage对象中;

2、 将显示的图片提交到数据库中。

本例中在SQLSERVER2000中建立了一个试例表:exam(xm char(10),photo image);

程序源代码:

unit SavePic;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ExtDlgs, ExtCtrls, DBCtrls, Grids, DBGrids, DB, ADODB, Buttons,

StdCtrls,Jpeg;

type

TForm1 = class(TForm)

SpeedButton1: TSpeedButton;

ADOConnection1: TADOConnection;

Table1: TADOTable;

DataSource1: TDataSource;

DBGrid1: TDBGrid;

DBImage1: TDBImage;

Image1: TImage;

SpeedButton2: TSpeedButton;

OpenPictureDialog1: TOpenPictureDialog;

Label1: TLabel;

Label2: TLabel;

Edit1: TEdit;

SpeedButton3: TSpeedButton;

procedure SpeedButton2Click(Sender: TObject);

procedure SpeedButton1Click(Sender: TObject);

procedure SpeedButton3Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.SpeedButton2Click(Sender: TObject);

var

bmp1:TBitmap;

jpg1:TJpegImage;

begin

OpenPictureDialog1.DefaultExt:=GraphicExtension(TJpegimage);

if OpenPictureDialog1.Execute then

begin

bmp1:=TBitmap.Create;

jpg1:=TJpegImage.Create;

try

jpg1.LoadFromFile(OpenPictureDialog1.FileName);

bmp1.Assign(jpg1);

Image1.Picture.Bitmap.Assign(bmp1);

finally

jpg1.Free;

bmp1.Free;

end;

end;

end;

procedure TForm1.SpeedButton1Click(Sender: TObject);

begin

table1.Open;

table1.insert;

table1.fieldbyname('xm').asstring:=Edit1.Text;

table1.FieldByName('photo').Assign(Image1.Picture);

table1.post;

table1.Refresh;

end;

end.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有