我怎么把图形上传到ACCESS,sql数据库当中,然后又是怎么读取,显示出来,希望给充代码与比较祥细的注释!谢谢!

解决方案 »

  1.   

    数据库是 SQLServer 
    var    
      BS1: TMemoryStream;
    begin
        try
            BS1 := TMemoryStream.Create;
            Image1.Picture.Graphic.SaveToStream(BS1);
            with EmpQuery do
            begin
              Close;
              SQL.Clear;
              s1 := 'insert into 表(Photo) values (:pPhoto)';
              SQL.Add(s1);
              Parameters.ParamByName('pPhoto').LoadFromStream(BS1, ftGraphic);
              EXECSQL;
            end;
        finally
            BS1.free;
        end;
    //显示也类似
      

  2.   

    这个显示图片方法有点障眼法,感觉不好。参考下好了
    var
      MyJPEG: TJPEGImage;
    begin
        Image1.Picture.Graphic := nil;
            try
                MyJPEG := TJPEGImage.Create;
                MyJPEG.Assign(DBGrid.DataSource.DataSet.FieldByName('Photo'));
                MyJPEG.SaveToFile('tmp.jpg');
                Image1.Picture.LoadFromFile('tmp.jpg');
            finally
                MyJPEG.Free;
            end;end;
      

  3.   

    给你一个插入数据库SQL SERVER 的
    uses jpeg;procedure TForm1.Button1Click(Sender: TObject); // 插入图片过程
    var
    testStream:TMemoryStream;
    begin
      try
        testStream := TMemoryStream.Create; //  创建内存流
        Image1.Picture.Graphic.SaveToStream(testStream);   // 将图片保存到内存流中
        adoquery1.Close;
        adoquery1.SQL.Clear;
        adoQuery1.SQL.Add('Insert into tbltemp (Image) values (:photo)');    // 进行插入操作
        adoQuery1.Parameters.ParamByName('photo').LoadFromStream(testStream,ftBlob); // 读取保存的内存图
        adoquery1.ExecSQL;
      finally
        testStream.Free;     // 释放内存流
      end;
    end;