Delphi XE存储三层架构处理图片的时候,有很多问题,存储图片的时候无法使用clientDataset, LoadFromStream来保存图片。在网上找了些发现很多人有类似问题。用params来存储文字也发现有截断问题,最好的方式就是‘’‘+str+‘’‘的方式来存储。思路就是把图片转换成字符串来存储。
//数据库中建表:
{建表}
create table ImgCreate (No int primary key identity(1,1),img varchar(max))
//加载图片代码:
if OpenPictureDialog1.Execute then
begin
if OpenPictureDialog1.FileName<>'' then
begin
Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
imgName := JpegToTex(OpenPictureDialog1.FileName);//图片转换成字符串函数
end;
end;
//JpegToTex 函数实现
function JpegToTex(FileName: string): WideString;
var
FileStream : TFileStream;
StringStream : TStringS