关于存储图片到数据库的有关问题
关于存储图片到数据库的问题。
procedure TForm1.btnSaveClick(Sender: TObject);
var
MyJPEG : TJPEGImage;
MS : TMemoryStream;
begin
MyJPEG := TJPEGImage.Create;
try
MyJPEG.Assign(imgPhoto.Picture.Graphic);
MS := TMemoryStream.Create;
MyJPEG.SaveToStream(MS);
MS.Position := 0;
qry.Close;
qry.SQL.Add('insert into CasePerson (CaseID, PersonType, Name, Photo) values(''123'',''所有人'',''AndyLau'',:PhotoName)');
qry.Parameters.ParamByName('PhotoName').LoadFromStream(MS);
qry.Open;
ShowMessage('图像保存成功');
finally
MyJPEG.Free;
end;
end;
程序在编译的时候会提示 qry.Parameters.ParamByName('PhotoName').LoadFromStream(MS);
这一行有错,[Error] Unit1.pas(157): Not enough actual parameters,这是什么问题?
------解决方案--------------------
procedure TParameter.LoadFromStream(Stream: TStream; DataType: TDataType);
你缺少一个参数,看看帮助就明白了
------解决方案--------------------
你这个字段的类型应该是ftBlob
procedure TForm1.btnSaveClick(Sender: TObject);
var
MyJPEG : TJPEGImage;
MS : TMemoryStream;
begin
MyJPEG := TJPEGImage.Create;
try
MyJPEG.Assign(imgPhoto.Picture.Graphic);
MS := TMemoryStream.Create;
MyJPEG.SaveToStream(MS);
MS.Position := 0;
qry.Close;
qry.SQL.Add('insert into CasePerson (CaseID, PersonType, Name, Photo) values(''123'',''所有人'',''AndyLau'',:PhotoName)');
qry.Parameters.ParamByName('PhotoName').LoadFromStream(MS);
qry.Open;
ShowMessage('图像保存成功');
finally
MyJPEG.Free;
end;
end;
程序在编译的时候会提示 qry.Parameters.ParamByName('PhotoName').LoadFromStream(MS);
这一行有错,[Error] Unit1.pas(157): Not enough actual parameters,这是什么问题?
------解决方案--------------------
procedure TParameter.LoadFromStream(Stream: TStream; DataType: TDataType);
你缺少一个参数,看看帮助就明白了
------解决方案--------------------
你这个字段的类型应该是ftBlob