尝试获取活动用户在Access数据库中提交的最后一个票证ID。除非我离开" SELECT @@ IDENTITY"否则这不起作用。本身没有WHERE子句。如何使用WHERE子句?
'Pulls the last submitted ticket ID, and makes sure it was submitted by the active user to prevent a race condition scenario among multiple users
Dim returnvalue As Integer = -1
Dim custCMD As OleDb.OleDbCommand = New OleDb.OleDbCommand("SELECT @@IDENTITY WHERE [Last Modified By] = '" & Environment.UserName & "';", connection)
returnvalue = CType(custCMD.ExecuteScalar(), Integer)
MsgBox(returnvalue)
答案 0 :(得分:1)
SELECT @@ IDENTITY中不需要WHERE子句,因为该命令返回与命令关联的连接的最后生成的自动编号 。在其他PC或您自己的应用程序的其他实例上运行其他连接没有竞争条件。不确定多个线程,但如果您按照最佳做法打开/使用/关闭连接,那么您就安全了