Class SQLServerBulkCSVFileRecord

    • Field Detail

      • columnNames

        protected String[] columnNames
      • columnMetadata

        protected Map<Integer,​com.microsoft.sqlserver.jdbc.SQLServerBulkRecord.ColumnMetadata> columnMetadata
      • loggerPackageName

        protected String loggerPackageName
      • loggerExternal

        protected static Logger loggerExternal
    • Constructor Detail

      • SQLServerBulkCSVFileRecord

        public SQLServerBulkCSVFileRecord​(String fileToParse,
                                          String encoding,
                                          String delimiter,
                                          boolean firstLineIsColumnNames)
                                   throws SQLServerException
        Constructs a simple reader to parse data from a delimited file with the given encoding.
        Parameters:
        fileToParse - File to parse data from
        encoding - Charset encoding to use for reading the file, or NULL for the default encoding.
        delimiter - Delimiter to used to separate each column
        firstLineIsColumnNames - True if the first line of the file should be parsed as column names; false otherwise
        Throws:
        SQLServerException - If the arguments are invalid, there are any errors in reading the file, or the file is empty
      • SQLServerBulkCSVFileRecord

        public SQLServerBulkCSVFileRecord​(InputStream fileToParse,
                                          String encoding,
                                          String delimiter,
                                          boolean firstLineIsColumnNames)
                                   throws SQLServerException
        Constructs a SQLServerBulkCSVFileRecord to parse data from a delimited file with the given encoding.
        Parameters:
        fileToParse - InputStream to parse data from
        encoding - Charset encoding to use for reading the file, or NULL for the default encoding.
        delimiter - Delimiter to used to separate each column
        firstLineIsColumnNames - True if the first line of the file should be parsed as column names; false otherwise
        Throws:
        SQLServerException - If the arguments are invalid, there are any errors in reading the file, or the file is empty
      • SQLServerBulkCSVFileRecord

        public SQLServerBulkCSVFileRecord​(String fileToParse,
                                          String encoding,
                                          boolean firstLineIsColumnNames)
                                   throws SQLServerException
        Constructs a SQLServerBulkCSVFileRecord to parse data from a CSV file with the given encoding.
        Parameters:
        fileToParse - File to parse data from
        encoding - Charset encoding to use for reading the file.
        firstLineIsColumnNames - True if the first line of the file should be parsed as column names; false otherwise
        Throws:
        SQLServerException - If the arguments are invalid, there are any errors in reading the file, or the file is empty
      • SQLServerBulkCSVFileRecord

        public SQLServerBulkCSVFileRecord​(String fileToParse,
                                          boolean firstLineIsColumnNames)
                                   throws SQLServerException
        Constructs a SQLServerBulkCSVFileRecord to parse data from a CSV file with the default encoding.
        Parameters:
        fileToParse - File to parse data from
        firstLineIsColumnNames - True if the first line of the file should be parsed as column names; false otherwise
        Throws:
        SQLServerException - If the arguments are invalid, there are any errors in reading the file, or the file is empty
    • Method Detail

      • getRowData

        public Object[] getRowData()
                            throws SQLServerException
        Description copied from interface: ISQLServerBulkData
        Returns the data for the current row as an array of Objects. Each Object must match the Java language Type that is used to represent the indicated JDBC data type for the given column. For more information, see 'Understanding the JDBC Driver Data Types' for the appropriate mappings.
        Specified by:
        getRowData in interface ISQLServerBulkData
        Returns:
        The data for the row.
        Throws:
        SQLServerException - If there are any errors in obtaining the data.
      • addColumnMetadata

        public void addColumnMetadata​(int positionInSource,
                                      String name,
                                      int jdbcType,
                                      int precision,
                                      int scale,
                                      DateTimeFormatter dateTimeFormatter)
                               throws SQLServerException
        Description copied from interface: ISQLServerBulkRecord
        Adds metadata for the given column in the file.
        Specified by:
        addColumnMetadata in interface ISQLServerBulkRecord
        Parameters:
        positionInSource - Indicates which column the metadata is for. Columns start at 1.
        name - Name for the column (optional if only using column ordinal in a mapping for SQLServerBulkCopy operation)
        jdbcType - JDBC data type of the column
        precision - Precision for the column (ignored for the appropriate data types)
        scale - Scale for the column (ignored for the appropriate data types)
        dateTimeFormatter - format to parse data that is sent
        Throws:
        SQLServerException - when an error occurs
      • addColumnMetadata

        public void addColumnMetadata​(int positionInSource,
                                      String name,
                                      int jdbcType,
                                      int precision,
                                      int scale)
                               throws SQLServerException
        Description copied from interface: ISQLServerBulkRecord
        Adds metadata for the given column in the file.
        Specified by:
        addColumnMetadata in interface ISQLServerBulkRecord
        Parameters:
        positionInSource - Indicates which column the metadata is for. Columns start at 1.
        name - Name for the column (optional if only using column ordinal in a mapping for SQLServerBulkCopy operation)
        jdbcType - JDBC data type of the column
        precision - Precision for the column (ignored for the appropriate data types)
        scale - Scale for the column (ignored for the appropriate data types)
        Throws:
        SQLServerException - when an error occurs
      • setTimestampWithTimezoneFormat

        public void setTimestampWithTimezoneFormat​(String dateTimeFormat)
        Description copied from interface: ISQLServerBulkRecord
        Sets the format for reading in dates from the file.
        Specified by:
        setTimestampWithTimezoneFormat in interface ISQLServerBulkRecord
        Parameters:
        dateTimeFormat - format to parse data sent as java.sql.Types.TIMESTAMP_WITH_TIMEZONE
      • setTimeWithTimezoneFormat

        public void setTimeWithTimezoneFormat​(String timeFormat)
        Description copied from interface: ISQLServerBulkRecord
        Sets the format for reading in dates from the file.
        Specified by:
        setTimeWithTimezoneFormat in interface ISQLServerBulkRecord
        Parameters:
        timeFormat - format to parse data sent as java.sql.Types.TIME_WITH_TIMEZONE
      • getColumnName

        public String getColumnName​(int column)
        Description copied from interface: ISQLServerBulkData
        Returns the name of the given column.
        Specified by:
        getColumnName in interface ISQLServerBulkData
        Parameters:
        column - Column ordinal
        Returns:
        Name of the column
      • getColumnType

        public int getColumnType​(int column)
        Description copied from interface: ISQLServerBulkData
        Returns the JDBC data type of the given column.
        Specified by:
        getColumnType in interface ISQLServerBulkData
        Parameters:
        column - Column ordinal
        Returns:
        JDBC data type of the column
      • getPrecision

        public int getPrecision​(int column)
        Description copied from interface: ISQLServerBulkData
        Returns the precision for the given column.
        Specified by:
        getPrecision in interface ISQLServerBulkData
        Parameters:
        column - Column ordinal
        Returns:
        Precision of the column
      • getScale

        public int getScale​(int column)
        Description copied from interface: ISQLServerBulkData
        Returns the scale for the given column.
        Specified by:
        getScale in interface ISQLServerBulkData
        Parameters:
        column - Column ordinal
        Returns:
        Scale of the column
      • isAutoIncrement

        public boolean isAutoIncrement​(int column)
        Description copied from interface: ISQLServerBulkRecord
        Returns whether the column represents an identity column.
        Specified by:
        isAutoIncrement in interface ISQLServerBulkRecord
        Parameters:
        column - Column ordinal
        Returns:
        True if the column is an identity column; false otherwise.