MySql IN参数 - 在存储过程中使用时,VarChar IN参数val是否需要单引号?

时间:2012-12-04 15:27:25

标签: mysql stored-procedures asp-classic

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个值并且它们不是空的。

感谢。

1 个答案:

答案 0 :(得分:1)

这是不正确的:

UPDATE parts_map SET manualref = 'p_ManRef'
                                 ^--      ^--

引号转为" field"成一个字符串。 - 您不是在比较两个字段,而是将manualref字段与一个字符串进行比较,该字符串的值恰好是您的sproc参数的NAME。

尝试:

UPDATE parts_map SET manualref = @p_ManRef
                                 ^--- variable/parameter indicator