Problemas com SQL Server 2000

Oi pessoal sou novo aki e esta é minha primeira postagem no forum.
Seguinte, estou me conectando com um banco sqlserver 2000 via odbc, com o driver jdbc-odbc bridge.
Beleza, eu me conecto de boa. Ai eu chamo uma funcao Select, que vai fazer a consulta, passando a query e os argumentos e me retorna um ResultSet. E estou usando uma PreparedStatement.

Código:

public ResultSet Select(String sql,String maquina){

   try {
   PreparedStatement ps = conn.prepareStatement(sql);
   ps.setString(1,maquina);
   ps.setString(2,"A");
    
   ResultSet rs = ps.executeQuery();        
   return rs; }
    catch(SQLException e) {
        System.out.println(e.getMessage());
        return null;
    }
    
}

Logo depois eu chamo a funcao Mostra Dados. Este codigo é bem comum de ser visto aqui nesse forum. Ele pega dados de um ResultSet, joga em
dois Vetores, um de linha e outro de coluna e depois cria a JTable.

[size=18][color=red]Meu problema é: Quando eu chamo a funcao getNextRow, dentro dela eu pego o tipo do dado de cada coluna e dou um GetString, GetLong,etc (conforme for o tipo). Mas ele só tá retornando que o tipo é int(-8). E com isso, não tá preenchendo o vetor corretamente. E minha consulta tá retornando records porque o moreRecords é True. Será que é algo com o SQL Server 2000?

Obrigado.[/color][/size]

private void MostraDados(){

try{
ResultSet rs =acesso.Select(arquivo.getsql(0),arquivo.getmaquina());

boolean moreRecords = rs.next();

if ( ! moreRecords ) {
JOptionPane.showMessageDialog( null,
“ResultSet contained no records”, “Erro”, JOptionPane.ERROR_MESSAGE );
return;
}

Vector colunas = new Vector();
Vector linhas = new Vector();

// pega nomes das colunas
ResultSetMetaData rsmd = rs.getMetaData();

for ( int i = 1; i <= rsmd.getColumnCount(); ++i )
colunas.addElement( rsmd.getColumnName( i ) );

// pega linha (dado)
do {
linhas.addElement( getNextRow( rs, rsmd ) );
} while ( rs.next() );

// Mostra tabela com resultados do ResultSet
JTable tabela = new JTable(linhas,colunas);
Container c = getContentPane();
c.add( tabela, BorderLayout.SOUTH );
c.validate();

}
catch ( SQLException sqlex ) {sqlex.printStackTrace();}
}

private Vector getNextRow( ResultSet rs, ResultSetMetaData rsmd ) {

try
{
Vector currentRow = new Vector();

for ( int i = 1; i <= rsmd.getColumnCount(); i++ )
switch( rsmd.getColumnType( i ) ) {
case Types.CHAR:
currentRow.addElement( rs.getString( i ) );
break;
case Types.INTEGER:
currentRow.addElement(new Long( rs.getLong( i ) ) );
break;
}
return currentRow; }
catch(SQLException e){
System.out.println(e.getMessage());
return null; }

}