放一个IMAGE1
NewGraphic:=TJPEGImage.Create;
Image1.Picture.Bitmap:=NewGraphic.LoadfromField(img_disp.FieldByName('存放图片的字段名'));
NewGraphic:=TJPEGImage.Create;
Image1.Picture.Bitmap:=NewGraphic.LoadfromField(img_disp.FieldByName('存放图片的字段名'));
解决方案 »
- delphi2010 连接sql server20000控件的使用方法
- delphi提示找不到dcu文件
- TWinControl控件是什么来的,有什么用
- 急求:通讯为9600.n.8.1的硬件通过串口发送数据,用delphi如何接收,并转化为10进制存如SQL
- 怎样让电脑自动读出金额,在线等,高手进,....
- TidHttp如何设置引用页?
- 关于with的问题,欢迎讨论,呵呵。
- 深圳哪些书店有打折(必须是电脑书)
- 关于将截断字符串或二进制数据
- 在数据库中存取录象资料
- 请问怎样才能对公司里外发的邮件进行拦截检查?
- 那位大虾有windows2000注册表的资料?(半年没有做编程现在总算回来了,给兄弟们结贴!!!!!!)
因此你存入的图片已经被截断了
检查一下你数据的内容,另存一下看看和存入前的大小是否一致
如取出的文件大小为32k 那就检查一下你的database的blobsize吧
我只用access实现过,定义成OLE类型,成功
关键是的database的blobsize。最好设大些。8192
ms:TMemoryStream;
bmtemp:Tbitmap;
begin
bmtemp:=Tbitmap.Create;
ms:=TMemoryStream.Create;
try
query1.Close;
query1.SQL.Clear;
query1.SQL.Add ('select AdFpic from Admin'); query1.SQL.Add('select AdFpic from Admin');
query1.SQL.Add('where AdId='+edit1.Text);
TBlobField(query1.FieldByName('AdFpic')).SaveToStream(ms);
ms.Position:=0;
bmtemp.LoadFromStream(ms);
image1.Picture.Bitmap:=bmtemp;
finally
ms.Free;
bmtemp.Free;
end;其中我用的是query1 然后我在做的时候说AdFpic找不到,AdFpic是我在数据库里存放图片的字段名,读不出来,为什么阿?
var
pjpg:tjpegimage;
pic:TMemoryStream;
begin
pjpg:=tjpegimage.Create;
pjpg.LoadFromFile(F:\JPG.jpg);
pic:=TMemoryStream.Create;
pjpg.SaveToStream(pic);
pic.Position:=0;
TBlobField(dataset.FieldByName('Img')).LoadFromStream(pic);
dataset.post;
pic.Free;
pjpg.free;
end;
从数据库取出
var
pjpg:tjpegimage;
pic:TMemoryStream;
begin
pjpg:=tjpegimage.Create;
pic:=TMemoryStream.Create;
TBlobField(dataset.FieldByName('Img')).savetoStream(pic);
pic.positon:=0;
pjpeg.LoadFromStream(pic);
image.graphi.bmp.assign(pjpeg);
end;end;
JPEG的话,SQL Server甚至直接可以LoadFormFile
with QC1,Parameters do begin
Close;
SQL.Clear;
SQL.Add('Insert into Rkb (Tp,Tpmc) values (:Tp,:Tpmc);
Try
ParamByName('Tp').LoadFromFile(Fr_Image1.OD_Pic.FileName,ftGraphic);
ParamByName('Tpmc').Value:=ExtractFileExt(Fr_Image1.OD_Pic.FileName);
ExecSQL;
Except
End;
Close;
end;
Close;
SQL.Clear;
SQL.Add('select Tp,Tpmc from Rkb where RowGUID=:RGUID ');
Parameters.ParamByName('RGUID').Value:=RowGUID;
Open;
if Trim(FieldByName('Tpmc').AsString)<>'' then begin
PicName:=__TempPath+'TCPic'+Trim(FieldByName('Tpmc').AsString);
FileSetAttr(PicName,0);
DeleteFile(PicName);
TBLOBFIELD(FieldByName('Tp')).SaveToFile(PicName);
Fr_Image1.Img_TC.Picture.LoadFromFile(PicName);
Fr_Image1.OD_Pic.FileName:=PicName;
end;
Close;
end;
再以流的形式读出来。只是读出来的后缀名和原来的后缀名一样就行了