做了一个小应用程序,用的是access数据库,需要对数据库进行图片存取操作,
请问要怎么做,
在access 里面怎么添加图片呢?

解决方案 »

  1.   

    用流,       
    tblobfield(Fieldbyname('accessory')).LoadFromStream(vFileStream[i]);
    在网上查查,有好多例子
      

  2.   


    with ADOQ do begin
            close;
            sql.Clear;
            sql.Add('insert into info(bh,type,sj,zt,bz,tp) values (:a,:b,:c,:d,:e,:f)');
            parameters.ParamByName('a').Value := Trim(bh.Text);
            parameters.ParamByName('b').Value := Trim(lx.Text);
            parameters.ParamByName('c').Value := strToDate(datetostr(sj.Date));
            parameters.ParamByName('d').Value := Trim(zt.Text);
            parameters.ParamByName('e').Value := Trim(bz.Lines.Text);
            parameters.ParamByName('f').Assign(Image1.Picture.Graphic);
            execsql;
          end;
      

  3.   

    我在建access表的时候发现数据类型没有“图片”这一类的,图片加不进去
    :(
      

  4.   


    1楼不是已经告诉你了吗,你试了吗数据集.Edit;
    tblobfield(Fieldbyname('accessory')).LoadFromFile(图像路径);
    数据集.Post;
      

  5.   

    建议你选择文本,里面存图片的路径信息(比如保存时,把图片COPY到你软件目录下的一个文件夹里,比如picture),如果非要保存在ACCESS 里面,你将来会发现,那是一件非常痛苦的事情
      

  6.   

    我把图片的路径信息用文本形式存储在字段名称“安规认证”里,如果我要在窗体里把数据库的图片查询显示出来,该添加什么组件,SQL语句该怎么写呢? 
      

  7.   

    显示图片你可以用Image控件,直接Image1.Picture.LoadFromFile(); 就可以了
      

  8.   


    with ADOQuery do begin
      sql.clear;
      sql.add('SELECT * FROM TABLE');
      open;
      first;
    end;if FileExists(ExtractFilePath(ParamStr(0))+'Pic'+ADOQuery.FieldByName('安规认证').AsString) then
      image.Picture.LoadFromFile(ADOQuery.FieldByName('安规认证').AsString)
    else
      ShowMessage('图片不存在');
    大概这个样子,假设文件保存在你程序主目录下的Pic 目录下
    最好COPY时,把你的图片文件名重新命名下,防止图片重名,覆盖了