- 论坛徽章:
- 3
|
存储过程返回结果集,获得这个结果集,现在写法有异常。
存储结果本身没有问题,mysql里都好用
- #!/usr/bin/python
- import MySQLdb
- db = MySQLdb.Connect(host='localhost', user='root', passwd='123456', db='test')
- cursor = db.cursor()
- try:
- args=(2,2000)
- cursor.callproc("proc3",args) #call proc3(2,2000)
- print "XX1"
- for result in cursor.stored_results():
- print "XX2";
- except:
- print "Bad"
- print "TEST"
- db.close()
复制代码 运行结果会产生这个异常
- XX1
- Bad
- TEST
- Exception _mysql_exceptions.OperationalError: (2013, 'Lost connection to MySQL server during query') in <bound method Cursor.__del__ of <MySQLdb.cursors.Cursor object at 0xb6b81f6c>> ignored
复制代码
- create database test;
- use test;
- create table t ( a int, b int);
- insert into t(a,b) values (1,1000);
- insert into t(a,b) values (1,2000);
- insert into t(a,b) values (1,3000);
- insert into t(a,b) values (2,1000);
- insert into t(a,b) values (2,2000);
- insert into t(a,b) values (2,3000);
- insert into t(a,b) values (3,1000);
- insert into t(a,b) values (3,2000);
- insert into t(a,b) values (3,3000);
- delimiter //
- create procedure proc1()
- begin
- select a,b from t;
- end
- //
- create procedure proc2(in a_max int)
- begin
- select a,b from t where a<=a_max;
- end
- //
- create procedure proc3(in a_max int,in b_max int)
- begin
- select a,b from t where a<=a_max and b<=b_max;
- end
- //
- delimiter ;
复制代码 |
|