Sails.js版本0.12.13。
User.query(`CALL someProc()`, function(err, data){
console.log(data);
}
响应:
data: OkPacket {
fieldCount: 0,
affectedRows: 0,
insertId: 0,
serverStatus: 32,
warningCount: 0,
message: '',
protocol41: true,
changedRows: 0
}
什么是“ serverStatus:32”?
什么是“ serverStatus:34”?
最佳答案
Sails中.query
调用的响应直接来自驱动程序,在本例中为mysql。 serverStatus
是一个位域。您可以在MySQL source code docs中获取常量列表-列表中的第一个常量表示1
的值,下一个2
然后是4
,依此类推。
所以serverStatus: 32
意味着只设置了第六位,对应于SERVER_STATUS_CURSOR_EXISTS
:
服务器能够满足客户端的请求,并为查询打开了一个只读的不可滚动游标。
该标志是对COM_STMT_EXECUTE和COM_STMT_FETCH命令的答复。二进制协议结果集使用此信号表示必须使用COM_STMT_FETCH来获取行数据。
如果看到serverStatus: 34
,则表示上面的第二个位SERVER_STATUS_AUTOCOMMIT
都已设置:
服务器处于auto_commit模式。