if QUERY1.FieldByName('PHOTO') is TBlobField then
   (QUERY1.FieldByName('PHOTO') as TBlobField).LOADFORMFILE(openpicture.filename);
  
—————————————————————————————————
MaximStr := '宠辱不惊,看庭前花开花落,去留无意;
             毁誉由人,望天上云卷云舒,聚散任风。';
if Not Assigned(I) then
  I := TI.Create(Nil);
I.Maxim := MaximStr;
I.Explain := '假如上述代码中出现“OA”等字样,删除它们';
I.Desire := '加不加分随你';
—————————————————————————————————
       

解决方案 »

  1.   

    我是用SQL语句写的,SQL := 'insert into table_name (photo) value
    (:photo);
      

  2.   

    TblobField(parambyname('PHOTO')).LOADFORMFILE(openpicture.filename,ftBlob);0D
    —————————————————————————————————
    MaximStr := '宠辱不惊,看庭前花开花落,去留无意;
                 毁誉由人,望天上云卷云舒,聚散任风。';
    if Not Assigned(I) then
      I := TI.Create(Nil);
    I.Maxim := MaximStr;
    I.Explain := '假如上述代码中出现“OA”等字样,删除它们';
    I.Desire := '加不加分随你';
    —————————————————————————————————
           
      

  3.   

    朋友,还是不对!loadformfile没有如此多参数吧,编译通不过!
      

  4.   

    对不起,应该把TblobField去掉,这样:
    parambyname('PHOTO').LOADFORMFILE(openpicture.filename,ftBlob);
    —————————————————————————————————
    MaximStr := '宠辱不惊,看庭前花开花落,去留无意;
                 毁誉由人,望天上云卷云舒,聚散任风。';
    if Not Assigned(I) then
      I := TI.Create(Nil);
    I.Maxim := MaximStr;
    I.Explain := '假如上述代码中出现“OA”等字样,删除它们';
    I.Desire := '加不加分随你';
    —————————————————————————————————
           
      

  5.   

    真是不幸:这样会出现'仅可以为插入LONG列的LONG值赋值!
      

  6.   

    由于blob存储的是一个定位符
    所以不能用query的缓存更新
    需要这样做:
    在更新时插入一个空的定位符:empty_blob()
    数据库中建一个临时表,用table控件打开,用TblobField编辑,更新回去
    用触发器把临时表中的blob更新到数据表,并删除临时表中的相应记录
      

  7.   

    那么把
    ftBlob改为你数据库中实际的字段类型,如ftCBlob,具体可以看Delphi的帮助,还是不行的话,再设置parambyname('PHOTO')的类型看看。
    —————————————————————————————————
    MaximStr := '宠辱不惊,看庭前花开花落,去留无意;
                 毁誉由人,望天上云卷云舒,聚散任风。';
    if Not Assigned(I) then
      I := TI.Create(Nil);
    I.Maxim := MaximStr;
    I.Explain := '假如上述代码中出现“OA”等字样,删除它们';
    I.Desire := '加不加分随你';
    —————————————————————————————————