CSDN - 专家门诊 - Delphi问题  
 回复 | 推荐 | 收藏 | 专题 | 公告 | 管理 | 关闭窗口  
 
 
 
主  题:  将Query的RequestLive为True后,CanModify仍然为false 
作  者:  macro_love (如风)  
等  级:    
信 誉 值:  100 
所属论坛:  Delphi 
问题点数:  20 
回复次数:  0 
发表时间:  2002-03-28 14:45:40 
   
 
   
procedure TDataForm.OpenWageReportQuery(ATableName:string);
begin
    WageReportQuery.Active:=FALSE;
    WageReportQuery.RequestLive:=true;
    WageReportQuery.DatabaseName:=WageData.DatabaseName;
    WageReportQuery.SQL.Clear;
    WageReportQuery.SQL.Add('select * from '+ATableName+' order by UserID');
    WageReportQuery.Active:=true;
    WageReportQuery.EDIT;
    //flg:=WageReportQuery.CanModify;
end;
 
 

解决方案 »

  1.   

    Query返回的数据集要可修改是很多条件的。其中就有一条就是不能用order by
      

  2.   

    那如果用了 order by 以后几真的没办法修改了么?!?!?
      

  3.   

    是呀?到底有办法修改吗?为什么有人用Sql排序后,显示到DBGrid上,仍能修改?!
      

  4.   

    哈哈哈,告诉你一个能修改的秘秘,他是用了另外一个query把,原先的query时原数据赋给新的数据集,这样不就能修改了吗!哈哈哈。
      

  5.   

    不能用order by 在用一个query吧
      

  6.   

    把Order By去了,那还怎么排序呀!?
      

  7.   

    procedure TDataForm.OpenWageReportQuery(ATableName:string);
    begin
        WageReportQuery.Active:=FALSE;
        //WageReportQuery.RequestLive:=true;
        WageReportQuery.DatabaseName:=WageData.DatabaseName;
        WageReportQuery.SQL.Clear;
        WageReportQuery.SQL.Add('select * from '+ATableName+' order by UserID');
        WageReportQuery.Active:=true;
        WageReportQuery.EDIT;
        WageReportQuery.RequestLive:=true;
        //把上面那条语句移到这边,试试
        //flg:=WageReportQuery.CanModify;
    end;
     
      

  8.   

    不要使用属性requestlive,用cacheupdate属性就没有这个问题了!