三层环境,客户端DCOM连接服务器,服务器端ADO连接SQl server数据库。代码如下:
      DM_ADO.CDS_Sys.Close;
      DM_ADO.CDS_Sys.CommandText:='select max(SYS_ID) from [table1]';
      DM_ADO.CDS_Sys.Open;
      i:=DM_ADO.CDS_Sys.fieldbyname('sys_ID').asinteger;提示错误:field 'sys_ID' cannot be modified!如果将sql语句改成'select * from [table1] order by sys_ID'然后再排序得到最大值则可行,请问为何,如何用max语句解决?

解决方案 »

  1.   

    select max(SYS_ID) As Sys_ID from [table1]试一下
      

  2.   

    没'sys_ID'这个字段DM_ADO.CDS_Sys.fields[0].asinteger;或在sql中as 一个字段名
      

  3.   

    select max(SYS_ID) from [table1]
    应为
    select max(SYS_ID) as SYS_ID from [table1]
      

  4.   

    UP先.  
    yzykjh(言子儿) 的语句没错啊
      

  5.   

    换个别名试试
    select max(SYS_ID) as Max_sysid from [table1]
    i:=DM_ADO.CDS_Sys.fieldbyname('Max_sysid').asinteger;
      

  6.   

    多谢大家,学无止境的方法可以通过,但是要对sys_ID操作还是必须重新再做一次查询,呵呵,再次谢谢大家。