internal static int CalculateUpdateCount(this SFBaseResultSet resultSet) { SFResultSetMetaData metaData = resultSet.sfResultSetMetaData; SFStatementType statementType = metaData.statementType; int updateCount = 0; switch (statementType) { case SFStatementType.INSERT: case SFStatementType.UPDATE: case SFStatementType.DELETE: case SFStatementType.MERGE: case SFStatementType.MULTI_INSERT: for (int i = 0; i < resultSet.columnCount; i++) { updateCount += resultSet.GetValue <int>(i); } break; case SFStatementType.COPY: updateCount = resultSet.GetValue <int>(3); break; case SFStatementType.SELECT: updateCount = -1; break; default: updateCount = 0; break; } return(updateCount); }
internal static int CalculateUpdateCount(this SFBaseResultSet resultSet) { SFResultSetMetaData metaData = resultSet.sfResultSetMetaData; SFStatementType statementType = metaData.statementType; long updateCount = 0; switch (statementType) { case SFStatementType.INSERT: case SFStatementType.UPDATE: case SFStatementType.DELETE: case SFStatementType.MERGE: case SFStatementType.MULTI_INSERT: resultSet.Next(); for (int i = 0; i < resultSet.columnCount; i++) { updateCount += resultSet.GetValue <long>(i); } break; case SFStatementType.COPY: resultSet.Next(); var index = resultSet.sfResultSetMetaData.getColumnIndexByName("rows_loaded"); if (index >= 0) { updateCount = resultSet.GetValue <long>(index); } break; case SFStatementType.SELECT: updateCount = -1; break; default: updateCount = 0; break; } if (updateCount > int.MaxValue) { return(-1); } return((int)updateCount); }
internal SFResultSetMetaData(QueryExecResponseData queryExecResponseData) { rowTypes = queryExecResponseData.rowType; columnCount = rowTypes.Count; statementType = findStatementTypeById(queryExecResponseData.statementTypeId); foreach (NameValueParameter parameter in queryExecResponseData.parameters) { switch (parameter.name) { case "DATE_OUTPUT_FORMAT": dateOutputFormat = parameter.value; break; case "TIME_OUTPUT_FORMAT": timeOutputFormat = parameter.value; break; } } }