public static int ResultsFromCursor(IServerCursor cursor, StringBuilder results) { DAE.Schema.IRowType rowType = ((DAE.Schema.TableType)cursor.Plan.DataType).RowType; ResultColumn[] resultColumns = BuildResultColumns(rowType); int rowCount; try { using (DAE.Runtime.Data.Row row = new DAE.Runtime.Data.Row(cursor.Plan.Process.ValueManager, rowType)) { while (cursor.Next()) { cursor.Select(row); ReadRow(row, resultColumns); } } } finally { // Even if something fails (or aborts) build what we can rowCount = BuildResults(resultColumns, results); } return(rowCount); }
private static ResultColumn[] BuildResultColumns(DAE.Schema.IRowType rowType) { ResultColumn[] result = new ResultColumn[rowType.Columns.Count]; for (int i = 0; i < rowType.Columns.Count; i++) { result[i] = new ResultColumn(rowType.Columns[i].Name); } return(result); }