我用adoquery控件是想保存treelist中用户输入的数据在sql数据库中有没有,如果有就更新,如果没有就插入,哪位大虾肯帮忙啊最好有例子啊,不胜感激啊

解决方案 »

  1.   

    这个错误应该是treelist抛出的
      

  2.   

    出现这个错误并不是adoquery控件出错,是你在删除TreeList的Item的时候出错,注意你要删除多各TreeList的Item的时候要从后面往前删,否则可能会出现你所说的问题,因为比如说有2条记录,如果是For i := 0 to 1,当i=1时,因为前面已经删除了一条纪录,这时候实际上已经没有Items[1]了,应该这样写:
    For i := (TreeList1.Count - 1) downto 0 do
    ...
      

  3.   

    出现这个错误并不是adoquery控件出错,是你在删除TreeList的Item的时候出错,注意你要删除多各TreeList的Item的时候要从后面往前删,否则可能会出现你所说的问题,因为比如说有2条记录,如果是For i := 0 to 1,当i=1时,因为前面已经删除了一条纪录,这时候实际上已经没有Items[1]了,应该这样写:
    For i := (TreeList1.Count - 1) downto 0 do
    ...
      

  4.   

    with AdoQuery do
    begin
      SQL.Clear;
      SQL.Add('UPDATE ...');
      EXECSQL;
      if RowAffected=-1 then
      begin
        showmessage('异常'); 
        Exit;
      end;
      if RowAffected=0 then
      begin
        SQL.Clear;
        SQL.ADD('Insert ...');
        EXECSQL;
      end;
    end;
      

  5.   

    可能是treelist还没有建立或初始化,你跟踪一下
      

  6.   

    删除不要用佛FOR,用WHILE..DO就好
      

  7.   

    删除不要用佛FOR,用WHILE..DO就好
    *******************************
    对于全部删除,这是一样的效果。并且对于根据某些条件删除的情况,while...do更不好实现