紧急求助!!!(100分)

  • 主题发起人 主题发起人 sculsy
  • 开始时间 开始时间
S

sculsy

Unregistered / Unconfirmed
GUEST, unregistred user!
有人懂得在delphi中如何把jpg文件保存到SQL SERVER数据库表中吗?保存成功后又如何显示出来?
请各位大虾多多指教!非常紧急,谢了!
我的邮箱:sculsy@163.com
 
问很多次了 你可以搜索一下以前的
 
但是文件大些的话根本保存不进去!!!怎么办?
 
多大?
我用以下的语句可以保存到上百M的数据
TBlobField(FieldByName('FieldName')).LoadFromFile(ImgFileName);
 
对于图形文件,如果保存到数据库时,使用的是Query,则保存的图象大小和BDE中设置的
Blob Size 大小有关,如果图象太大,则只能保存一部分数据。如果使用Table则不会出现
该问题。
当然,使用Query也不是没有办法,可以使用一个数据集单独更新该字段,
如:
ParamByName('ParamName').SetBlobData(PChar(AStream.DataString), AStream.Size)
如果装载时存在问题,则最好还是使用Table控件,并使用他的Filter属性过滤所要取得的记录
 
谢谢大家的指教!ArJianzeng,你说可以存上百M的数据,那么你使用的是哪种控件呢?我
使用的是QUERY控件,就是不行!我的程序代码如下,请各位大虾诊断!
保存图象:
procedure TForm1.Button1Click(Sender: TObject);
var
jpegs:TJpegImage;
mstream: tstringstream;
begin
Query1.Close ; //进行存储
Query1.SQL.Clear ;
jpegs:=TJpegImage.Create;
jpegs.Assign(FootImage.Picture.Graphic);
mstream:=Tstringstream.create('');
jpegs.SaveToStream(mStream);
//在query1的SQL属性里写上:tx_temp2
Query1.SQl.ADD('Insert Into image1 (id,image) values (10,:myimage)') ;
Query1.Params[0].AsBlob:=mstream.DataString;
Query1.ExecSQL;
jpegs.Free;
mstream.Free;
end;
显示图象:
procedure TForm1.Button2Click(Sender: TObject);
var
MyJpeg:TJpegImage;
MyStm:TMemoryStream;
begin
with Query1 do
begin
sql.Clear;
sql.Add('select * from image1 where id=10');
open;
end;
if not Query1.FieldByName('image').IsNull then
begin
try
MyJpeg:=TJpegImage.Create;
MyStm:=TMemoryStream.Create;
MyStm.Clear;
TBlobField(Query1.FieldByName('image')).SaveToStream(MyStm);
MyStm.Position:=0;
MyJpeg.LoadFromStream(MyStm);
FootImage.Picture.BitMap.Assign(MyJpeg);
finally
MyJpeg.Free;
MyStm.Free;
end;
end
else
begin
if FootImage.Picture<>Nil then
begin
FootImage.Picture.Assign(Nil);
end;
end;
end;

 
多人接受答案了。
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部