लौटा दी हैं। मैंने आईएसक्ल पर मैन्युअल रूप से निष्पादित किए गए कथन की जांच की और सभी पंक्तियां सही ढंग से लौट आईं। बयान जो JDBC पर निष्पादित हो रहा है:कोई पंक्ति डाटाबेस से लौटे - लेकिन वहाँ रिकॉर्ड मैं JDBC Sybase ड्राइवर (<code>jconn3</code>) का उपयोग कर के साथ बयान चयन को क्रियान्वित कर रहा हूँ
select * from mytable where date between ? and ?
मैं yyyy-MM-dd HH:mm:ss
रूप DateFormat जोड़ा गया है और 00:00:00 के रूप में समय मान सेट अंतिम तिथि तक के लिए तिथि और 23:59:59 शुरू करते हैं।
यह काम नहीं कर रहा। पंक्ति संख्या 1000 चाहिए, लेकिन यह 770 कभी कभी कभी कभी कभी कभी 990 564 आदि है, .. कोई किसी भी विशिष्ट पंक्ति संख्या जो हर वापस लौटा है।
उसके बाद मैं एक अतिरिक्त निष्पादन जो केवल पंक्ति संख्या देता है जोड़ा। सबसे पहले मैं select count(*) from ...
बयान तो select * from ....
और अब क्रियान्वित करने को क्रियान्वित कर रहा हूँ `* चयन से ... क्वेरी हर रिकॉर्ड की सही संख्या देता है। यह कैशिंग से संबंधित नहीं हो सकता है। और अजीब बात यह है कि, मैं उन दो निष्पादन के लिए एक ही तैयार किए गए और परिणाम वस्तु का उपयोग कर रहा हूं।
कि इस मुद्दे पर कोई विचार?
@Rulmeq, यहाँ कोड (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()){
........
}
हमें अपने कोड दिखाएं। – Goibniu
@ रूल्मेक, मैंने प्रश्न में कोड जोड़ा। – Aykut
आप अपने कोड में BeginDate और ENDDATE के अपने इन्स्टेन्शियशन (परिभाषा) शामिल हो सकते हैं। वे यहां कुंजी हैं। –