rs.Open "mx",conn,2,3
rs.AddNew
rs("type")=0
rs("action")=1
rs.Update
以上是我用addnew的方法。在有关资料中说到,addnew添加完数据后会自动将游标指向新添加的数据上,但是我在update之后用rs("id")读取刚刚添加的数据的ID,竟是个空值,没办法读出。
之后我又用了rs.MoveLast方法,才能读得出,但是,用这种方法在多人同样添加新数据时一定会出现混乱的。
在之后的贴子中我看到有人可以直接用rs("id")读出新数据的ID,所以来问一下,以上的方法是不是对的,会不会在Recordset类型和锁定类型上有什么要求之类的。请大家指点一下。
注:id为自动编号
---------------------------------------------------------------
应该跟你设的数据类型有关
---------------------------------------------------------------
你用的是什么数据库?
我在SQLSERVER和ACCESS中都用过,好用的。
UPDATE后,游标是指在刚刚添加的记录。
---------------------------------------------------------------
用1,3打开。
---------------------------------------------------------------
where id=@@identity
---------------------------------------------------------------
查询语句的条件,@@identity是数据库的全局变量,表示最近插入记录的id
---------------------------------------------------------------
我知道是为什么。用ODBC连接(DRIVER={MICRO.....)就读不到。用OLEDB(PROVIDER=....)就可以读到
---------------------------------------------------------------
Access用OLEDB就可以的。如果SQL SERVER不行,你可以用bookmark属性。
varBookmark = rs.Bookmark
将来再rs.Bookmark = varBookmark就可以回来
---------------------------------------------------------------
@@identity得到的是当前会话最后一次操作所影响的ID,对于并发用户,@@identity的值是不会产生混乱的,因为不同用户使用不同的会话.