各位大虾,你们好!
能不能用sql语句插入一条包含图片字段的记录。insert into........
谢谢!111

解决方案 »

  1.   

    不能,
    给你点代码
    数据库中存放图片的字段类型为blob
    var
        MS_JpegStream:TMemoryStream;
        M_BitMap:TBitMap;
        M_Jpeg:TJpegImage;
    procedure TinsertForm.buttonSelectClick(Sender: TObject);
    var
    filename:string;
    begin
    image1.Picture.LoadFromFile('');
    if OpenDialog1.Execute then
    begin        filename:=extractfileext(OpenDialog1.FileName);        image1.Picture.LoadFromFile(OpenDialog1.FileName);        
            MS_JpegStream:=TMemoryStream.Create;
            M_BitMap:=TBitMap.Create;
            M_Jpeg:=TJpegImage.Create;
        if (filename='.bmp') or (filename='.BMP') then
          begin
            M_BitMap.LoadFromFile(OpenDialog1.FileName);
            M_Jpeg.Compress;
            M_Jpeg.Assign(M_BitMap);
          end
        else if (filename='.jpg') or (filename='.JPG') then
          begin
            M_Jpeg.LoadFromFile(OpenDialog1.FileName);
          end;
        M_Jpeg.SaveToStream(MS_JpegStream);
    end;
    end;procedure TinsertForm.btnSaveClick(Sender: TObject);
    begin
    //插入新的记录
    try
    adoquery1.close;
    adoquery1.SQL.Clear;
    adoquery1.SQL.Add('insert into hm_jc_dxal(tupian)values');
    adoquery1.SQL.Add('(:tupian)');
    adoquery1.Parameters.ParamByName('tupian').LoadFromStream(MS_JpegStream,ftblob);
    adoquery1.ExecSQL;ShowMessage('资料成功保存!');
    MS_JpegStream.Free;
    M_BitMap.Free;
    M_Jpeg.Free;
    except
    ShowMessage('资料保存失败!!');
    end;
    end;
    end;