简单的SQL问题,顶者给分

youhuiyun 2004-06-23 10:46:13
三层环境,客户端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语句解决?
...全文
160 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
IwantFlay 2004-06-23
  • 打赏
  • 举报
回复
UP先.
yzykjh(言子儿) 的语句没错啊
youhuiyun 2004-06-23
  • 打赏
  • 举报
回复
多谢楼上,不过不是这个原因,早就试过了,提示错误一样:(
yzykjh 2004-06-23
  • 打赏
  • 举报
回复
select max(SYS_ID) from [table1]
应为
select max(SYS_ID) as SYS_ID from [table1]
bnabinge 2004-06-23
  • 打赏
  • 举报
回复
up
飞天揽月 2004-06-23
  • 打赏
  • 举报
回复
op
lijinghe1 2004-06-23
  • 打赏
  • 举报
回复
没'sys_ID'这个字段

DM_ADO.CDS_Sys.fields[0].asinteger;或在sql中as 一个字段名
rockswj 2004-06-23
  • 打赏
  • 举报
回复
select max(SYS_ID) As Sys_ID from [table1]试一下
youhuiyun 2004-06-23
  • 打赏
  • 举报
回复
多谢大家,学无止境的方法可以通过,但是要对sys_ID操作还是必须重新再做一次查询,呵呵,再次谢谢大家。
lzy6204 2004-06-23
  • 打赏
  • 举报
回复
换个别名试试
select max(SYS_ID) as Max_sysid from [table1]
i:=DM_ADO.CDS_Sys.fieldbyname('Max_sysid').asinteger;

jblcj 2004-06-23
  • 打赏
  • 举报
回复
楼上的已经说得很清楚了
cjfden 2004-06-23
  • 打赏
  • 举报
回复
一楼、二楼的没错

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧