sap
  • saprfc
  • 2011-03-09 47 views 2 likes 
    2

    以下查询连接每行的列结果。我需要用某种分隔符或独特的行[i]结果来分隔列。RFC_READ_TABLE连接行结果中的列

    查询

    "exec rfc_read_table @query_table='VBAK', @rowcount=50, @FIELDS= '<FIELDS><RFC_DB_FLD xmlns="http://Microsoft.LobServices.Sap/2007/03/Types/Rfc/"><FIELDNAME>MANDT</FIELDNAME></RFC_DB_FLD><RFC_DB_FLD xmlns="http://Microsoft.LobServices.Sap/2007/03/Types/Rfc/"><FIELDNAME>VBELN</FIELDNAME></RFC_DB_FLD></FIELDS>,@[email protected] output'" 
    

    .NET

      using (SAPCommand cmd = conn.CreateCommand()) 
          {       
           cmd.CommandText = //See query above 
    
    
           SAPDataReader rdr = cmd.ExecuteReader(); 
    
           while (rdr.Read()) 
           { 
            Console.Write(" {0} ", rdr[0]); 
            //Console.Write(" {0} ", rdr[1]);//null... 
            Console.WriteLine(); 
           } 
    

    UPDATE
    我能够通过以下

    通过
    DataTable dtFields = (DataTable)cmd.Parameters["@flds"].Value;(更新查询)返回的索引中的列分开

    该进程非常快速并且抛出异常,因为当查询中的最后一列返回空结果时(也发现长度指示符错误),索引变得不可靠。我大部分时间都在工作,但这很糟糕。用.NET查询SAP有更好的支持方法吗?

    回答

    0

    我不确定,但在SAP .NET连接器的第3版中,应该解决这个问题。

    +0

    我相信这是我们大家下载的版本。 – 2011-03-19 18:57:29

    1

    它适合我。

    添加此 - >在你的脚本:

    @DELIMITER ='|' 
    

    "exec rfc_read_table @query_table='VBAK', @rowcount=50, @DELIMITER ='|', @FIELDS= '<FIELDS><RFC_DB_FLD xmlns="http://Microsoft.LobServices.Sap/2007/03/Types/Rfc/"><FIELDNAME>MANDT</FIELDNAME></RFC_DB_FLD><RFC_DB_FLD xmlns="http://Microsoft.LobServices.Sap/2007/03/Types/Rfc/"><FIELDNAME>VBELN</FIELDNAME></RFC_DB_FLD></FIELDS>,@[email protected] output'"

    相关问题