set qv = createobject("adodb.recordset")
q ="select * from tbl order by ID"
qv.open q,QuoteConn,3,1,1
qv.movelast
qid=qv("ID")
qv.close
awwww,你们都杀了玩笑。在2009年,我维护这段代码...
set qv = createobject("adodb.recordset")
q ="select * from tbl order by ID"
qv.open q,QuoteConn,3,1,1
qv.movelast
qid=qv("ID")
qv.close
awwww,你们都杀了玩笑。在2009年,我维护这段代码...
MAX(id)是什么?
更快的方法将是
Q = “选择从TBL MAX(ID)”
这将总是导致在单排用一个值(具有最高ID)。
如果你觉得古怪,你也可以颠倒SQL顺序并选择最上面的一个。
我不知道SQL的你特别的味道,但在很多你可以做,如:
Q =“SELECT * FROM TBL其中ID =(选择TBL b最大(b.ID)) “
是的,但速度最慢。
不仅如此,你的前提是错误的。 你不需要需要从数据库中获得最高的ID。
我的心理调试能力告诉我你要用这个来创建一个新的ID,并用一条新记录将该ID插回到数据库中。这完全是错误的做法,并会导致您的网站上的代码竞争条件。相反,请将您的ID设置为Identity列,并让Sql Server自动创建您的ID。然后在使用Sql Server的scope_identity()
函数插入后,选择新的ID返回到结果中。
即使我错了,你只是想用它来检索最近的记录,你真正想要的可能是类似scope_identity()
(如果你刚创建新记录作为同一会话的一部分)或ident_current(tbl)
(如果新记录可能是由其他人创建的或者是前一段时间创建的)。在这最后一种情况下,你确实应该有别的方法来确定什么是“最近的”。
其他的答案是正确的,我只是建议你给它一个别名,所以你可以访问它:
select max(ID) as "maxID" from tbl
...
qid = qv("maxID")
这是2009年,只是,你知道,备案。 – overslacked 2009-03-02 19:34:34
这样的笑话可能是TheCodeProject.com(http://www.codeproject.com/Feature/CodingHorrors.aspx)中的“编码恐怖”留言板,但它们不适合本网站。 – 2009-03-02 19:47:15