ASP - > SQL递增值

时间:2016-06-26 04:55:12

标签: mysql sql asp-classic

我有一个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

1 个答案:

答案 0 :(得分:2)

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

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条件永远不会为True。即使它是,你也会得到错误,因为你没有在记录集中有任何名为“MIDX”的字段,因为你没有使用别名。幸运的是,您还可以通过索引阅读该字段。

相关问题