Следующий запрос объединяет результаты столбцов для каждой строки. Мне нужно разделить столбцы с каким-либо разделителем или уникальным результатом строки [i].
Запрос
"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>,@fields=@flds 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();
}
ОБНОВЛЕНИЕ
Я могу разделить столбцы, следуя индексам, возвращаемым
DataTable dtFields = (DataTable)cmd.Parameters["@flds"].Value;
(обновленный запрос)
Процесс настолько сложный и отбрасывает исключения, потому что индексы становятся ненадежными, когда последние столбцы в запросе возвращают пустые результаты (также обнаруживается неверный индикатор длины). Я работал над большей частью, но это так плохо. Есть ли лучший поддерживаемый метод для запроса SAP с .NET?