在delphi7中将图片保存到access数据库中的源代码
在delphi7中将图片保存到access数据库中的源代码,需要哪些控件,属性是什么,源代码怎样编写!谢谢...
在delphi7中将图片保存到access数据库中的源代码,需要哪些控件,属性是什么,源代码怎样编写!谢谢
展开
2013-05-27
展开全部
字段名称 类型 描述
id 自动编号 主键值
img OLE对象 用来保存图片数据procedure TForm1.Button1Click(Sender: TObject);
var
F:File of Byte;
size:Longint; //文件大小
FilePath,time:string; //文件时间
begin
FilePath:=ExtractFilePath(Paramstr(0))+'demo.jpg';//图片地址为当前目录下
AssignFile(F,FilePath);
reset(F);
size:=Filesize(F);//获取文件大小。
time:=DatetimetoStr(FileDateToDateTime(FileAge(FilePath)));//获取文件创建时间。
closefile(F);
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from Image');
adoquery1.Open;
adoquery1.Insert;
adoquery1.FieldByName('FileName').AsString:=ExtractFileName(FilePath); //存储文件名称
adoquery1.FieldByName('FileKind').AsString:=ExtractFileExt(FilePath); //存储文件扩展名。
adoquery1.FieldByName('FileSize').AsInteger:=size; //存储文件的大小。
adoquery1.FieldByName('FileTime').AsString:=time; //存储文件的创建时间。
adoquery1.FieldByName('SaveTime').AsDateTime:=now();//存取文件的存储时间
TBlobField(ADOquery1.FieldByName('FileContent')).LoadFromFile(FilePath);//图片的二进制流,存进去之后,数据库会显示(<<Binary>>)
ADOquery1.Post;
end;下面是读取还有代开的代码,添加一个Timage空间进行显示,ID为我的自增列,读取最后一条插入记录procedure TForm1.Button2Click(Sender: TObject);
Var
Ms:TStream;
jpg:Tjpegimage;
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select top 1 * from Image order by id desc');
adoquery1.Open;
Ms:=TStream.Create;
MS:=adoquery1.CreateBlobStream(adoquery1.FieldbyName('FileContent'),bmRead);
Ms.Position :=0;
jpg:=Tjpegimage.Create;
Jpg.LoadFromStream(Ms);
Image1.Picture.Assign(Jpg);
jpg.Free;
MS.Free;
end;当然这里你也可以将其中的代码修改一下,不用显示就把“Image1.Picture.Assign(Jpg);”改为保存“Jpg.SaveToFile(图片路径);” 详情可以上我的百度博客看http://hi.baidu.com/ray108/blog/item/d2883a1181209908203f2e42.html
id 自动编号 主键值
img OLE对象 用来保存图片数据procedure TForm1.Button1Click(Sender: TObject);
var
F:File of Byte;
size:Longint; //文件大小
FilePath,time:string; //文件时间
begin
FilePath:=ExtractFilePath(Paramstr(0))+'demo.jpg';//图片地址为当前目录下
AssignFile(F,FilePath);
reset(F);
size:=Filesize(F);//获取文件大小。
time:=DatetimetoStr(FileDateToDateTime(FileAge(FilePath)));//获取文件创建时间。
closefile(F);
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from Image');
adoquery1.Open;
adoquery1.Insert;
adoquery1.FieldByName('FileName').AsString:=ExtractFileName(FilePath); //存储文件名称
adoquery1.FieldByName('FileKind').AsString:=ExtractFileExt(FilePath); //存储文件扩展名。
adoquery1.FieldByName('FileSize').AsInteger:=size; //存储文件的大小。
adoquery1.FieldByName('FileTime').AsString:=time; //存储文件的创建时间。
adoquery1.FieldByName('SaveTime').AsDateTime:=now();//存取文件的存储时间
TBlobField(ADOquery1.FieldByName('FileContent')).LoadFromFile(FilePath);//图片的二进制流,存进去之后,数据库会显示(<<Binary>>)
ADOquery1.Post;
end;下面是读取还有代开的代码,添加一个Timage空间进行显示,ID为我的自增列,读取最后一条插入记录procedure TForm1.Button2Click(Sender: TObject);
Var
Ms:TStream;
jpg:Tjpegimage;
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select top 1 * from Image order by id desc');
adoquery1.Open;
Ms:=TStream.Create;
MS:=adoquery1.CreateBlobStream(adoquery1.FieldbyName('FileContent'),bmRead);
Ms.Position :=0;
jpg:=Tjpegimage.Create;
Jpg.LoadFromStream(Ms);
Image1.Picture.Assign(Jpg);
jpg.Free;
MS.Free;
end;当然这里你也可以将其中的代码修改一下,不用显示就把“Image1.Picture.Assign(Jpg);”改为保存“Jpg.SaveToFile(图片路径);” 详情可以上我的百度博客看http://hi.baidu.com/ray108/blog/item/d2883a1181209908203f2e42.html
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询