Sto eseguendo l'istruzione select con jdbc sybase driver (jconn3
). Ho controllato la dichiarazione con esecuzione manuale su isql e tutte le righe sono state restituite correttamente. La dichiarazione che è in esecuzione su JDBC:Nessuna riga restituita da db - ma ci sono record da restituire
select * from mytable where date between ? and ?
ho aggiunto il dateformat come yyyy-MM-dd HH:mm:ss
e impostare il valore del tempo, come per la data 00:00:00 e 23:59:59 per la data di fine cominciare.
Non funziona. Il conteggio delle righe deve essere 1000 ma a volte è 770, a volte 990, a volte 564 ecc. Non esiste alcun conteggio di righe specifico che viene restituito ogni volta.
Successivamente ho aggiunto un'esecuzione extra che restituisce solo il conteggio delle righe. Per prima cosa eseguo l'istruzione select count(*) from ...
, quindi eseguo select * from ....
e ora "seleziona * da ... query restituisce il numero corretto di record ogni volta. Questo non può essere correlato con la memorizzazione nella cache. E la cosa strana è che sto usando gli stessi oggetti di preparazione e risultati per queste due esecuzioni.
Qualche idea su questo problema?
@Rulmeq, ecco il codice (Aggiunto il 2012-03-29)
ResultSet rs = null;
PreparedStatement ps = null;
ps = myConn.getConnection().prepareStatement("select count(*) from myTable where date between ? and ?");
ps.setDate(1, new java.sql.Date(beginDate.getTime())); // format : yyyy-MM-dd
ps.setDate(2, new java.sql.Date(endDate.getTime())); // format : yyyy-MM-dd
rs = ps.executeQuery();
rs.next();
// some logs here
ps = myConn.getConnection().prepareStatement("select * from myTable where date between ? and ?");
ps.setTimestamp(1, new java.sql.Timestamp(beginDate.getTime())); // format : yyyy-MM-dd hh:mm:ss
ps.setTimestamp(2, new java.sql.Timestamp(endDate.getTime())); // format : yyyy-MM-dd hh:mm:ss
rs = ps.executeQuery();
while(rs.next()){
........
}
Mostraci il tuo codice. – Goibniu
@Rulmeq, ho aggiunto il codice in questione. – Aykut
Puoi includere la tua istanziazione (definizione) di beginDate e endDate nel tuo codice. Sembrano essere la chiave qui. –