python调用存储过程怎么总是返回none

发布于 2021-11-26 06:53:47 字数 1494 浏览 798 评论 5

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

已下线请稍等 2021-11-26 20:01:33

这个存储过程用其它语言调用都没问题,就是用Python调用出现问题,这是一个插入记录的存储过程,用python调用存储过程执行成功,但是记录没有增加

沙与沫 2021-11-26 20:00:51

既然您在存储过程的传入参数前用 IN,
自然也应该知道用 OUT 作为参数返回嘛。

还有MS SQL 的存储过程是可以直接返回查询表的,

这样的话或许就可以直接的用 cur.execute 返回记录集了。

落墨 2021-11-26 20:00:37

数据插入不进去

清晨说ぺ晚安 2021-11-26 15:59:21

您用的是什么数据库,好象没有见过 float 这个字段类型的啊

勿忘初心 2021-11-26 09:11:25

把它弄成 number 或 您自己表的 double 类型吧

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文