procedure TForm1.Button1Click(Sender: TObject); var rmFilestream:Tfilestream; begin rmFilestream:=TFileStream.Create('d:\2.jpg',fmopenRead); rmFilestream.Position:=0; try with adoquery1 do begin edit; TBlobField(FieldByName('c_blob')).loadfromStream(rmFilestream);///保存到库里 post; end; finally rmFilestream.Free; end; end;procedure TForm1.BitBtn1Click(Sender: TObject); begin with adoquery1 do begin TBlobField(adoquery1.FieldByName('c_blob')).SaveToFile('e:\2.jpg'); end; end;
if (uppercase(s1) ='.JPG' ) or (uppercase(s1)='.JPEG') // 图片格式一定要大写 THEN begin pjpg.LoadFromFile(s ); pic:=TMemoryStream.Create; pjpg.SaveToStream(pic); image1.Picture.Bitmap.Assign(pjpg); pic.Position:=0; adoquery1.Insert ; adoquery1.FieldByName('borj').VALUE := 2; TBlobField(adoquery1.FieldByName('pic')).LoadFromStream(pic); adoquery1.post; pic.Free; pjpg.free; end ; if (uppercase(s1)='.BMP') then begin edit1.Text :=uppercase(s1); image1.Picture.LoadFromFile(s); adoquery1.Insert ; adoquery1.FieldByName('pic').Assign(image1.Picture.Graphic); adoquery1.FieldByName('borj').VALUE := 3; adoquery1.Post ; end; end; procedure TForm1.BitBtn1Click(Sender: TObject); var jpeg:tjpegimage; begin image1.Picture.Graphic :=nil; with adoquery1 do begin if adoquery1.FieldByName('borj').Value =3 // bmp then image2.Picture.Bitmap.Assign(fieldbyname('pic')) ; if adoquery1.FieldByName('borj').Value =2 //jpge; then begin jpeg:=tjpegimage.Create ; try jpeg.Assign(adoquery1.FieldByName('pic') ); image2.Picture.Graphic:=jpeg; finally jpeg.Free ; end; end; end ; end;end.
var rmFilestream:Tfilestream;
begin
rmFilestream:=TFileStream.Create('d:\2.jpg',fmopenRead);
rmFilestream.Position:=0;
try
with adoquery1 do
begin
edit;
TBlobField(FieldByName('c_blob')).loadfromStream(rmFilestream);///保存到库里
post;
end;
finally
rmFilestream.Free;
end;
end;procedure TForm1.BitBtn1Click(Sender: TObject);
begin
with adoquery1 do
begin
TBlobField(adoquery1.FieldByName('c_blob')).SaveToFile('e:\2.jpg');
end;
end;
//其中有些地方不是太严密,回去修改下。
//delphi7+ sql2000通过.可以保存jpeg,jpg,bmp三种格式。
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, jpeg,DB, ADODB, ExtCtrls, Buttons, Grids, DBGrids,
DBCtrls;type
TForm1 = class(TForm)
ADOConnection1: TADOConnection;
ADOQuery1: TADOQuery;
Button1: TButton;
OpenDialog1: TOpenDialog;
Edit1: TEdit;
Image1: TImage;
Image2: TImage;
BitBtn1: TBitBtn;
DBGrid1: TDBGrid;
DataSource1: TDataSource;
ADOQuery1pic: TBlobField;
ADOQuery1borj: TStringField;
procedure Button1Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject); private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;
s:string;
s1:string;
implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
var
bitmap1:tbitmap;
pjpg:tjpegimage;
pic:TMemoryStream;begin
pjpg:=tjpegimage.Create;
if opendialog1.Execute
then
s:=opendialog1.FileName ;
s1:=extractfileext(s);
if (uppercase(s1) ='.JPG' ) or (uppercase(s1)='.JPEG') // 图片格式一定要大写
THEN
begin
pjpg.LoadFromFile(s );
pic:=TMemoryStream.Create;
pjpg.SaveToStream(pic);
image1.Picture.Bitmap.Assign(pjpg); pic.Position:=0;
adoquery1.Insert ;
adoquery1.FieldByName('borj').VALUE := 2;
TBlobField(adoquery1.FieldByName('pic')).LoadFromStream(pic);
adoquery1.post;
pic.Free;
pjpg.free;
end ; if (uppercase(s1)='.BMP') then begin
edit1.Text :=uppercase(s1); image1.Picture.LoadFromFile(s);
adoquery1.Insert ;
adoquery1.FieldByName('pic').Assign(image1.Picture.Graphic);
adoquery1.FieldByName('borj').VALUE := 3; adoquery1.Post ;
end;
end; procedure TForm1.BitBtn1Click(Sender: TObject); var
jpeg:tjpegimage;
begin
image1.Picture.Graphic :=nil;
with adoquery1 do
begin
if adoquery1.FieldByName('borj').Value =3 // bmp
then
image2.Picture.Bitmap.Assign(fieldbyname('pic')) ; if adoquery1.FieldByName('borj').Value =2 //jpge; then
begin
jpeg:=tjpegimage.Create ;
try
jpeg.Assign(adoquery1.FieldByName('pic') );
image2.Picture.Graphic:=jpeg;
finally
jpeg.Free ;
end;
end; end ;
end;end.