Ref.: Testando NULL

Como faço para testar se o valor de rs.getString(“Fase”) é null?

processo.setDescricaoFase(rs.getString("Fase"));

setDescricaoFase não pode receber NULL

if(rs.getString("Fase")==null){
processo.setDescricaoFase ("");
}else{
 processo.setDescricaoFase(rs.getString("Fase"));  
}

Só podemos pegar o get uma vez, depois não tem mais valor.

Como se chama aquele Iif() no java?

Alguma coisa tipo (; :slight_smile:

Não me lembro.

Operator

<condition> ? <result_iftrue> : <result_iffalse>

Valeu!

Tem o método wasNull do ResultSet. Ele checa se o get imediatamente anterior veio nulo. É útil em bases que usam zero e null como o mesmo valor.

OK!

Estou testando

            String fase;
            fase = rs.getString(&quot;Fase&quot;);
            if (rs.wasNull()) {
                processo.setDescricaoFase(&quot;&quot;);
            } else {
                processo.setDescricaoFase(fase);
            }

Quando faz isso
fase = rs.getString("Fase");

Recebo erro ----------> java.sql.SQLException: No data found

Passa o código do método todo.

Tá aí!

private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    try {   
        //DBF ============================
        //Registrar o Driver JDBC do banco de dados, neste caso estou usando o DBF   
        String conexao = "sun.jdbc.odbc.JdbcOdbcDriver";
        //Carrega o Driver a ser utilizado   
        Class.forName(conexao).newInstance();   
        //Indica o caminho do arquivo   
        String caminho = "C:\Sistemas\Java\DeskTop\TMSystem\orthers\BackupBancoDados\DBF´s";   
        // String de conexao para o DBF   
        //String url = "jdbc:odbc:;DRIVER=Microsoft Access Driver (*.mdb);DBQ=" + caminho;
        String url = "jdbc:odbc:Driver={Driver do Microsoft dBase (*.dbf)};DBQ=" + caminho;
        //Faz um SELECT no arquivo   
        String sql = "SELECT * FROM PA";   
        //OBS.: Não coloque a extensão do arquivo, deixe sem .DBF   
        //Abre uma conexão com o arquivo   
        Connection conn = DriverManager.getConnection(url);   
        // recuperar a classe Stamtemant a partir da conexao criada   
        Statement stmt = conn.createStatement();   
        //Retorna o resultado da Query   
        ResultSet rs = stmt.executeQuery(sql);   
        //Pegar o valor da(s) coluna(a) já no tipo desejado String, int, Date, etc...

//        //DBF ===================================
//        //Registrar o Driver JDBC do banco de dados, neste caso estou usando o DBF   
//        String conexao = "com.hxtt.sql.dbf.DBFDriver";   
//        //Carrega o Driver a ser utilizado   
//        Class.forName(conexao).newInstance();   
//        //Indica o caminho do arquivo   
//        String caminho = "C:\Sistemas\Java\DeskTop\TMSystem\orthers\BackupBancoDados\DBF´s";   
//        // String de conexao para o DBF   
//        String url = "jdbc:DBF:/" + caminho;   
//        //Faz um SELECT no arquivo   
//        String sql = "SELECT * FROM PA";   
//        //OBS.: Não coloque a extensão do arquivo, deixe sem .DBF   
//        //Abre uma conexão com o arquivo   
//        Connection conn = DriverManager.getConnection(url);   
//        // recuperar a classe Stamtemant a partir da conexao criada   
//        Statement stmt = conn.createStatement();   
//        //Retorna o resultado da Query   
//        ResultSet rs = stmt.executeQuery(sql);   
//        //Pegar o valor da(s) coluna(a) já no tipo desejado String, int, Date, etc...

        //
//        Integer numero = new Integer("0");
//        Short ano = new Short("0");
//        String id = new String("");
//        Float area_ha = new Float("0.0");
//        String fase = new String("");
//        String nome = new String("");
//        String ult_evento = new String("");
//        Short codigoevento = new Short("0");
//        String descricaoevento = new String("");
//        GregorianCalendar dataevento = new GregorianCalendar(2008, 0, 1);
//        String subs = new String("");
//        String uso = new String("");
//        String uf = new String("");
//        GregorianCalendar datainclusaoregistro = new GregorianCalendar(2008, 9, 6);
//        GregorianCalendar dataalteracaoregistro = new GregorianCalendar(2008, 9, 6);
//        Short matriculausuario = new Short("1");

                
        String ultimoEvento = new String("");
        Processos processo = new Processos();
        String ID = new String("");
        while (rs.next()) {
            ID = rs.getString("ID");
            if (ID.equals("{0AA8DC86-15B8-4EED-A684-FF2A7AC4A3E7}")) {
                processo.setNumeroProcesso(rs.getInt("Numero"));
                processo.setAnoProcesso(rs.getShort("Ano"));
//                processo.setID_RegistroProcesso(rs.getString("ID"));
                processo.setID_RegistroProcesso(ID);
                processo.setArea_HA(rs.getFloat("Area_HA"));
                
//                processo.setDescricaoFase(rs.getString("Fase").replace("¦", "Ç").replace("+", "Ã").replace("┴", "Á").replace("╩", "Ê").replace("╔", "É"));
//                processo.setRequerente(rs.getString("Nome").replace("¦", "Ç").replace("+", "Ã").replace("┴", "Á").replace("╩", "Ê").replace("╔", "É"));
//                ultimoEvento = rs.getString("Ult_Evento").replace("¦", "Ç").replace("+", "Ã").replace("┴", "Á").replace("╩", "Ê").replace("╔", "É");
                
                processo.setDescricaoFase(rs.getString("Fase"));
                processo.setRequerente(rs.getString("Nome"));
                ultimoEvento = rs.getString("Ult_Evento");
                
                processo.setCodigoEvento(new Short(ultimoEvento.substring(0, ultimoEvento.indexOf(" - "))));
                processo.setDescricaoEvento(ultimoEvento.substring(ultimoEvento.indexOf(" - ") + 3, ultimoEvento.length() - 14));
                processo.setDataEvento(new GregorianCalendar(Integer.parseInt(ultimoEvento.substring(ultimoEvento.length() - 10, ultimoEvento.length()).substring(6, 10)),
                                                             Integer.parseInt(ultimoEvento.substring(ultimoEvento.length() - 10, ultimoEvento.length()).substring(3, 5)) - 1,
                                                             Integer.parseInt(ultimoEvento.substring(ultimoEvento.length() - 10, ultimoEvento.length()).substring(0, 2))));
                processo.setSubstancia(rs.getString("Subs"));
                processo.setAplicacao(rs.getString("Uso"));
                processo.setUF(rs.getString("UF"));
    //            processo.setDataInclusaoRegistro(new GregorianCalendar().setTime(new Date()));
    //            processo.setDataAlteracaoRegistro(new GregorianCalendar());
                processo.setDataInclusaoRegistro(new GregorianCalendar(2008, 9, 6));
                processo.setDataAlteracaoRegistro(new GregorianCalendar(2008, 9, 6));
                processo.setMatriculaUsuario(new Short("1"));
                
                
                System.out.println(processo.getID_RegistroProcesso() + " - " + processo.getDescricaoFase() + " - " + processo.getRequerente() + " - " + processo.getDescricaoEvento() + " - ");

                ManutencaoTabela.IncluiRegistro(processo, Conexao);
            }
        }   
        
        rs.close();   
        stmt.close();   
        conn.close();   
    } catch (Exception e) {   
        System.out.println("Oops-> " + e);   
    }   
}                                        

[quote=prsantos] String fase;
fase = rs.getString("Fase");
if (rs.wasNull()) {
processo.setDescricaoFase("");
} else {
processo.setDescricaoFase(fase);
}

Quando faz isso
fase = rs.getString("Fase");

Recebo erro ----------> java.sql.SQLException: No data found
[/quote]

Desculpa minha ignorância, mas Exception de NDF não é falta de dados no Banco de Dados? Ou seja, ele não está nulo, só não tem dados dentro dele.

Andre vá entender!

Pois é issi o que acontece.

Não sei se é o correto a ser feito, mas resolve rs.

String fase = "";
				try {
					fase = rs.getString("fase");
				} catch (SQLException sqlex) {
					sqlex.printStackTrace();
				}
			}
			processo.setDescricaoFase(fase);

[]'s

Puta-que-paríu!

Desculpe-me o desabafo, pois só falando assim.

Sabem o que estava acontecendo!?

Não irão imaginar. Quando estava debugando no Netbeans, colocava no Observador isso “rs.getString(“fase”)”, contudo, já havia pego o resultado uma vez, quando tentanva apartir da aplicação, dizia que não tinha encontrado dado.

Pois é meus camaradas, só gostando muito mesmo da PROFISSÃO.

Valeu pela força.

Agora voltarei ao outro tópico de conversão de Charset, está esá me tirando a paciência.

[quote=prsantos]Puta-que-paríu!

Desculpe-me o desabafo, pois só falando assim.

Sabem o que estava acontecendo!?

Não irão imaginar. Quando estava debugando no Netbeans, colocava no Observador isso “rs.getString(“fase”)”, contudo, já havia pego o resultado uma vez, quando tentanva apartir da aplicação, dizia que não tinha encontrado dado.

Pois é meus camaradas, só gostando muito mesmo da PROFISSÃO.

Valeu pela força.

Agora voltarei ao outro tópico de conversão de Charset, está esá me tirando a paciência.

[/quote]

kkkkkkkkkkkkkkkk ossos do oficio …

[]'s