我得到了一个网站,该网站的表单充满了设置,每个输入都在MS SQL数据库中保存一个值。

但是当我将字段设置为''时,出现以下错误消息:
“输入的表格数据流(TDS)远程过程调用(RPC)协议流不正确。参数3(“”):数据类型0x00未知。

我的node.js服务调用了一个存储过程,如下所示:

CREATE PROCEDURE [dbo].[ckd_Configurations_Update]
@Key NVARCHAR(256),
@Value NVARCHAR(MAX)
AS
BEGIN
  UPDATE [dbo].[ckd_Configurations] SET [Value]=@Value WHERE [Key]=@Key;
END


我的桌子:

CREATE TABLE [dbo].[ckd_Configurations]
(
    [Key] NVARCHAR(256) NOT NULL PRIMARY KEY,
    [Value] NVARCHAR(MAX)
)


最后,我的node.js路由来设置配置:

router.post('/configurations/update', function (req, res) {
    var request = new sql.Request(databaseConnection);
    var configuration = req.body;
    request.input('Key', sql.NVarChar(256), configuration.Key);
    request.input('Value', sql.NVarChar(sql.MAX), configuration.Value);

    request.execute('ckd_Configurations_Update', function (error, recordsets) {
        if (error) {
            res.json(new apiResponse(false, error.message));
        } else {
            res.json(new apiResponse(true, '', recordsets[0]));
        }
    });
});

最佳答案

只需将mssql更新到2.0。此版本已修复该问题。

关于javascript - 在表中保存空字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28578353/

10-10 23:34