我们平常要和图片打交道,那么我们如何把图片存在数据库中呢?
-------------------------------------------------------------------------------------------------美丽分割线---------------------------
年代:2007
文件:My0919.7z
程序运行效果如下图:
单元文件:
Unit1.pas
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, StdCtrls, ExtCtrls, ExtDlgs, LoadSaveImg, DBCtrls;
type
TForm1 = 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;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
FName, FType: string;
begin
OpenPictureDialog1.Filter := GraphicFilter(TGraphic);
if OpenPictureDialog1.Execute then
begin
FName := OpenPictureDialog1.Files.Strings[0];
FType := Copy(FName, LastDelimiter(' .', FName) + 1, Length(Fname) - LastDelimiter(' .', Fname));
LSI := TLSImg.Create;
if LSI.GetImgType(FType) <> 0 then
begin
TS := TMemoryStream.Create;
LSI.Picture.Graphic.LoadFromFile(FName);
LSI.SaveToStream(TS);
with ADODataSet1 do
begin
try
Append;
(Fields[1] as TBlobField).LoadFromStream(TS);
Post;
except
raise
end;
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);
begin
with ADODataSet1 do
begin
if not Eof then
begin
LSI := 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.