当前位置: 首页 > 面试题库 >

运行带有NodeJS和MSSQL程序包错误的存储过程

潘灵均
2023-03-14
问题内容

我试图使用下面的代码获取MSSQL nodejs包以从Microsoft SQL Server返回存储过程的结果。但是我得到的错误是…

[TypeError: Cannot read property 'type' of undefined]

我不确定我是否正确地完成了输入,因为我找不到在线上有多个输入的示例。

有任何想法吗?

exports.executeSqlStoredProd = function (callback) {
    var conn = new sqlDb.Connection(settings.dbConfig)
    conn.connect().then(function () { 
        var req = new sqlDb.Request(conn);
        req.input('ProductEntryID', req.Int, 3299);
        req.input('LoginEntryID', req.Int, 4);
        req.input('TempLoginEntryId', req.Int, -1);
        req.input('AddToWishList', req.Bit, 0);
        req.input('WebPortalId', req.Int, 0);
        req.execute('J_ViewAProduct').then(function(err, recordsets) {
        console.log(recordsets);
        callback(recordsets)
    })}).catch(function(err){ 
        console.log(err);
        callback(null, err);
    });
}

我使用软件包“ Seriate”成功完成了请求,但希望使用mssql。适用于“ Seriate”的代码如下。

exports.getVAP = function(req, resp, pid) {  
    sql.execute({
        procedure: "J_ViewAProduct",
        params: {
            ProductEntryID: {
                type: sql.INT,
                val: pid
            },
            LoginEntryID: {
                type: sql.Int,
                val: 4
            },
            TempLoginEntryId: {
                type: sql.Int,
                val: -1
            },
            AddToWishList: {
                type: sql.Bit,
                val: 0
            },
            WebPortalId: {
                type: sql.Int,
                val: 0
            }
        }
    }).then(function(results){
        console.log(results)
        httpMsgs.sendJSON(req, resp, results)
        //httpMsgs.sendJSON(req, resp, results[0])
        resp.end();
    }), function(err){
        httpMsgs.show500(req, resp, err)
    }

};

问题答案:

我认为线的

req.input('ProductEntryID', req.Int, 3299);
req.input('LoginEntryID', req.Int, 4);
req.input('TempLoginEntryId', req.Int, -1);
req.input('AddToWishList', req.Bit, 0);
req.input('WebPortalId', req.Int, 0);

这有req.input那似乎是错误的。

请尝试此代码

var sql = require('mssql');

var config = {
    user: 'sa',
    password: '---',
    server: 'localhost', // You can use 'localhost\\instance' to connect to named instance
    database: 'Test'
}

var getCities = function() {
  var conn = new sql.Connection(config);
  conn.connect().then(function(conn) {
    var request = new sql.Request(conn);
    request.input('City', sql.VarChar(30), 'Cbe');
    request.input('NameNew', sql.VarChar(30), 'Cbe');
    request.execute('spTest').then(function(err, recordsets, returnValue, affected) {
      console.dir(recordsets);
      console.dir(err);
    }).catch(function(err) {
      console.log(err);
    });
  });
}

getCities();

我自己尝试了一下,并给出了结果。



 类似资料:
  • 本文向大家介绍MSSQL事务的存储过程,包括了MSSQL事务的存储过程的使用技巧和注意事项,需要的朋友参考一下 在酒店管理系统开发中,我们会创建房间表和房间类型表(房型表)这两个表,如下图所示: 房型表:RoomType             房间表:Room   首先这两个表的关系:Room是从表,RoomType是主表,两表有主外键关系,RoomType.rTypeId=Room.rType

  • 希望大家都做得好! 需要存储过程方面的帮助。创建过程时出现以下错误。非常感谢您的帮助。 错误:#1064-您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,了解使用near'CREATE PROCEDURE regi_email(在电子邮件VARCHAR(255)中,counti OUT INT)的正确语法 开始 “在3号线 我的程序如下:

  • 如果不能理解我的英语是因为我的英语不好。。。。我会尽力解释我的问题。 我试图在mysql(phpmyadmin)中创建一个存储过程,但出现了以下错误: #1064年的今天,您的SQL语法出现错误;请查看与MySQL服务器版本对应的手册,以获取第3行“”附近使用的正确语法 这是存储过程的代码: 这是表格用户的代码: 对不起,我的英语不好

  • 问题内容: 我正在寻找用于支持存储过程的nodejs的mySQL驱动程序。我一直在使用的http://nodejsdb.org/db- mysql/ 给出了错误 PROCEDURE无法在给定的上下文中返回结果集 问题答案: 它在nodejs-mysql-native中工作 存储过程: node.js脚本: 输出:

  • 问题内容: 我相信MySQL当前没有可用的东西允许访问MySQL存储过程中最后执行的语句。这意味着在存储过程中引发泛型时,很难/不可能得出错误的确切性质。 是否有人有变通办法来推导MySQL存储过程中的错误,而不涉及为每个可能的SQLSTATE声明处理程序? 例如,假设我正在尝试返回一个error_status,它超出了下面的通用“ SQLException在此块中的某处发生”: 有小费吗? PS

  • 我试图创建一个存储过程,但不断出现错误: #1064年的今天,您的SQL语法出现错误;查看与您的MySQL服务器版本对应的手册,以了解第3行“NOT DETERMINISTIC CONTAINS SQL SECURITY DEFINER COMMENT”“B”附近使用的正确语法 我的SQL如下: 我尝试过包含分隔符,但没有结果。我想问题可能出在引号里。有人能给我指出解决办法吗?谢谢 MySQL 5