python调用存储过程怎么总是返回none
DROP TABLE IF EXISTS `status_201402`;
CREATE TABLE `status_201402` (
`StatusID` int(4) NOT NULL AUTO_INCREMENT,
`DriveID` int(4) DEFAULT NULL,
`InsID` int(4) DEFAULT NULL,
`StatusTime` datetime DEFAULT NULL,
`StatusParam` double DEFAULT NULL,
PRIMARY KEY (`StatusID`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
/*******************创建存储过程******************/
CREATE PROCEDURE `test`(IN DriveID1 int,IN InsAddress1 int,IN StatusTime1 datetime,IN StatusParam1 float)
BEGIN
INSERT INTO status_201402(DriveID,InsID,StatusTime,StatusParam)VALUES(DriveID1,InsAddress1,StatusTime1,StatusParam1);
END
/*******************python脚本******************/
#_*_coding:utf-8_*_
import MySQLdb
import time
conn=MySQLdb.connect(host='192.168.0.129',port=3306,user='hello',passwd='274348',charset="utf8",db="hjjk")
cur=conn.cursor()
#cur.callproc('AddStatus',(1,3,time.strftime('%Y-%m-%d %H:%M:%S'),7))
#cur.callproc('AddStatus',(1,3,'2014-02-14 16:19:00',7))
cur.callproc('test',(1,3,'2014-02-14 16:19:00',8))
cur.execute('select @_DriveID,@_InsAddress,@_StatusTime,@_StatusParam')
data=cur.fetchall()
cur.close()
conn.close()
利用python执行存储过程返回None
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
这个存储过程用其它语言调用都没问题,就是用Python调用出现问题,这是一个插入记录的存储过程,用python调用存储过程执行成功,但是记录没有增加
既然您在存储过程的传入参数前用 IN,
自然也应该知道用 OUT 作为参数返回嘛。
还有MS SQL 的存储过程是可以直接返回查询表的,
这样的话或许就可以直接的用 cur.execute 返回记录集了。
数据插入不进去
您用的是什么数据库,好象没有见过 float 这个字段类型的啊
把它弄成 number 或 您自己表的 double 类型吧