【问题标题】:The incoming tabular data stream (TDS) remote procedure call (RPC) protocol stream is incorrect. The RPC name is invalid?传入的表格数据流 (TDS) 远程过程调用 (RPC) 协议流不正确。 RPC 名称无效?
【发布时间】: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


【解决方案1】:

我收到与此相同的错误消息,因为我已将调用更改为使用 SQL“文本”而不​​是“存储过程”,因此错误的 CommandType 是另一个可能导致此错误的原因。

SqlCommand cmd = new SqlCommand(query, connection);
cmd.CommandType = CommandType.Text;

【讨论】:

    猜你喜欢
    • 2018-05-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-02
    • 1970-01-01
    • 2018-10-24
    • 1970-01-01
    • 1970-01-01
    • 2020-05-26
    相关资源
    最近更新 更多