½üÈÕ±ÊÕßÊéдһ¸öСÐ͵ÄѧÉú¹ÜÀíϵͳʱ£¬ÐèÒªÓõ½ADO¿Ø¼þ´æÈ¡SQL ServerÊý¾Ý¿âͼƬ£¬²é¿´×ÊÁÏ·¢ÏÖ»ù±¾¶¼ÊÇÕë¶ÔBMPÎļþ½øÐвÙ×÷(¾ÞÔöÊý¾Ý¿â´óС)£¬µ«·¢ÏÖÁË¡ïeagletian¡ï¸ßÊÖ·ÒëµÄADOÓ¢Îļ¼ÊõÎĵµ£¬ÀïÃæÉæ¼°µ½ÁËÊý¾Ý¿â´æÈ¡JPEGÎļþµÄ¹Ø¼ü¼¼Êõ£¬ÔÚwin98+sql server×ÀÃæ°æÖвâÊÔͨ¹ý£¬ÔËÐÐÁ¼ºÃ£¬ÏÖÓÚÔ´Â빫¿ªÈçÏ£º unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, DBCtrls, Grids, DBGrids, Db, ADODB,jpeg, StdCtrls,dbtables; {Ò»¶¨ÒªUSES JPEGµ¥Ôª,ʹÄÜ´æ´¢JPGÎļþ¸ñʽ} type TForm1 = class(TForm) DataSource1: TDataSource; ADOQuery1: TADOQuery; DBGrid1: TDBGrid; DBNavigator1: TDBNavigator; Image1: TImage; savebutton: TButton; showbutton: TButton; OpenDialog1: TOpenDialog; ADOQuery1id: TIntegerField; ADOQuery1pic: TBlobField; procedure savebuttonClick(Sender: TObject); procedure showbuttonClick(Sender: TObject); procedure DBNavigator1Click(Sender: TObject; Button: TNavigateBtn); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} function JpegStartsInBlob(PicField:TBlobField):integer; var ghy: TADOBlobstream; buffer:Word; hx: string; begin Result := -1; ghy := TADOBlobstream.Create(PicField, bmRead); try while (Result = -1) and (ghy.Position + 1 < ghy.Size) do begin ghy.ReadBuffer(buffer, 1); hx:=IntToHex(buffer, 2); if hx = ¡¯FF¡¯ then begin ghy.ReadBuffer(buffer, 1); hx:=IntToHex(buffer, 2); if hx = ¡¯D8¡¯ then Result := ghy.Position - 2 else if hx = ¡¯FF¡¯ then ghy.Position := ghy.Position-1; end; //if end; //while finally ghy.Free end; //try end; procedure TForm1.savebuttonClick(Sender: TObject); var picstream:tadoblobstream; begin adoquery1.edit; picstream:=tadoblobstream.Create(tblobfield(adoquery1.fields[1]),bmWrite); if form1.opendialog1.execute then begin picstream.LoadFromFile(opendialog1.filename); picstream.Position:=0; adoquery1.edit; tblobfield(adoquery1.Fields[1]).loadfromstream(picstream); adoquery1.post; end; end; procedure TForm1.showbuttonClick(Sender: TObject); var ghy:TADOBlobstream; pic:tjpegimage; begin ghy := TADOBlobstream.Create(Adoquery1pic, bmRead); try ghy.Seek(JpegStartsInBlob(Adoquery1pic),soFromBeginning); Pic:=TJpegImage.Create; try Pic.LoadFromStream(ghy); Image1.Picture.Graphic:=Pic; finally Pic.Free; end; finally ghy.Free end; end; procedure TForm1.DBNavigator1Click(Sender: TObject; Button: TNavigateBtn); begin if button in [nbFirst, nbPrior, nbNext, nbLast] then showbutton.Click; end; end. Èç¹ûÊý¾Ý¿âÖÐÒª´æ´¢µÄÊÇBMPÎļþ£¬ÔòÔÚprocedure TForm1.showbuttonClick(Sender: TObject);¹ý³ÌÖдúÂë¸ü¸ÄÈçϼ´¿É´æ´¢ÏÔʾBMPÎļþ¸ñʽµÄ²Ù×÷¡£ procedure TForm1.showbuttonClick(Sender: TObject); var ghy:TADOBlobstream; pic:tbitmap; begin ghy := TADOBlobstream.Create(Adoquery1pic, bmRead); try { ghy.Seek(JpegStartsInBlob(Adoquery1pic),soFromBeginning);} Pic:=Tbitmap.Create; try Pic.LoadFromStream(ghy); Image1.Picture.Graphic:=Pic; finally Pic.Free; end; finally ghy.Free end; end; ¡¡¡¡µ½´ËÓÃDELPHI´æÈ¡JPEGÎļþµ½SQL ServerÊý¾Ý¿âÖеľßÌå²Ù×÷ÒѾÐðÊöÍê±Ï¡£ ÎÒµÄÍøÕ¾£º http://delphijl.99898.com QQ:123168091 |