图象存入数据库的问题 (20分)

  • 主题发起人 主题发起人 gyfstar
  • 开始时间 开始时间
G

gyfstar

Unregistered / Unconfirmed
GUEST, unregistred user!
我要把bmp 或jpg 图象存入数据库
ADOTable1.Append;
TBlobField(ADOTable1.FieldByName('image')).LoadFromFile('C:/WINNT/Web/Wallpaper/Windows 2000.jpg');
ADOTable1.Post;(我见有人这样写)
可我要用这种格式:
    insert into table() values()
parameters.value:=''
open;(大致写了一下)

但不知道怎样来写存入图像的代码
有哪们富翁可以帮我吗?
 
procedure TForm1.Button1Click(Sender: TObject);
var
bmp1:Tbitmap;
jpg1:Tjpegimage;
begin
if OpenPictureDialog1.Execute then begin
if OpenPictureDialog1.FileName<>'' then begin
bmp1:=Tbitmap.Create;
jpg1:=Tjpegimage.Create;
jpg1.LoadFromFile(OpenPictureDialog1.filename);
bmp1.Assign(jpg1);
Adotable1.edit;
Adotable1.FieldByName('pic').assign(bmp1);
Adotable1.Post;
bmp1.free;
end;
end;
end;
 
谢谢linsb
我不用post,我要用ado的insert , execsql怎么写呢
 
[:D] 是啊。。怎么写呢?? 没这么用过。。
 
唉。。。没有人用过吗???
 
应该可以这样用吧
 
TBlobFiel(parameters.value).loadfromfile();
 
var
ms:tmemorystrem;
with adors do
begin
close;
sql.clear;
sql.add(insert into tabel(photo) values(:photo)');
ms:=tmemorystream.Create;
iphoto.Picture.Bitmap.LoadFromStream(ms);
ms.Position:=0;
TBlobField(parameters.ParamByName('photo')).LoadFromstream(ms);
execsql;
这样还是不对,说什么地址违背(address violate)
大家还有什么好的办法吗
谢谢了
 
很简单
你把那个图象转换成十六进制字符串就可了
例如
insert into 表
(photo)
values
(0x0a110e0414e35e)
快给分吧
 
chdx 怎么转换呀
这个问题已经浪费了我好长时间了
 
没有人知道吗
唉………………
 
insert;
fieldbyname('pic').loadfromfile(..);
...
applyupdate;
 
现在了,这个问题我还是没解决
…………………
 
使用SQL语句还是不好的,为何使用另一种方式,而且,就算这种方法可行,如果你的图片
很大,你也没办法加进去的!
 
多人接受答案了。
 
后退
顶部