ASP -> SQL 递增值

ASP -> SQL incrementing values

我有一个 ASP 脚本要插入到 SQL 数据库中,其中每个条目的值 MIDX 需要递增 1。 (这是针对游戏中的氏族。) 有一个 IDX 列,它是对氏族本身的引用,每个添加的成员都会增加 MIDX。

现在在 ASPX 中,我通过找到 MAX(IDX/MIDX) 值然后执行 MIDX = MIDX + 1 使其工作正常,但它在 asp 脚本中不起作用 - - 见下文。

dim iMIDX

QUERY = "SELECT MAX(MIDX) FROM UL Where ClanName='" & clName & "'"
RS.Open QUERY, ObjConn, 3, 1
If MIDX > 0 Then
    iMIDX = Cint(RS("MIDX").Value)
End If

RS.Close

iMIDX = iMIDX + 1 

QUERY = "INSERT INTO UL ([IDX],[MIDX],[userid],[ChName],[ClanName],[ChType]," _
    & "[ChLv],[Permi],[JoinDate],[DelActive],[PFlag],[KFlag],[MIconCnt]) " _
    & "values('" & IDX & "','" & iMIDX & "','" & clwonUserid & "','" & clwon _
    & "','" & clName & "','" & chtype & "','" & chlv & "','0',getdate(),'0','0','0','0')"
RS.Open QUERY, objConn, 3, 1
End If

您必须先读取值,它不会显示为变量。

QUERY = "SELECT MAX(MIDX) FROM UL Where ClanName='" & clName & "'"
RS.Open QUERY, ObjConn, 3, 1
iMIDX = 0
If Not(RS.EOF) Then
    iMIDX = Cint(RS(0).Value)
End If
RS.Close
iMIDX = iMIDX + 1 

您的代码的问题在于 iMIDX 始终为 0,因此 If 条件永远不会为真。即使是这样,您也会出错,因为您没有使用别名,因此记录集中没有任何名为 "MIDX" 的字段。幸运的是,您还可以通过索引读取该字段。