DELPHI+Sql Server的程序,当对image类型字段存取较大图片时,总是报'invalid blob length',请教高手是怎么回事,怎么解决?
解决方案 »
- delphi如何修改图标
- 请问如何确定局域网内某台机器是否开机?
- 当TRichEdit控件的onchange事件触发如何知道控件中的文本变化是什么?
- 急!急!各位楼主帮手看看这代码有什么错误?在线!
- webbrowser中处理鼠标键盘消息?
- 有什么Winapi函数可以取代InputBox()的吗?
- delphi调用外部应用程序
- 如何使文件和我的程序关联?
- Delphi中如何操作注册表??
- 关于quickrep得统计问题,为什么我只能把所有的数据累加而不能累加一个grouphead和groupfoot之间的数据
- 心情不好,散分
- 我刚才发的贴子怎么不见了!再次发贴,很菜的问题,分少,但答对必给分。
存入(bmp是例子, 随便什么文件都可以)
imagestream:=tfilestream.create('d:\test.bmp',fmShareDenyNone);
Sqlclause:='insert into table values(:aa)';
tempquery.SQL.Clear;
tempquery.SQL.Add(SqlClause);
Tempquery.Parameters.ParamByName('aa').LoadFromStream(imagestream,ftblob);
tempquery.ExecSQL;取出
SqlClause:='select * from table';
tempquery:=tadoquery.Create(application);
try
tempquery.SQL.Clear;
tempquery.SQL.Add(SqlClause);
tempquery.open;
while not tempquery.Eof do
begin filename:='d:\test1.bmp'
(tempquery.fieldbyname('image') as TBlobField).savetofile(filename);
imagestream:=TFileStream.Create(filename,fmShareDenyNone);
tempquery.Next;
end;
finally
tempquery.Free;
end;
end;
图片字段是ole型
我用的delphi5,ado2.5,win98,没问题
以下是我觉得在所有图片存取方法中最简单的方法
use jpeg,Clipbrd、、、、、、、、、、、、、
//Save to database
Image1.Picture.LoadFromFile('FileName');
if not (Image1.Picture.Graphic Is TBitmap) then
begin
ClipBoard.Assign(Image1.Picture);
Image1.Picture.Bitmap.Assign(ClipBroad);
ClipBoard.Clear;
end;//Change the picture that's not belonged to .bmp to .bmp
// picture
Table1.Edit;
Table1.FieldByName('Image').Assign(Image1.Picture);
Table1.Post;
//get from database
Image1.Picture.Bitmap.Assign(TPicture(Table1.FieldByName('Image')));