Grazie per la tua risposta.
Sbattendo la testa e facendo miriade di test, ho scoperto che il problema è nella qry.
Se eseguo la qry su una tabella ,senza join il resultset per query senza righe mi ritorna 0, mentre facendo una qry su piu tabelle come questa per capirci
str="select in_ti_descr,in_scadenza,mc_descr from off_interventi,off_macchinari "+
"where in_scadenza >=to_date('25/09/2013','dd/mm/yyyy') "+
"and in_tipo='0' "+
"and in_data is null "+
"and mc_dt_id=9 "+
"and mc_codice=in_mc_id "+
"order by in_scadenza desc "
anche se no ci sono rows mi restituisce 1 .
Posto la classe per la connessionem da come si vede uso odbc per connettermi al db
codice:
public class Conn {
private String utente;
private String pass;
private String indir;
private ResultSet rst;
private ResultSetMetaData rstM;
private Statement cmd;
private Connection con;
private int nrorows;
String error;
String PATH =System.getenv("USERPROFILE")+"\\Manutenzione.log" ;
PrintWriter print_line ;
/*costruttore di defoult
*
*/
public Conn(String ut,String pwd,String ind)
{
this.utente=ut;
this.pass=pwd;
this.indir=ind;
try{
// scrivo sil log del programma eventuali errori di connessione
FileWriter write = new FileWriter(PATH);
print_line = new PrintWriter(write);
print_line.printf("denis");
String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
Class.forName(driver);
String url = "jdbc:odbc:" + ind;
con = DriverManager.getConnection(url, utente, pass);
con.setAutoCommit(false);
}
catch (SQLException e){
print_line.printf(e.getMessage());
e.printStackTrace();
}
catch (ClassNotFoundException e){
print_line.printf(e.getMessage());
e.printStackTrace();
}
catch(IOException e){print_line.printf(e.getMessage());}
}
public void conn_On( String qry)
{
try{
int ret=0;
cmd = con.createStatement(rst.TYPE_SCROLL_INSENSITIVE, rst.CONCUR_READ_ONLY);
rst = cmd.executeQuery(qry);
rstM= rst.getMetaData();
while (rst.next())
{ ret = rst.getRow();}
this.nrorows=ret;
rst.beforeFirst();
//rst.first();
}
catch (SQLException e){
e.printStackTrace();
}
}