delphi 保存bmp图片到sqlserver

liaowei3000 2005-02-21 03:46:46
我要加入图片到XQXXB表中去
var
picture1:Tpicture;
begin
picture1:=Tpicture.Create;
If OpenPictureDialog1.Execute Then
begin
picture1.LoadFromFile(OpenPictureDialog1.FileName);
XQXXB.FieldByName('照片').Assign(picture1);
end;
添加后保存老是报错:invaild blob length
sqlserver 存储图片的字段是用的image 类型
是bde的问题还是sqlserver的问题
用ado连接好象就没有这样的问题
请问该如何解决才好
...全文
383 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
xian567 2005-02-22
  • 打赏
  • 举报
回复
学习
jinjazz 2005-02-22
  • 打赏
  • 举报
回复
//读取
procedure TForm1.Button1Click(Sender: TObject);
var tempstream:TStringStream;
tempjpeg:TJPEGImage;
begin
try
tempstream:=TStringStream.Create(' ');
TBlobField(Query1.FieldByName('Image')).SaveToStream(tempstream);
tempstream.Position:=0;
tempjpeg:=TJPEGImage.Create;
tempjpeg.LoadFromStream(tempstream);
DBImage1.Picture.Bitmap.Assign(tempjpeg);
finally
tempstream.Free;
tempjpeg.Free;
end;
end;
jinjazz 2005-02-22
  • 打赏
  • 举报
回复
procedure TForm1.Button1Click(Sender: TObject);
var
MyJPEG : TJPEGImage;
MS: TMemoryStream;
begin
MyJPEG := TJPEGImage.Create;
try
with MyJPEG do
begin
Assign(Image.Picture.Graphic);
MS:=TMemoryStream.create;
SaveToStream(MS);
MS.Position:=0;
Table1.Edit;
TBlobField(Table1.FieldbyName('Image')).LoadFromStream(MS);
Table1.Post;
messagebox(getactivewindow(),'图像保存完毕!','保存',mb_ok);
end;
finally
MyJPEG.Free;
end;
end;
cdsgajxlp 2005-02-22
  • 打赏
  • 举报
回复
XQXXB.ParamByName('zhaopian').LoadFromStream(MStringStream,ftBlob);
劣势 2005-02-21
  • 打赏
  • 举报
回复
XQXXB.ParamByName('图片').LoadFromFile(OpenPictureDialog1.FileName, ftBlob);//试试吧
liaowei3000 2005-02-21
  • 打赏
  • 举报
回复
那我的在post的时候,为什么会显示invaild blob length ,好象是bde有个选项是设置可存储图片大小的不

劣势 2005-02-21
  • 打赏
  • 举报
回复
差不多的Blob字段的操作
liaowei3000 2005-02-21
  • 打赏
  • 举报
回复
我是 用 的bdetable 不是ado
cdsgajxlp 2005-02-21
  • 打赏
  • 举报
回复
//测试通过
procedure TForm1.Button1Click(Sender: TObject);
var
MfileStream : Tfilestream;
MStringStream : TStringStream;
XQXXB : Tadoquery;
begin
If OpenPictureDialog1.Execute Then
begin
try
XQXXB:=Tadoquery.Create(self);
XQXXB.Connection:=ADOConnection1;
MfileStream.Create(OpenPictureDialog1.FileName,fmOpenRead);
MStringStream:=TStringStream.Create('');
MStringStream.CopyFrom(MfileStream,MfileStream.Size);
XQXXB.SQL.Add('Insert into XQXXB ( 照片 ) values (:zhaopian)');
XQXXB.Parameters.ParamByName('zhaopian').LoadFromStream(MStringStream,ftBlob);
XQXXB.ExecSQL;
finally
freeandnil(MfileStream);
freeandnil(XQXXB);
freeandnil(MStringStream);
end;
end;


end;
gxgyj 2005-02-21
  • 打赏
  • 举报
回复
http://community.csdn.net/Expert/topic/3697/3697056.xml?temp=.8283502

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧