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