[已解决]Mssql数据库获取最新加入数据的ID问题
本帖最后由 ssfnpyu 于 2010-9-3 15:02 编辑Local $_XinZeng_FenLei_ID
$_DuQu_Main_BaoJiaGuangLi_FenLei1 = GUICtrlRead($_Main_BaoJiaGuangLi_Combo_FenLei1)
$_DuQu_Main_BaoJiaGuangLi_FenLei2 = GUICtrlRead($_Main_BaoJiaGuangLi_Combo_FenLei2)
$_DuQu_Main_BaoJiaGuangLi_FenLei3 = GUICtrlRead($_Main_BaoJiaGuangLi_Combo_FenLei3)
$_DuQu_Main_BaoJiaGuangLi_XingHao = GUICtrlRead($_Main_BaoJiaGuangLi_Input_XingHao)
$_DuQu_Main_BaoJiaGuangLi_ChanShu = GUICtrlRead($_Main_BaoJiaGuangLi_Input_ChanShu)
$_DuQu_Main_BaoJiaGuangLi_JiaGe = GUICtrlRead($_Main_BaoJiaGuangLi_Input_JiaGe)
$_DuQu_Main_BaoJiaGuangLi_BeiZhu = GUICtrlRead($_Main_BaoJiaGuangLi_Input_BeiZhu)
$_DuQu_Main_BaoJiaGuangLi_Group = GUICtrlRead($_Main_BaoJiaGuangLi_Group)
$Rs = ObjCreate("ADODB.Recordset")
$Rs.ActiveConnection = $ObjConn
$Rs.Open("Insert Into _Andrew_BaoJiaGuangLi(FenLei,PeiJian,PinPai,XingHao,CanShu,BeiZhu,DengLu_ID) Values('" & _
"" & $_DuQu_Main_BaoJiaGuangLi_FenLei1 & "','" & $_DuQu_Main_BaoJiaGuangLi_FenLei2 & "','" & $_DuQu_Main_BaoJiaGuangLi_FenLei3 & "','" & _
"" & $_DuQu_Main_BaoJiaGuangLi_XingHao & "','" & $_DuQu_Main_BaoJiaGuangLi_ChanShu & "','" & _
"" & $_DuQu_Main_BaoJiaGuangLi_BeiZhu & "','" & $_DengLu_ZhangHao_ID & "')")
$Rs.Open("Select SCOPE_IDENTITY()")
If Not $Rs.Eof And Not $Rs.Bof Then $_XinZeng_FenLei_ID = $Rs.Fields(0).Value
$Rs.Close我用"Select SCOPE_IDENTITY()"这句语句来获取最新加入的数据的ID。。但获取出来的值是空值。。为什么呢?
如果不能加"Select SCOPE_IDENTITY()"这句语句。。那应该要怎么获取呢? 本帖最后由 飞龙三少 于 2010-9-2 15:04 编辑
SCOPE_IDENTITY 是返回在当前会话中的任何表内所生成的最后一个标识值,而你的代码中是2次不同的$Rs.Open,这应该是2个不同的会话,因此换回是NULL。
你可以在MSSQL的同一SQL查询里面执行你的插入语句和Select SCOPE_IDENTITY(),会返回最后的ID
而如果你在一个SQL查询里面执行插入语句后,断开连接再重新连接或者打开一个新查询,再执行Select SCOPE_IDENTITY()时,返回的就是NULL。
你可以使用类似 SELECT MAX(ID) FROM _Andrew_BaoJiaGuangLi 的语句查询出标识列的最大值。 也就是说我这段语句里面不能使用获取最新加入数据的ID的方式来获取ID?
页:
[1]