cancel
Showing results for 
Search instead for 
Did you mean: 

Select return no result where exist result

Former Member
2,883

Hi,

I'm doing some selects in row, like in 2 threads to be more specific.

The same select in both threads, and the resultset need to be the same too (6 rows).

All works fine, but in a random point of time, the select return 0 rows, and in the next iterations return 6 rows again.

I had this in random times, sometimes in 56 minutes and others with less than 1 minute.

Here it's my select:

SELECT *
  FROM titulo_receber
 WHERE dt_manutencao > CAST('2013-06-12 16:17:44.484' AS DATETIME)

I already tried:

SELECT *
  FROM titulo_receber
 WHERE dt_manutencao > '2013-06-12 16:17:44.484'

No errors are returned, neither in database or application.

I'm running on Java JDK7, I had turn on the debug log (-vr option) in db start, in the debug log were the selects all right, without any problem.

I'm out of solutions.

-- EDIT --

This is my code for the select:

public static Table_Object verifica_tabela(int n, Tabela_Sincronizacao ts) {        
    String table_name = ts.getNm_tabela();

    Table_Object table_object = new Table_Object();
    table_object.setNm_tabela(table_name);

    Connection conn = null;
    PreparedStatement ps = null;
    ResultSet rs = null;

    try {
        conn = conectorSybase.getConnection("-1");
        Long tempo1 = System.currentTimeMillis();
        if (conn != null) {
            String sql = "";

            java.sql.Timestamp sql_dt_ultima_sincronizacao = new java.sql.Timestamp(ts.getDt_ultima_sincronizacao().getTime());

            sql = "SELECT *"
                + "  FROM titulo_receber"
                + " WHERE dt_manutencao > CAST('2013-06-12 16:17:44.484' AS DATETIME)";

            ps = conn.prepareStatement(sql);
            rs = ps.executeQuery();

            int row = 0;
            while (rs.next()) {
                ResultSetMetaData rsmd = rs.getMetaData();

                row++;

                table_object.putRow(row);

                for(int i = 1; i <= rsmd.getColumnCount(); i++){
                    String  column = rsmd.getColumnName(i);
                    Integer type   = rsmd.getColumnType(i);
                    Object  object = null;

                    DateFormat dateFormat = null;

                    //Se for ds_encrypt joga null
                    if(column.equals("ds_encrypt")){
                        object = null;
                    } else {
                        switch(rsmd.getColumnType(i)){
                            case Types.ARRAY:
                                object = String.valueOf(rs.getArray(i));
                                break;
                            case Types.BIGINT:
                                object = String.valueOf(rs.getString(i));
                                break;
                            case Types.BINARY:
                                object = String.valueOf(rs.getBinaryStream(i));
                                break;
                            case Types.BIT:
                                object = String.valueOf(rs.getByte(i));
                                break;
                            case Types.BLOB:
                                object = String.valueOf(rs.getBlob(i));
                                break;
                            case Types.BOOLEAN:
                                object = String.valueOf(rs.getBoolean(i));
                                break;
                            case Types.CHAR:
                                object = String.valueOf(rs.getString(i));
                                break;
                            case Types.CLOB:
                                object = String.valueOf(rs.getClob(i));
                                break;
                            case Types.DATALINK:
                                object = null;
                                break;
                            case Types.DATE:
                                dateFormat = new SimpleDateFormat("yyyy-MM-dd");
                                java.sql.Date data = rs.getDate(i);
                                object = data == null ? null : dateFormat.format(data);
                                break;
                            case Types.DECIMAL:
                                object = String.valueOf(rs.getString(i));
                                break;
                            case Types.DISTINCT:
                                object = null;
                                break;
                            case Types.DOUBLE:
                                object = String.valueOf(rs.getString(i));
                                break;
                            case Types.FLOAT:
                                object = String.valueOf(rs.getString(i));
                                break;
                            case Types.INTEGER:
                                object = String.valueOf(rs.getString(i));
                                break;
                            case Types.JAVA_OBJECT:
                                object = String.valueOf(rs.getObject(i));
                                break;
                            case Types.LONGNVARCHAR:
                                object = String.valueOf(rs.getString(i));
                                break;
                            case Types.LONGVARBINARY:
                                object = String.valueOf(rs.getString(i));
                                break;
                            case Types.LONGVARCHAR:
                                object = null;
                                break;
                            case Types.NCHAR:
                                object = null;
                                break;
                            case Types.NCLOB:
                                object = String.valueOf(rs.getNClob(i));
                                break;
                            case Types.NULL:
                                object = null;
                                break;
                            case Types.NUMERIC:
                                object = String.valueOf(rs.getString(i));
                                break;
                            case Types.NVARCHAR:
                                object = null;
                                break;
                            case Types.OTHER:
                                object = null;
                                break;
                            case Types.REAL:
                                object = String.valueOf(rs.getString(i));
                                break;
                            case Types.REF:
                                object = String.valueOf(rs.getRef(i));
                                break;
                            case Types.ROWID:
                                object = String.valueOf(rs.getRowId(i));
                                break;
                            case Types.SMALLINT:
                                object = String.valueOf(rs.getString(i));
                                break;
                            case Types.SQLXML:
                                object = String.valueOf(rs.getSQLXML(i));
                                break;
                            case Types.STRUCT:
                                object = null;
                                break;
                            case Types.TIME:
                                dateFormat = new SimpleDateFormat("HH:mm:ss");
                                java.sql.Time time = rs.getTime(i);
                                object = time == null ? null : dateFormat.format(time);
                                break;
                            case Types.TIMESTAMP:
                                dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                                java.sql.Timestamp timestamp = rs.getTimestamp(i);
                                object = timestamp == null ? null : dateFormat.format(timestamp);
                                break;
                            case Types.TINYINT:
                                object = String.valueOf(rs.getString(i));
                                break;
                            case Types.VARBINARY:
                                object = null;
                                break;
                            case Types.VARCHAR:
                                object = String.valueOf(rs.getString(i));
                                break;
                        }   
                    }                        
                    table_object.putRowValue(row, column, type, object);
                }
            }                
            System.out.println("Thread[" + n + "] - " + "SQL: " + sql + "\\nRows: " + row + "\\ntable_object: " + table_object.getHm_rows().size());
            Long tempo2 = System.currentTimeMillis();
        } else {
            System.out.println("Thread[" + n + "] - " + "Conexão com o Banco foi NULL!");
        }
    } catch (SQLException e) {
        System.out.println("Thread[" + n + "] - " + "[ERRO] SQLException em Tabela_SincronizacaoMB.getTabela_Sincronizacao_Consulta(): " + e.getMessage()
                            + "\\nErrorCode: " + e.getErrorCode() 
                            + "\\nSQLState: " + e.getSQLState());
        e.printStackTrace();

        table_object = null;
    } catch (Exception e) {
        System.out.println("Thread[" + n + "] - " + "[ERRO] Exception em Tabela_SincronizacaoMB.getTabela_Sincronizacaos()\\n" + e.getMessage());
        e.printStackTrace();

        table_object = null;
    } finally {
        if (ps != null) {
            try {
                ps.close();
            } catch (SQLException ex) {
                System.out.println("Thread[" + n + "] - " + "ERRO ao fechar PS: " + ex.getStackTrace());
            }
        }
        if (conn != null) {
            try {
                conn.close();
            } catch (SQLException ex) {
                System.out.println("Thread[" + n + "] - " + "ERRO ao fechar CONN: " + ex.getStackTrace());
            }
        }
        if (rs != null) {
            try {
                rs.close();
            } catch (SQLException ex) {
                System.out.println("Thread[" + n + "] - " + "ERRO ao fechar RS: " + ex.getStackTrace());
            }
        }
    }        
    return table_object;
}

[]'s William Bertan

Accepted Solutions (0)

Answers (0)