ResultSetMetaData implementation differences between JConnect drivers

There is a difference between jConnect 5 and jConnect 6 JDBC drivers in the behavior of ResultSetMetaData::getColumnLabel() and ResultSetMetaData::getColumnName():

If a client application uses getColumnName() in jConnect 5, you may need to change it to use getColumnLabel() instead. For example, let’s say that an application in EAServer 5.x retrieves a column label by calling getColumnName(), then retrieves the data using ResultSet.getString(columnLabel). Because EAServer 6.0 uses jConnect 6 by default, this application now fails, because it is trying to since EAServer 6.0 uses JConnect 6 by default.Here is a code sample to further illustrate this situation:

package test;
import java.sql.*;
public class TestJDBC {
	public static void main(String[] args) throws Exception{
//	        Class.forName("com.sybase.jdbc2.jdbc.SybDriver");
	        Class.forName("com.sybase.jdbc3.jdbc.SybDriver");
	        Connection conn = DriverManager.getConnection("jdbc:sybase:Tds:i18n280:4000/tck141db", "cts1", "cts123"); 
	        PreparedStatement ps = conn.prepareStatement("select my_name=name from sysobjects");
	        ResultSet rs = ps.executeQuery();
	        
	        System.out.println("Column One: " + rs.getMetaData().getColumnName(1));
	        System.out.println("Column One's label : " + rs.getMetaData().getColumnLabel(1));
	       
	        ps.close();
	        conn.close();	        
	}
}