保存图片到SQL Server数据库中
- Delphi(Pascal) code
procedure TForm4.CttMButton1Click(Sender: TObject);var Stream:TMemoryStream;begin try Stream := TMemoryStream.Create; // 创建内存流 Image1.Picture.Graphic.SaveToStream(Stream); // 将图片保存到内存流中 Stream := Stream; //Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);(另一种方法) ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('Insert into BD_Photo values (:GUID,:sPhoto)'); ADOQuery1.Parameters.ParamByName('GUID').Value :='AB007A7A-00C2-4F4C-BB7F-1D746B17F09A'; ADOQuery1.Parameters.ParamByName('sPhoto').LoadFromStream(Stream,ftBlob); // sPhoto属性image //读取保存的内存图 ADOQuery1.ExecSQL; finally Stream.Free; // 释放内存流 end;end;这是我在网上找到的源码,但是我取Stream的值时是空值,而且在ADOQuery1.ExecSQL执行的时候报错‘对于造型说明无效的字符值’,我主要的目的是想把图片保存到SQL Server数据库中,但是现在还没有弄好,我不要保存路径的那种, 如果谁那边有源码请共享一下。读取保存的内存图
[解决办法]
http://aliang8088378.blog.163.com/blog/static/35390272201051144819951/
[解决办法]
- Delphi(Pascal) code
procedure TForm4.CttMButton1Click(Sender: TObject);var Stream:TMemoryStream;begin try Stream := TMemoryStream.Create; // 创建内存流 Image1.Picture.Graphic.SaveToStream(Stream); // 将图片保存到内存流中 //Stream := Stream; Stream.position := 0; //《========== //Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);(另一种方法) ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('Insert into BD_Photo values (:GUID,:sPhoto)'); ADOQuery1.Parameters.ParamByName('GUID').Value :='AB007A7A-00C2-4F4C-BB7F-1D746B17F09A'; ADOQuery1.Parameters.ParamByName('sPhoto').LoadFromStream(Stream,ftBlob); // sPhoto属性image //读取保存的内存图 ADOQuery1.ExecSQL; finally Stream.Free; // 释放内存流 end;end;