想把图片存储到数据库中,但总是出错,请教各位大侠
procedure TForm1.Button2Click(Sender: TObject);
var
  Graphic1:TGraphic;
begin
  OpenDialog1.Execute
  Graphic1:=TGraphic.Create();
  Graphic1.LoadFromFile(OpenDialog1.FileName); //出错处
  Table1.DatabaseName:='DB1.mdb';
  Table1.TableName:='t1';
  Table1.Active:=True;
  Table1.Insert;
  Table1.Fields[0].Assign(Graphic1);
  Table1.Post;
  Graphic1.Free;
end;

解决方案 »

  1.   

    jslygwx(海豚) OpenDialog1.Execute 我手误写错了,
    注意错误处是在
    Graphic1.LoadFromFile(OpenDialog1.FileName); //出错处
      

  2.   

    http://218.56.11.178:8020/web/index.aspx->下载基地->例程-数据库/报表->数据库图片bmp/jpg存储(Accsee)/数据库存储bmp/jpg图片(sql server)
      

  3.   

    将程序改为如下:(db为bde连接,调用bmp类图片)
    var
      Graphic1:TBitMap;
    begin
      OpenDialog1.Execute;
      Graphic1:=TBitMap.Create;
      Graphic1.LoadFromFile(OpenDialog1.FileName);
      Table1.DatabaseName:='db';
      Table1.TableName:='t1';
      Table1.Active:=True;
      Table1.Insert;
      Table1.Fields[0].Assign(Graphic1);
      Table1.Post;
      Graphic1.Free;
    end;
      

  4.   

    回 jslygwx(海豚) 谢谢,
    但在Table1.Fields[0].Assign(Graphic1); //又出错
    Graphic1是TBitMap而Table1.Fields[0].Assign(..)需要TBlobField类型,如何转换。
      

  5.   

    function Tform1.imagesavetosql(dataset:TCustomADODataSet;zdxh:integer):boolean;
    {
    ////////////////////图片信息存入SQL数据库///////////////////////////
    ///////输入参数: 1.dataset 数据集控件名  2.zdxh 字段序号(integer)
    ///////输出参数: 无  结果成功返回true
    ///////涵数功能: 把bmp,jpg,ico类型的图片数据存入sql中的image字段
    ///////完成时间:2003-07-15
    ///////最后修改时间:2003-07-15
    ////////////////////////////////////////////////////////////////////
    }
    var
      imagebmp:Timage;  //bmp图片
      imagejpg:Tjpegimage; //jpg图片
      imageico:Ticon;  //ico图片
      zhbl:Tbitmap;    //ico到bmp的转化变量
      lx:string;       //图片类型
      picdialog:Topenpicturedialog;//自定义对话框
      image:Timage; //自定义图片控件
    begin
      imagebmp:=Timage.Create(nil);
      imagejpg:=Tjpegimage.Create;
      imageico:=Ticon.Create;
      zhbl:=Tbitmap.Create;
      image:=Timage.Create(nil);
      picdialog:=Topenpicturedialog.Create(nil);
      picdialog.InitialDir:=extractfilepath(Application.ExeName);
      picdialog.Title:='请选择要保存的图片';
      if picdialog.execute then
      begin
      image.Picture.LoadFromFile(picdialog.FileName);
      image.Hint:=picdialog.FileName;
      image.showhint:=true;
      end;
      if image.Hint<>'' then
      begin
         lx:=ExtractFileExt(image.Hint);
         if (lx='.bmp') or (lx='.BMP') then
         begin
         imagebmp.Picture.Bitmap.LoadFromFile(image.Hint);
         end;
         if (lx='.jpg') or (lx='.JPG') then
         begin
         imagejpg.LoadFromFile(image.Hint);
         imagebmp.Picture.Bitmap.Assign(imagejpg);
         end;
         if (lx='.ico') or (lx='.ICO') then
         begin
         imageico.LoadFromFile(image.Hint);
         zhbl.Width:=imageico.Width;
         zhbl.Height:=imageico.Height;
         zhbl.canvas.Draw(0,0,imageico);
         end;
      end;
      try
      if (lx='.ico') or (lx='.ICO') then
      begin
      dataset.Fields[zdxh].Assign(zhbl);
      end
      else
      begin
      dataset.Fields[zdxh].Assign(imagebmp.Picture);
      end;
      result:=true;
      finally
      imagebmp.Free;
      imagejpg.Free;
      imageico.Free;
      zhbl.Free;
      picdialog.Free;
      image.Free;
      end;
    end;