django访问mysql存储过程问题

duxianghe 2009-02-11 03:34:33
现在有一个问题.
我的存储过程中有update,最后返回select的表
直接在mysql 中运行可以正常,update也生效
但放在django中,能返回select 表,update在执行存储过程时是运行了的(影响了select结果),但存储过程运行后,查询数据,发现update没有生效,即回滚了...

cursor = connection.cursor()
cursor.execute("call Proc_Set_Isread(%s,%s)",[id,'1'])
for row in cursor.fetchall():
...

我想是因为connection.connection.commit()的原因
因为要想返回数据就不能用connection.commit(是不是这样????)
但不用commit,更改就不能生效.....

我在存储过程中调用其它存储过程,也不能解决这个问题...
请问在django/python中,有没有即提交了数据,又查询到结果的好方法.

回复者去
http://topic.csdn.net/u/20090211/15/a5fb8dc8-999d-450b-960a-2524c4e28694.html
领50分
...全文
693 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
aking8736 2009-02-13
  • 打赏
  • 举报
回复
友情帮顶,顺带接分!!!
duxianghe 2009-02-13
  • 打赏
  • 举报
回复
人气太差
或者在存储过程中这样也可以:
START TRANSACTION;
....
COMMIT;
duxianghe 2009-02-12
  • 打赏
  • 举报
回复
cursor = connection.cursor()
cursor.callproc("Proc_Get",(id,1))

result_list = []
for row in cursor.fetchall():
print row[0]

cursor.nextset()
connection.connection.commit()

cursor.close()
connection.close()

解决了.这样就OK了
duxianghe 2009-02-12
  • 打赏
  • 举报
回复
我使用
cursor.callproc("Proc_GetRss",(id,'1'))
一样的问题

37,722

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧