Why ResultSet getDate() method returns null when querying .csv file?
843859Dec 9 2009 — edited Dec 14 2009Here is the full code:
import java.sql.*;
import java.sql.Types;
import java.sql.Date;
import myjava.support.CachedRowSetMaker;
import javax.sql.rowset.CachedRowSet;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
class jdbc2{
final private String s1="SELECT top 10 [DATE], [ADJ CLOSE] FROM [vwo-1.csv]";
private ResultSet result=null;
private Connection conn=null;
public static void main(String[] args) throws SQLException{
jdbc2 db=new jdbc2();
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
db.conn = DriverManager.getConnection("jdbc:odbc:STOCK_DATA");
PreparedStatement sql=db.conn.prepareStatement(db.s1);
db.result=sql.executeQuery();
// check column names and types using the ResultSetMetaData object.
ResultSetMetaData metaData = db.result.getMetaData();
System.out.println("Table Name : " + metaData.getTableName(2));
System.out.println("Field\t\tDataType");
for (int i = 0; i < metaData.getColumnCount(); i++) {
System.out.print(metaData.getColumnName(i + 1) + "\t");
System.out.println(metaData.getColumnTypeName(i+1));
}
System.out.print(metaData.getColumnName(1) + "\t"+metaData.getColumnName(2)+"\n");
while (db.result.next()){
System.out.print(db.result.getDate("DATE", Calendar.getInstance()));
System.out.format("\t%,.2f\n", db.result.getFloat("Adj Close"));
}
}
catch (Exception e) {
System.out.println("Error: " + e.getMessage());
}
finally {
db.result.close();
db.conn.close();
}
}
}
Everything works well, until getting to the block
while (db.result.next()){
System.out.print(db.result.getDate("DATE", Calendar.getInstance()));
System.out.format("\t%,.2f\n", db.result.getFloat("Adj Close"));
}
The getDate("DATE", Calendar.getInstance())); always returns null, instead of the date value in the vwo-1.csv.
Even though I change it to
java.sql.Date d=db.result.getDate("DATE") and convert to String using .toString(), I still gets nulls. The dollar amount in "Adj Close" field is fine, no problem.
The .csv fils is downloaded from YahooFinace.
Can anyone review the code and shed some light as to what I did wrong?
Thanks alot.