MySql IN参数 - 在存储过程中使用时,VarChar IN参数val是否需要单引号?
我已经像平常一样创建了我的经典ASP代码,但我没有让列更新。
我是否需要引用VarChar参数?
DELIMITER $$
DROP PROCEDURE IF EXISTS `usp_update_map_record` $$
CREATE DEFINER=`ddddddd`@`%` PROCEDURE `usp_update_map_record`(
IN p_intGrillId INT(10),
IN p_intPartId INT(10),
IN p_ManRef VARCHAR(10)
)
BEGIN
UPDATE parts_map SET manualref = 'p_ManRef' WHERE grillid = p_intGrillId AND partid = p_intPartId;
END $$
DELIMITER ;
VBSCRIPT PORTION:
With comm
.ActiveConnection = conn
.CommandType = adCmdStoredProc
.CommandText = "usp_update_map_record"
.Parameters.Append .CreateParameter("p_intGrillId", adInteger, adParamInput, 10, intGrillId)
.Parameters.Append .CreateParameter("p_intPartId", adInteger, adParamInput, 10, CIntPartId)
.Parameters.Append .CreateParameter("p_ManRef", adVarChar, adParamInput, 10, strManualRef)
.Execute
End With
此外,我测试了所有3个值并且它们不是空的。
感谢。
答案 0 :(得分:1)
这是不正确的:
UPDATE parts_map SET manualref = 'p_ManRef'
^-- ^--
引号转为" field"成一个字符串。 - 您不是在比较两个字段,而是将manualref字段与一个字符串进行比较,该字符串的值恰好是您的sproc参数的NAME。
尝试:
UPDATE parts_map SET manualref = @p_ManRef
^--- variable/parameter indicator