帮忙看看哪里有问题,多谢了。
确定数据库里有记录。
程序代码,参数的赋值和顺序并没有错。
var productCategoryID = helper.emptyUuid;
var parentID = req.body.parentID ? req.body.parentID : helper.emptyUuid;
var usePorc = "CALL usp_productCategory_create(?,?,?,?,?,@returnCode);";
var useParams = [productCategoryID, req.body.name, req.body.details, parentID, req.session.adminid];
存储过程,出错了。
CREATE DEFINER=`root`@`localhost` PROCEDURE `usp_productCategory_create`(
in param_porductcategoryid char(50)
,in param_name varchar(20)
,in param_details varchar(200)
,in param_parentID char(50)
,in param_userID char(50)
,out returnCode char(12))
BEGIN
DECLARE var_exists int;
SET returnCode='003001000';
SELECT count(productCategoryID) into var_exists FROM productcategories WHERE productCategoryID=param_parentID group by productCategoryID;
IF var_exists=1 then
SET returnCode='003001001';
end if;
set returnCode=CAST(var_exists AS char(12));//后来加的语句用来做测试,结果获取到Null
select returnCode;
END
哎呀……早上第一眼……我变量名定义错了……
已解决。
之前用 sublimeText 编辑保存的代码,ctrl+alt+F格式化代码,value被自动添加了若干空格。parentID 本来是uuid,加了空格后长度变82。汗。
再者,之前是在mssql下实现,直接过。现在改mysql,parentID传到存储过程里回打回来是'00000000-0000-0000-0000-000000000000\r\n'
做后判断啊,if xxx =null then