python adodbapi 获取insert的自增ID

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 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值