您的位置:首页 > 编程语言 > Python开发

python adodbapi 获取insert的自增ID

2012-08-20 10:49 337 查看
1.有两种方法一直是直接是用OutPut

cur = con.execute(
"insert into sometable OUTPUT INSERTED.idcolumn values('something')"
)


cur.rs(RecordSet)里面就包含了 刚插入的ID

2.Set NoCount On

#insert
def insert(conn,table,**kv):
""" eg: insert(conn,'test',id=2,name=5) sql:insert into test(id,name) values(2,5)"""
sqlcolums=[]
sqlparams=[]
for k,v in kv.items():
sqlcolums.append(k)
sqlparams.append(GBK(v))
sqlparams=tuple(sqlparams)
sql='SET NOCOUNT ON;'
sql+=' insert into '+table+' ('+','.join(sqlcolums)+') values ('+','.join('?'*len(sqlcolums))+');'
sql+='SELECT SCOPE_IDENTITY();'
sql+='SET NOCOUNT OFF;'
cur=conn.cursor()
cur.execute(sql,sqlparams)
id=cur.fetchone()[0]
return int(id)  if IsPositiveNum(id) else id
’如果未加‘Set nocount on ’ Select Scope_identity() 在结果集里面 始终为None
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: