我的代码如下:
if OpenPictureDialog1.Execute then
  begin
   form2.adoquery1.Close;
   form2.adoquery1.Insert;
   tblobfield(form2.adoquery1.FieldByName('图片')).loadfromfile(OpenPictureDialog1.FileName);
   form2.adoquery1.Open;
   showmessage('插入图片成功');
   Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
    end;我把adoquery1.active:=true的时候又提示无法在打开的数据集上操作,到底怎么回事呢?

解决方案 »

  1.   

    form2.adoquery1.Insert;改为form2.adoquery1.append;
      

  2.   

    form2.adoquery1.Close;
       form2.adoquery1.Insert;
    先关闭,再插入
    不出问题?难
      

  3.   

    if OpenPictureDialog1.Execute then
      begin
       form2.adoquery1.Open;
       form2.adoquery1.Insert;
       tblobfield(form2.adoquery1.FieldByName('图片')).loadfromfile(OpenPictureDialog1.FileName);
       form2.adoquery1.post;
       showmessage('插入图片成功');
       Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
        end;
      

  4.   

    其实close不是什么关键的错误,我改完以后又会出现"adoquery1 missing sql property!",难道一定要用SQL语句才能用adoquery1添加吗?
      

  5.   

    query里面当然要有sql语句才可以open或者添加
    你如果不想让有返回值可以这样写
    select * from table where (一个不可能的条件比如主键=-1)
    然后再open,insert或者append
      

  6.   

    1.数据集关闭的时候不能够进行插入修改删除操作。
    2.Query或ADOQuery如果要进行select ,Sql属性必须有Select语句才可以。