利用流 var FileStream:TFileStream; BlobStream:TadoBlobStream; begin FileStream:=TFileStream.Create(opendialog1.FileName,fmOpenRead); temptable.Edit; BlobStream:=TadoBlobStream.Create(TMemoField(temptable.FieldByName('img_attach')),bmreadWrite); BlobStream.Seek(0,soFromBeginning); BlobStream.Truncate; BlobStream.CopyFrom(FileStream,FileStream.size); filestream.Free; BlobStream.free; temptable.Post; end;
上面的代码还支持avi上窜到数据库中
也不知是什麼時候從網上下的這個實例,現在借花獻佛僅供參考:在SQL Server中建立TEST表,两个字段,id varchar(10),photo image(16); procedure TForm1.BitBtn1Click(Sender:TObject); begin openpicturedialog1.execute; image1.picture.loadfromfile(openpicturedialog1.filename); end;procedure TForm1.BitBtn2Click(Sender: TObject); var graphic1:Timage; begin graphic1:=Timage.Create(self); graphic1.picture.loadfromfile(openpicturedialog1.filename); table1.Open; table1.insert; table1.fieldbyname(’id’).asstring:=’121’; table1.fields[1].assign(graphic1.Picture); table1.post; table1.close; graphic1.free; end;
procedure TEmp_Form.SetPicture(EmpID: string; TempQuery: Tadoquery); var MS_JpegStream:TMemoryStream; M_BitMap:TBitMap; M_Jpeg:TJpegImage; begin try MS_JpegStream:=TMemoryStream.Create; M_BitMap:=TBitMap.Create; M_Jpeg:=TJpegImage.Create; if extractfileext(filename)='.bmp' then begin M_BitMap.LoadFromFile(filename); M_Jpeg.Compress; M_Jpeg.Assign(M_BitMap); end else if extractfileext(filename)='.jpg' then begin M_Jpeg.LoadFromFile(filename); end; M_Jpeg.SaveToStream(MS_JpegStream); with tempQuery do begin close; sql.clear; sql.Add('update userinfo set userphoto_ui=:IMage where userno_ui=:empid'); parameters.ParamByName('empid').value:=trim(empid); parameters.ParamByName('image').LoadFromStream(MS_JpegStream,ftblob); ExecSQL; end; finally MS_JpegStream.Free; M_BitMap.Free; M_Jpeg.Free; end; end;测试通过给分吧!
var
FileStream:TFileStream;
BlobStream:TadoBlobStream;
begin
FileStream:=TFileStream.Create(opendialog1.FileName,fmOpenRead);
temptable.Edit;
BlobStream:=TadoBlobStream.Create(TMemoField(temptable.FieldByName('img_attach')),bmreadWrite);
BlobStream.Seek(0,soFromBeginning);
BlobStream.Truncate;
BlobStream.CopyFrom(FileStream,FileStream.size);
filestream.Free;
BlobStream.free;
temptable.Post;
end;
procedure TForm1.BitBtn1Click(Sender:TObject);
begin
openpicturedialog1.execute;
image1.picture.loadfromfile(openpicturedialog1.filename);
end;procedure TForm1.BitBtn2Click(Sender: TObject);
var
graphic1:Timage;
begin
graphic1:=Timage.Create(self);
graphic1.picture.loadfromfile(openpicturedialog1.filename);
table1.Open;
table1.insert;
table1.fieldbyname(’id’).asstring:=’121’;
table1.fields[1].assign(graphic1.Picture);
table1.post;
table1.close;
graphic1.free;
end;
var
MS_JpegStream:TMemoryStream;
M_BitMap:TBitMap;
M_Jpeg:TJpegImage;
begin
try
MS_JpegStream:=TMemoryStream.Create;
M_BitMap:=TBitMap.Create;
M_Jpeg:=TJpegImage.Create;
if extractfileext(filename)='.bmp' then
begin
M_BitMap.LoadFromFile(filename);
M_Jpeg.Compress;
M_Jpeg.Assign(M_BitMap);
end
else if extractfileext(filename)='.jpg' then
begin
M_Jpeg.LoadFromFile(filename);
end;
M_Jpeg.SaveToStream(MS_JpegStream);
with tempQuery do
begin
close;
sql.clear;
sql.Add('update userinfo set userphoto_ui=:IMage where userno_ui=:empid');
parameters.ParamByName('empid').value:=trim(empid);
parameters.ParamByName('image').LoadFromStream(MS_JpegStream,ftblob);
ExecSQL;
end;
finally
MS_JpegStream.Free;
M_BitMap.Free;
M_Jpeg.Free;
end;
end;测试通过给分吧!