一个关于将图片存入和读取数据库的问题

                            
我存数据库是这样做的   
  var  
      StringStream   :   TStringStream;  
  begin  
          StringStream   :=   TStringStream.Create   ('');  
          with   TMemoryStream.Create   do   try  
                  LoadFromFile(edit1.Text);  
                  SaveToStream(StringStream);  
          finally  
                  Free;  
          end;  
   
          StringStream.Position   :=   0;  
   
          with   ADOQuery.SQL   do  
          begin  
                  Clear;  
                  Add('INSERT   INTO   photo');  
                  Add('(item_id,photo_name,photo_cont)');  
                  Add('VALUES   (:item_id,   :photo_name,   :photo_cont)');  
          end;  
          with   ADOQuery   do  
          begin  
                  parameters.ParamByName   ('item_id').Value   :=1;  
                  parameters.ParamByName   ('photo_name').Value   :='测试';  
                  parameters.ParamByName   ('photo_cont').Value   :=   StringStream.DataString;  
          end;  
   
          StringStream.Free;    
          ADOQuery.ExecSQL;   //开始插入记录  
          ADOQuery.Open;  
  end;  
   
  读数据库显示图片是这样做的  
  var  
          str:Tmemorystream;  
  begin  
          with   ADOQuery   do  
                  Close;  
                  SQL.Clear;  
                  SQL.Add('select   photo_cont   from   photo   where   photo_id=@@IDENTITY');  
                  OPEN;    
          end;  
   
          str:=Tmemorystream.Create;  
          str.Position:=0;  
          Tblobfield(Query.FieldByName('photo_cont')).savetostream(str);  
          str.SaveToFile(ExtractFilePath(Application.ExeName)+'test.jpg');  
   
          Image.Picture.LoadFromFile(ExtractFilePath(Application.ExeName)+'test.jpg');  
          str.Free;  
   
  end;  
   
  但是每次加载图片时总是报“JPEG   error   #52”而且无论选择什么大小的图片(都是JPG),存的临时文件test.jpg都是172k,这是为什么?

查看回复