使用这种形式往数据库中添加一幅图片,图片在程序目录下,文件名 xx.jpg  
数据库为sql server2005SQL.Add('INSERT INTO RYInfo (rr_photo) valuse (:rr_photo)');
Parameters.ParamByName('rr_photo').Value:=?rr_photo字段类型为image如何才能加进去呢?

解决方案 »

  1.   

    Parameters.ParamByName('rr_photo').LoadFromFile('c:\Files\pic.bmp', ftGraphic);
      

  2.   


      try
        TmpAdo := TAdoquery.Create(nil);
        sqlText := 'select * from DocumentTb where 1<>1';
        TmpAdo.Append;
        TmpAdo.FieldByName('FileName').Value := EdtFileName.Text+FileKind;
        TmpAdo.FieldByName('SaveTime').Value := FormatDateTime('yyyy-mm-dd',DateTimePicker1.Date);
        TblobField(TmpAdo.FieldByName('Content')).LoadFromFile('D:\abc.jpg');
        TmpAdo.Post; 
        TmpAdo.Free;
     
      except
        MessageBox(Handle,'Ìí¼ÓÐÅϢʧ°Ü£¡','ÐÅÏ¢Ìáʾ',MB_ICONWARNING + MB_OK);
      end;
      

  3.   

    shit!刚才怎么乱码了!
      try
        TmpAdo := TAdoquery.Create(nil);
        sqlText := 'select * from DocumentTb where 1<>1';
        FrmDm.OpenSql(TmpAdo,sqlText);
        FileKind := Rightstr(EdtFileDir.Text,4);
        TmpAdo.Append;
        TmpAdo.FieldByName('FileName').Value := EdtFileName.Text+FileKind;
        TmpAdo.FieldByName('KindId').Value := (CmbKind.Items.Objects[CmbKind.ItemIndex] as TCombKind).AKindId;
        TmpAdo.FieldByName('SaveTime').Value := FormatDateTime('yyyy-mm-dd',DateTimePicker1.Date);
        TblobField(TmpAdo.FieldByName('Content')).LoadFromFile('D:\abc.jpg');
        TmpAdo.Post;
        TmpAdo.Free;
      except
        MessageBox(Handle,'Ìí¼ÓÐÅϢʧ°Ü£¡','ÐÅÏ¢Ìáʾ',MB_ICONWARNING + MB_OK);
      end;
      

  4.   

      TblobField(TmpAdo.FieldByName('Content')).LoadFromFile('D:\abc.bmp'); 有这句就足够了.
    不过对于JPG图片的存储,要先将其转为bmp再存储.可以借助image组件中的picture中的graphic属性和bitmap属性,
    或者直接调用delphi中的tjpeg...中的一个类,具体记不太清楚了.你可以在帮助文档里查一下