主题:如何用delphi将图像存入SQL数据库???
cherry2007
[专家分:0] 发布于 2007-04-25 11:02:00
我想把JPEG和bmp格式的图象存入SQL Server2000中,哪位大哥可以帮忙写一段代码
回复列表 (共5个回复)
沙发
aizaixiiii [专家分:2130] 发布于 2007-04-26 15:05:00
function PictrueSave(aParam,aTable:string;aImage:TImage;adoCommand:TAdoCommand):boolean;
var
testStream:TMemoryStream;
begin
Result := True;
try
testStream := TMemoryStream.Create;
aImage.Picture.Graphic.SaveToStream(testStream);
adoCommand.CommandText :='Insert into '+ aTable +'('+
aParam+
')values('+
':'+aParam+')';
adoCommand.Parameters.ParamByName(aParam).LoadFromStream(testStream,ftBlob);
try
adoCommand.Execute;
except
Result := False;
end;
finally
testStream.Free;//釋放內存流
end;
end;
这是ACCESS的,你看下
板凳
cherry2007 [专家分:0] 发布于 2007-04-26 18:32:00
我是用delphi中存储图片到SQL中的,下面是程序,但运行的时候总是出问题。
提示的错误是:对象名picture无效。谁能帮忙解答一下到底是哪里出错了
procedure TForm1.SaveButtonClick(Sender: TObject); //存图片到SQL中
var
Ms: TmemoryStream;
jpg: Tjpegimage;
begin
if (OpenPictureDialog1.Execute) and (Edit1.Text <> '') then
begin
Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
Ms := TmemoryStream.Create;
jpg := Tjpegimage.Create;
jpg.Assign(Image1.Picture.Graphic); //转为jpeg格式
jpg.SaveToStream(Ms);
Ms.Position := 0;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
adoquery1.SQL.Add('insert picture(pic_name,picture) values(:pic_name,:picture)'); //保存图片到数据库
ADOQuery1.Parameters.ParamByName('pic_name').Value := Edit1.Text;
ADOQuery1.Parameters.ParamByName('picture').LoadFromStream(Ms, ftBlob);
ADOQuery1.ExecSQL;
Ms.Free;
jpg.Free;
end
else
begin
ShowMessage('保存出错或无文件名!');
Exit;
end;
end;
3 楼
cherry2007 [专家分:0] 发布于 2007-04-26 18:33:00
我是用delphi中存储图片到SQL中的,下面是程序,但运行的时候总是出问题。
提示的错误是:对象名picture无效。谁能帮忙解答一下到底是哪里出错了
procedure TForm1.SaveButtonClick(Sender: TObject); //存图片到SQL中
var
Ms: TmemoryStream;
jpg: Tjpegimage;
begin
if (OpenPictureDialog1.Execute) and (Edit1.Text <> '') then
begin
Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
Ms := TmemoryStream.Create;
jpg := Tjpegimage.Create;
jpg.Assign(Image1.Picture.Graphic); //转为jpeg格式
jpg.SaveToStream(Ms);
Ms.Position := 0;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
adoquery1.SQL.Add('insert picture(pic_name,picture) values(:pic_name,:picture)'); //保存图片到数据库
ADOQuery1.Parameters.ParamByName('pic_name').Value := Edit1.Text;
ADOQuery1.Parameters.ParamByName('picture').LoadFromStream(Ms, ftBlob);
ADOQuery1.ExecSQL;
Ms.Free;
jpg.Free;
end
else
begin
ShowMessage('保存出错或无文件名!');
Exit;
end;
end;
4 楼
冰封星云 [专家分:2260] 发布于 2007-04-27 21:30:00
insert into picture
5 楼
hanzhijun402 [专家分:3690] 发布于 2007-04-29 08:37:00
图片操作是对的,看看是不是表名或者字段名出错了。
我来回复