我正在尝试使用繁琐的 TVP,并在使用DateTime
参数时不断收到此错误。
构建请求时的异常是:
days = Math.floor((parameter.value.getTime() - UTC_EPOCH_DATE.getTime()) /
(1000 * 60 * 60 * 24));
^
例外:
TypeError:parameter.value.getTime 不是函数
代码看起来像这样
/*declare table*/``
let table = {
columns: [
{ name: 'a', type: TYPES.VarChar, length: 50, nullable: true },
{ name: 'b', type: TYPES.Int},
{ name: 'c', type: TYPES.DateTime}
],
rows: [
['hello tvp', 777,'05/08/07 12:35 PM'],
['OLO', 45,'05/08/16 1:30 AM']
]
};
/*request code*/
var request = new Request("MyCustomStoredProcedure", function (err, rowCount) {
if (!err) {
callback(err)
logger.info("rowCount", rowCount)
} else {
callback(rowCount)
logger.error("Error => ", err)
}
});
request.addParameter('tvp', TYPES.TVP, table);
request.on('row', function (columns) {
logger.info("data", columns)
});
connection.callProcedure(request);
CREATE TYPE TestType AS TABLE (a VARCHAR(50), b INT, c DateTime);
CREATE PROCEDURE MyCustomStoredProcedure
(@tvp TestType readonly)
AS
SELECT *
FROM @tvp
查看 data-types.js 的繁琐代码,我发现它parameter.value
是一个字符串而不是一个对象。
不知道我在这里做错了什么。
我试过的
- 没有
datetime
- 工作 - with
DateTime2
- 传入的表格数据流 (TDS) 远程过程调用 (RPC) 协议流不正确。参数 2 (""):数据类型 0x03 未知。 - 使用https://github.com/patriksimek/node-mssql,但在内部它再次使用 Tedious