我们平常要和图片打交道,那么我们如何把图片存在数据库中呢?
-------------------------------------------------------------------------------------------------美丽分割线---------------------------
年代: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.