专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > Perl/Python

,先行谢过!关于pyodbc访问sql server数据库执行自己创建存储过程有关问题

发布时间:2011-06-29 19:58:23 文章来源:www.iduyao.cn 采编人员:星星草
紧急求助,先行谢过!!关于pyodbc访问sql server数据库执行自己创建存储过程问题
菜鸟请教各位大侠关于pyodbc访问sql server数据库执行自己创建存储过程问题
使用pyodbc构建,前面连接数据库正常,执行如“select * from ...."语句都ok。
......
conn = pyodbc.connect(...省略。
cu = conn.cursor()
##this is ok.
##cu.execute("select * from sysobjects")
##print cu.fetchall() 
##this is not ok
cu.execute("sp_myproc para1,para2")
print cu.fetchall()
......

在print cu.fetchall()时打印"previous SQL is not a query"但cu.execute("select * from ...")
查询正常表是ok的。

请教各位大侠是否在sql server下pyodbc执行存储过程不是这么操作的?
还是另有其它高招,
非常感谢!!

------解决方案--------------------
好像调用存储过程不应该是这样的吧?
我记得有个 *.callproc(operation,[parameter])方法的!!

------解决方案--------------------
试试下面2种,para1,para2是直接面值的话就照你原来在字串里:
ms sql server format:
cu.execute("exec sp_myproc ?, ?", (cu.execute("exec sp_myproc ?, ?", (para1,para2))

odbc format:
cu.execute("{call sp_myproc (?, ?)}", (para1, para2))


------解决方案--------------------
不是很懂,参考下面链接,好像提到有啥限制的...

Results

Since we can't use output parameters at this point, you'll need to return results in a result set. Usually this means just ending your stored procedure with a SELECT statement. 

http://code.google.com/p/pyodbc/wiki/StoredProcedures
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: