小弟想请教一下:在Delphi中使用ADO,如何存储图象到SQL Server数据库,如何从数据库中读取图象并显示在Image控件中? 谢谢!!!

解决方案 »

  1.   

    Aquery := Tadoquery.Create(self);
            Aquery.Connection := Dset.ADOConnection1;
            try
              with Aquery do begin
                Close;
                Sql.Clear;
                Sql.Add('select 产品图片 From 产品图片 where 产品编码=' + quotedstr(pub_bm));
                Open;
                if not Eof then begin
                  try
                    m_jpegstream := tmemorystream.Create;
                    (fieldByname('产品图片') as TBlobField).SaveToStream(m_jpegstream);
                    m_jpegstream.Position := 0;
                    Image.Picture.Graphic := nil;
                    Image.Picture.Graphic := TJpegImage.Create;
                    Image.Picture.Graphic.LoadFromStream(m_jpegstream);
                  finally
                    m_jpegstream.Free;
                  end;            end;
              end;
            finally
              Aquery.Free;
            end;
          end;
      

  2.   

    if (Image.Picture.Graphic <> nil) and (Length(trim(EdPicture.Text)) <> 0) then begin
            with ADOQuery1 do begin {图片}
              Close;
              Sql.Clear;
              Sql.Add('Insert Into 产品图片(产品编码,产品图片) values(');
              Sql.Add(quotedstr(trim(EdBm.Text)) + ',:picture)');
              parameters.ParamByName('picture').LoadFromFile(trim(EdPicture.Text), ftblob);
              ExecSql;
            end;