delphi 如何更新ACCESS保存的图片
- 提问者网友:戎马万世
- 2021-03-14 11:12
sql.text:='updata book set id='''+edit.text+''',book=:book where xu=xd';
...
parameters.ParamByname('book').loadfrmstream(mBook); 不能更新
提示:variable book might not have been initialized
not enougth adtual parameters
前提是我声明了内存变量和建立了内存,也把图片保存到了内存,显示图片绝对没有问题,问题是怎么去更新数据库里的图片
Parameters.GetFieldByName('FactoryLogo').LoadFromStream(mFactoryLogo);提示没有定义getFieldByname
2楼,我不知道updatabath()怎么用, 能不能给个例子
有知道的吗?
- 五星知识达人网友:洒脱疯子
- 2021-03-14 12:51
self.ADOQuery1.LockType:=ltBatchOptimistic;
//保存时候用
self.ADOQuery1.UpdateBatch();
- 1楼网友:梦中风几里
- 2021-03-14 13:54
字段名称 类型 描述 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