I have a java program which was working fine earlier is giving strange error now.I am not sure of the reason. The flow is such that table name is passed to this function and column names are fetched from other function. Then sql is formed and run to generate the data in HTML table. This is one function from whole java program. java version used is 1.6(can't upgrade to 1.7 as 1.6 is the standard used in all projects). As i checked on google, if you fetch same column multiple times from result set then this error comes but in my case i am fetching the column only once.
public static String GetData(String TableName) throws IOException, SQLException
{
Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" );
c = DriverManager.getConnection( "jdbc:odbc:dbname","username","password" );
Statement stmnt = c.createStatement();
try
{
String colname= GetColName(stmnt,TableName);
String colarray[] = colname.split(",");
htmlheader+="<table border=\"1\">";
htmlheader+="<caption><b>"+TableName +"</b></caption>";
htmlheader+="<tr>";
for (int n=0; n < colarray.length ; n++)
{
htmlheader+="<th>"+colarray[n]+"</th>";
}
htmlheader+="</tr>";
String sqlqry= "Select "+colname + " from "+TableName +";" ;
ResultSet result = stmnt.executeQuery(sqlqry);
while (result.next() )
{ htmlheader+="<tr>";
for (int n=0; n < colarray.length ; n++)
{
htmlheader+="<td>"+result.getString(colarray[n])+"</td>";**//Exception is coming in this line**
}
htmlheader+="</tr>";
}
htmlheader+="</table>";
}
catch( Exception e )
{
e.printStackTrace();
}
}
Error is
java.sql.SQLException: No data found
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7138)
at sun.jdbc.odbc.JdbcOdbc.SQLGetDataString(JdbcOdbc.java:3907)
at sun.jdbc.odbc.JdbcOdbcResultSet.getDataString(JdbcOdbcResultSet.java:5698)
at sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:354)
at sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:411)
Please suggest.
Exception is coming on this line
htmlheader+="<td>"+result.getString(colarray[n])+"</td>"