[ 
https://issues.apache.org/jira/browse/CSV-138?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Alan Stewart updated CSV-138:
-----------------------------
    Description: 
WIth SQLServer's 2012 jdbc driver 4.0, when I call CSVPrinter#printRecords with 
a java.sql.ResultSet, the first row is not printed. It appears that the line
{code}
final int columnCount = resultSet.getMetaData().getColumnCount();
{code} 
positions the cursor on the first row and then when
{code}
 while (resultSet.next()) { ...
{code}
is called, the 2nd row onwards is what is getting outputted.

As a workaround, I used :
{code}
do {
    final int columnCount = rs.getMetaData().getColumnCount();
    for (int i = 1; i <= columnCount; i++) {
        csvPrinter.print(rs.getString(i));
    }
    csvPrinter.println();
} while (rs.next());
{code}


  was:
WIth SQLServer's 2012 jdbc driver 4.0, when I call CSVPrinter#printRecords with 
a java.sql.ResultSet, the first row is not printed. It appears that the line
{code}
final int columnCount = resultSet.getMetaData().getColumnCount();
{code} 
positions the cursor on the first row and then when
{code}
 while (resultSet.next()) { ...
{code}
is called, the 2nd row onwards is what is getting outputted.

As a workaround, I used :
{code}
                   do {
                        final int columnCount = 
rs.getMetaData().getColumnCount();
                        for (int i = 1; i <= columnCount; i++) {
                            csvPrinter.print(rs.getString(i));
                        }
                        csvPrinter.println();
                    } while (rs.next());
{code}



> CSVPrinter.printRecords(ResultSet) skips first row with SQLServer
> -----------------------------------------------------------------
>
>                 Key: CSV-138
>                 URL: https://issues.apache.org/jira/browse/CSV-138
>             Project: Commons CSV
>          Issue Type: Bug
>          Components: Printer
>    Affects Versions: 1.0
>            Reporter: Alan Stewart
>
> WIth SQLServer's 2012 jdbc driver 4.0, when I call CSVPrinter#printRecords 
> with a java.sql.ResultSet, the first row is not printed. It appears that the 
> line
> {code}
> final int columnCount = resultSet.getMetaData().getColumnCount();
> {code} 
> positions the cursor on the first row and then when
> {code}
>  while (resultSet.next()) { ...
> {code}
> is called, the 2nd row onwards is what is getting outputted.
> As a workaround, I used :
> {code}
> do {
>     final int columnCount = rs.getMetaData().getColumnCount();
>     for (int i = 1; i <= columnCount; i++) {
>         csvPrinter.print(rs.getString(i));
>     }
>     csvPrinter.println();
> } while (rs.next());
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to