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;
                }
            }
        }