【发布时间】:2017-05-07 14:17:18
【问题描述】:
如果日期存在,我正在处理存储过程,然后获取记录,否则过去 90 天数据过程工作正常,但如果我通过代码发送输入,我将收到传入表格数据流 (TDS) 远程过程调用 ( RPC) 协议流不正确。
这是我的程序:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER OFF
GO
ALTER PROCEDURE [dbo].[get_audit_list_for_sites_list_enh]
(@site_list VARCHAR(MAX),
@ip_audit_dttm_from DATETIME = NULL,
@ip_audit_dttm_to DATETIME = NULL)
/**************************************************************************************************
* Name : get_accepted_terms_da_user
*
* Description : This Procedure is to get the user activity, user, admin etc details for auditing
*
* Author : Sandeep (rajsa06)
*
* Date Written : 11th Jan 2017
*
***************************************************************************************************
* Called By
* None.
*
* Objects S I U D E
* dbo.user_info X
* dbo.user_audit X
*
* Called Objects
* None.
**************************************************************************************************/
AS
BEGIN
IF (@ip_audit_dttm_from IS NULL AND @ip_audit_dttm_to IS NULL)
BEGIN
DECLARE @t_sites TABLE (site_id INTEGER NOT NULL PRIMARY KEY)
INSERT INTO @t_sites (site_id)
SELECT integer_id
FROM dbo.dba_tfn_split_commaseparated_int_string(@site_list)
SELECT
a.site_id AS siteId,
a.activity AS activity,
a.activity_desc AS activityDesc,
a.audit_dttm AS auditDate,
b.first_name AS userFirstName,
b.last_name AS userLastName,
b.login_name AS userEmail,
CONCAT(c.first_name,' ', c.last_name) AS adminName
FROM
(SELECT *
FROM dbo.user_audit
WHERE site_id IN (SELECT site_id FROM @t_sites)
AND audit_dttm >= DATEADD(day, -90, GETDATE())) a
INNER JOIN
dbo.user_info b ON a.user_id = b.user_id
INNER JOIN
dbo.user_info c ON a.da_user_id = c.user_id
ORDER BY
auditDate DESC
END
ELSE
BEGIN
INSERT INTO @t_sites (site_id)
SELECT integer_id
FROM dbo.dba_tfn_split_commaseparated_int_string(@site_list)
SELECT
a.site_id AS siteId, a.activity AS activity,
a.activity_desc AS activityDesc, a.audit_dttm AS auditDate,
b.first_name AS userFirstName, b.last_name AS userLastName,
b.login_name AS userEmail,
CONCAT(c.first_name,' ', c.last_name) AS adminName
FROM
(SELECT * FROM dbo.user_audit
WHERE site_id IN (SELECT site_id FROM @t_sites)
AND audit_dttm >= @ip_audit_dttm_from
AND audit_dttm <= @ip_audit_dttm_to) a
INNER JOIN
dbo.user_info b ON a.user_id = b.user_id
INNER JOIN
dbo.user_info c ON a.da_user_id = c.user_id
ORDER BY
auditDate DESC
END
END
这是我的 Node.js 代码。
new MsSqlWrapper()
.runStoredProcedure({
storedProcedureName:
constants.storedProcedures.get_audit_list_for_sites_list_enh,
inputs: [
{
name: 'site_list',
value: siteIdList.data.details
},
{
name: 'ip_audit_dttm_from',
value: fromDate
},
{
name: 'ip_audit_dttm_to',
value: toDate
}
]
})
我的意见:
"input": {
"userId": "336931",
"connectSiteId": "999999",
"fromDate": "2009-10-21 08:20:39.477",
"toDate": "2009-12-21 08:20:39.477"
}
【问题讨论】:
-
runStoreProc代码? -
如果你在网上搜索(就像我现在一样),你会发现这个问题有很多不同的原因。如果没有 full 错误文本(“协议流不正确”后面会出现一些不同的内容),就无法判断这里的问题是什么。如果您期望得到实际帮助,仅供参考。
标签: javascript sql-server node.js stored-procedures