我用delphi做一个宾馆管理系统 在插入员工图片时出现这个错误提示~~ 
相关代码 
begin 
zh:=label4.Caption; 
opendialog1.Filter:='*.bmp'; 
if opendialog1.Execute then 
begin 
adqemployee.SQL.Clear; 
str:='update employee set 照片=:mbmp where 账号=' + '''' + zh + ''''; 
adqemployee.SQL.Add(str); 
adqemployee.Parameters.ParamByName('mbmp').LoadFromFile (opendialog1.FileName,ftvarbytes); 
adqemployee.ExecSQL; 
adqemployee.Requery; 
end; 
end; 
窗体上有adoconnection,adqquery,datasource,DBimage控件各一个,已经连接好,只添加其它数据的时候没问题,就添加图片出问题。请各位指点一下,谢谢。

解决方案 »

  1.   

    LoadFromFile (opendialog1.FileName,ftvarbytes); 
    中看下ftvarbytes是否和实际字段类型相符。对图片,一般常用ftBlob、ftGraphic。
      

  2.   

    http://topic.csdn.net/u/20080708/11/58c97f76-f616-4cb5-9f2c-ccd3a8f53536.html
      

  3.   

    如楼上的,看kampan那部分代码,挺简洁的
      

  4.   

    lxpbuaa的提议我试过了,不行。我感觉问题不在代码上,按它错误提示的意思,好像是说表处于一个关闭的状态,因此不能执行更新操作。kampan的方法我会留到最后的。
      

  5.   

    adqemployee.SQL.Clear; 
    str:='select 照片 from employee where 账号=' + '''' + zh + ''''; 
    adqemployee.SQL.Add(str); 
    adqemployee.open;
    adqemployee.edit;
    tblobfield(adoquery1.FieldByName('照片')).loadfromFile(opendialog1.FileName);  
    adqemployee.post; 
      

  6.   

    adqemployee.edit;//使它处于编辑状态.
    加上这一句,应该就可以了。
      

  7.   

    tblobfield(adoquery1.FieldByName('照片')).loadfromFile(opendialog1.FileName);  aqoquery1没fieldbyname啊adqemployee.edit;//使它处于编辑状态. 
    加上这一句,应该就可以了。
    在哪加?在close 和adqemployee.Parameters.ParamByName('mbmp').LoadFromFile (opendialog1.FileName,ftvarbytes); 之前都加过了,不行。去掉adqemployee.Requery; 去掉了也没有加进去啊。麻烦各位再帮帮忙~~~~
      

  8.   

    adqemployee.SQL.Clear;
    str:='select * from employee set 照片=:mbmp where 账号=' + '''' + zh + '''';
    adqemployee.SQL.Add(str); 
    adqemployee.Open;
    adqemployee.edit;//使它处于编辑状态. 
    ................
    试试
      

  9.   

    select * from employee set 照片=:mbmp where 账号=' + '''' + zh + '''';  
    这句SQL改一下呀
      

  10.   

    我也遇到过这样的情况,但是写成下面的格式就没遇到过
    begin
      close;
      sql.clear;
      sql.text:= '';
      open;    or excsql;
      close;
    end;
    这种格式还没遇到过
      

  11.   

    那个我将你的代码测试了一下,去掉adqemployee.Requery;就通过了,这个图片字段在企业管理器看不出来,到查询分析器上就可以看到,已经存进去了不是edit的问题,呵呵