Java - problema metodo non-static

 
Vista:

problema metodo non-static

Publicado por Raúl (19 intervenciones) el 05/03/2007 20:20:29
Hola tengo este codigo y en la linea (md = ResulSet.getMetaData();) me da el siguiente error:
"non static method getMetadaData() cannont be referenced from a static context" ¿Que prodría hacer para resolverlo?Este error me ocurre tambien en otra clase pero con las funciones ResulSet.absolute() y ResulSet.getObject(). Ayudaaa pleaseee !!!

public Class getColumnClass(int columnIndex){
if(colClasses == null)
{
colClasses = new ArrayList();
ResultSetMetaData md = null;
try
{
md = ResultSet.getMetaData();
int colCount = md.getColumnCount();
for (int i = 0;i<colCount; i++)
{
try
{
String className = md.getColumnClassName(i + 1);
Class c = Class.forName(className);
}catch(ClassNotFoundException e){}
}//FIN del for()
}catch(SQLException e){}
}
Class c = (Class)colClasses.get(columnIndex);
return c;
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:problema metodo non-static

Publicado por Gilberto (378 intervenciones) el 07/03/2007 06:13:54
El código que publicaste es una sola función?, bueno, pues el problema es que al parecer estás invocando la función getMetaData() de la clase ResultSet como si fuera un método estático de la clase, pero no lo es, por lo que necesitas un objeto o instancia de ResultSet para invocarlo. Consulta la documentación en
http://java.sun.com/j2se/1.4.2/docs/api/java/sql/ResultSet.html#getMetaData()
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:problema metodo non-static

Publicado por Raúl (19 intervenciones) el 07/03/2007 12:11:18
Son muchas mas funciones pero el objeto de resulset lo creo fuera de esa funcion:

Statement s = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, com.mysql.jdbc.ResultSet.CONCUR_READ_ONLY);
ResultSet rs = s.executeQuery("SELECT * FROM area");

y luego si en vez de ResultSet lo invoco con rs tal como me has dicho entonces no me reconoce la variable rs en esta funcion¿como lo hago para que me reconozca rs en cualquier funcion?

rs.last(),rs.getRow(),rs.getMetaData() --> no mereconoce la variable rs y necesito trabajar sobre el mismo objeto.

private int getRowCount(){
if(this.rowCount == -1)
{
try
{

rs.last();
this.rowCount = rs.getRow();
}catch(SQLException e)
{
String errMsg = "Error scrolling to latest row.";
}
}
}
private Class getColumnClass(int columnIndex){
if(colClasses == null)
{
colClasses = new ArrayList();
ResultSetMetaData md = null;
try
{
md = rs.getMetaData();
int colCount = md.getColumnCount();
for (int i = 0;i<colCount; i++)
{
try
{
String className = md.getColumnClassName(i + 1);
Class c = Class.forName(className);
}catch(ClassNotFoundException e){}
}//FIN del for()
}catch(SQLException e){}
}
Class c = (Class)colClasses.get(columnIndex);
return c;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:problema metodo non-static

Publicado por Gilberto (378 intervenciones) el 08/03/2007 02:45:32
Es una clase donde tienes estas funciones? Solo declara tu variable rs como variable de clase, y cualquier función que la use la reconocerá

class miClase {
....// declaración de variables de la clase
ResultSet rs; // Donde inicializas la variable? en otra función dentro de esta clase?
...// otras variables

public funcionX() {
...
rs =s.executeQuery("select * from area"); // es así como inicializas la variable?
...
}

private Class getColumnClass(int columnIndex){
}
...
md = rs.getMetaData();
...
};

si así está estructurado tu código, debe funcionar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar