不过还是建议一下,以后大家做项目还是少用这玩意
现在收手太迟了,遇到一个删除的问题
在append多行之后,然后选择多行进行删除,会出现问题,其中有一条记录会错位
我是用cds连的cxgrid,不知道哪位大侠遇到没有
我的代码:
procedure TFrmSubBaseMainSimple.MainDel;
begin
  if (GDBTVMain.DataController.GetSelectedCount > 0) and (Application.MessageBox('你真的要删除所选的主记录吗?', '删除提示',  MB_YESNO + MB_ICONINFORMATION)= IDYES) then
  begin
    GDBTVMain.DataController.DeleteSelection;
  end  //子类一般无需继承
end; 
//增加一行
procedure TFrmSubBaseMainSimple.MainNew;
begin
  CDSMain.Append;  //在子类继承或实现
end;我感觉错误应该发生在cds的记录顺序和cxgird的顺序不同的缘故,不知道是什么时候cxgrid的dataset连接可能断开了,求解

解决方案 »

  1.   

    可能是cds的问题,cxgrid只是一个数据连接器,做好跟数据源的连接处理,那应该没什么问题!
      

  2.   

    不会是数据集的问题,我觉得可能是cxgrid在处理的时候是自动和cds断开的
    所以排序的时候也只是进行了显示的排序,并没有将数据集排
      

  3.   

    你连接的数据库是什么数据库?是SQL Server的话,可能与所用的SQL语句有关!比如用order by对应的字段过多,那在cxgrid里排序就会出现问题!在SQL数据库里调用自动排序也可以吧!或用存储过程重新排序也可以!如果用Access就不用担心排序的问题啦!因为Access有自动排序的功能!
      

  4.   

    这个是和数据库无关的
    我是静态的创建cds的,中间层发来的数据包是xml格式的,cds只是存储了数据
    但是排序的原因不知道到底是怎么回事
      

  5.   

    如果说,会涉及到数据库的话,构造sql,直接递交sql来的安全。
      

  6.   

    兄弟,cxGrid和数据集有些地方确实有冲突的,比如排过一次序后,用数据集的next之类的方法都会乱跳。
    如果数据一次全取到前台还好点(但太占内存),如果是象ADO采用batchupdate或者三层方式取数据,那问题更多,有时1000条记录总是第一条不显示只见999条,但排下序之后就出来了。
      

  7.   

    有没有办法让cxgrid的顺序和cds的顺序一致呢