if AdoTree.Active and (AdoTree.RecordCount > 0) then
          begin
              AdoTree.First;
              curNode := nil;
              curid   := -1;
              fcTreeView.Items.Clear;
              while not AdoTree.Eof do begin
                     New(curValue);
                     curValue^.deptid  := AdoTree.fieldByName('DeptID').AsInteger;
                     curValue^.name    := AdoTree.fieldByName('DeptName').AsString;
                     curValue^.pdeptid := AdoTree.fieldByName('ParentID').AsInteger;
                     /////////////////////////////////////////////////////////////////
                     IsFind := True;
                     if curValue^.deptid < -1 then Curid := -1;
                     while (curid <> curValue^.pdeptid) do
                     begin                    
                             if curid = -1 then begin
                                curid := curValue^.pdeptid;
                             end else begin
                                curNode := curnode.Parent;
                                curid   := IndexPointer(curNode.Data)^.deptid;
                             end;
                     end;
                     ////////////////////////////////////////////////////
                      if curValue^.deptid > -1 then begin
                       curNode := fcTreeview.Items.AddChildObject(curNode,curValue^.name,curValue);                           end else begin
                                curNode := fcTreeView.Items.AddChildObject(nil,curValue^.name,curValue);
                           end;
                           /////////////////////////////////////////////////////
                           Curid := IndexPointer(curNode.Data)^.deptid;
                         //  AdoTree.Next;
                     AdoTree.Next;              end;
          end;    }
当在{ while (curid <> curValue^.pdeptid) do
                     begin                    
                             if curid = -1 then begin
                                curid := curValue^.pdeptid;
                             end else begin
                                curNode := curnode.Parent;
                                curid   := IndexPointer(curNode.Data)^.deptid;
                             end;
                     end;
}中读取到的AdoTree中的数据在 fcTreeView中找不到父结点时就会出错,怎么解决