sql server2000 的image字段如何加载jpg文件?(50分)

  • 主题发起人 主题发起人 zhbj2
  • 开始时间 开始时间
Z

zhbj2

Unregistered / Unconfirmed
GUEST, unregistred user!
sql server2000 的image字段如何加载jpg文件?
 
//保存图像进数据表中
str:='c:/hello.jpg';
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('INSERT INTO 表名(Image) VALUES (:MImage)');
adoquery1.Parameters[0].LoadFromFile(str,ftBloB);
ado_one.ExecSQL;
行,请给分,不行,我不要分
 
liujunzhang兄:
有没有不用sql的办法,比如loadfrom... ,因为那样需要改动的地方太大了,
 
我觉得你直接用数据库存图片的路径不可以吗?
 
sqlserver在服务器上,直接存储路径,其他计算机无法共享的
 
**写
var
aMStream: TMemoryStream;
aBStream: TBlobStream;
str :String;
begin
str:='c:/hello.jpg';
aMStream := TMemoryStream.Create();
try
aMStream .LoadFromFile(str);
ADOTable1.Append;
aBStream := TBlobStream.Create(TBlobField(ADOTable1.FieldByName('jpg')), bmWrite);
aMStream.SaveToStream(aBStream );
ADOTable1.Post;
finally
aMStream .Free;
end;
end;
** 读
var
aJPG: TJpegImage;
aBStream: TBlobStream;
str :String;
begin
str:='c:/hello.jpg';

if ADOTable1.FieldByName('jpg').IsNull then
begin
Application.MessageBox('无图像!','提示',MB_IconInformation+MB_OK);
Exit;
end;
aJPG := TJPEGImage.Create();
with aJPG do
try
aBStream := TBlobStream.Create(TBlobField(ADOTable1.FieldByName('Bmp')), bmRead);
try
aJPG.LoadFromStream(aBStream);
aJPG.SaveToFile(str);
finally
aBStream.Free;
end;
finally
aJPG.Free;
end;
end;
 
与bigroute基本相同,我现在用得很好,几万张photo
 
楼上两位老兄:
我照搬代码,但一选择jpg文件便显示"Invalid class typecast"
这是为什么?
 
听课!!!
 
多人接受答案了。
 
后退
顶部