看了这上面的帖子,都是一个模式,那就是
建立图片内存;
adoquery.append;
……
adoquery.post;
现在我的问题是使用access数据库,图片字段是ole对象,
表有这些字段:学号,姓名,性别,……,照片
使用sql语句写入数据库,insert into ……的方式,
谁知道,请帮一下忙,回一下帖子,谢谢!

解决方案 »

  1.   

    http://community.csdn.net/Expert/topic/3302/3302475.xml?temp=.9945642
      

  2.   

    //---添加图纸到数据库中
                  s:=TMemorystream.Create;     //--创建一内存流对象
                  olecontainer1.SaveToStream(s);  //---保存流
    with ADOQuery do
         
     Close;
                  SQL.Clear;
                  SQL.Add('insert into img (图纸编号,图纸照片,日期) VALUES (:tid,:cad,:dt)');
                  Parameters.ParamByName('tid').Value := trim(Edt_id.Text);
                  Parameters.ParamByName('cad').LoadFromStream(s,ftBlob);
                  Parameters.ParamByName('dt').Value := DDTP_date.Date;
                  Prepared;
                  ExecSQL;
                  s.Free;
                  //---图纸添加结束
      

  3.   

    //---添加图纸到数据库中
    s:TMemorystream;
    with ADOQuery do
      begin
        s:=TMemorystream.Create;     //--创建一内存流对象
        olecontainer1.SaveToStream(s);  //---保存流
        Close;
        SQL.Clear;
        SQL.Add('insert into stud (学号,照片,姓名) VALUES (:tid,:cad,:dt)');
        Parameters.ParamByName('tid').Value := trim(Edt_id.Text);
        Parameters.ParamByName('cad').LoadFromStream(s,ftBlob);
        Parameters.ParamByName('dt').Value := edtName.text;
        Prepared;
        try
          ExecSQL;
        finally
          s.Free;
        end;
      end;
                  //---图纸添加结束
      

  4.   

    如果图片不大,最简单是下面这句,ls_zp是要保存图片的全路径。
    TBlobField(ADOQuery.FieldByName('Photo')).LoadFromFile(ls_zp);
      

  5.   

    to slxj88,你上面的语句图片怎么进来啊,就看见
    s:=TMemorystream.Create;     //--创建一内存流对象
    olecontainer1.SaveToStream(s);  
    这里面的图片来源是什么呢?
    另外我想要的是直接写成纯的sql语句,意思就是先生成纯sql语句,
    然后再将这个sql语句传递给query的sql属性,然后执行。