PDA

View Full Version : مبتدی: sql server در جاوا و resultset



2java2
جمعه 15 شهریور 1392, 14:56 عصر
سلام دوستان من تازه جاوا رو شروع کردم
تو این کد می خواستم با پایگاه داده sql server ارتباط برقرار کنم و اطلاعاتش رو توی جدول نمایش بدم
اما احساس می کنم تو قسمت resultset مشکل داره لطفا کمکم کنید خیلی سعی کردم نفهمیدم مشکل از چیه
اروری هم که می ده اینه

The requested operation is not supported on forward only result sets

اینم کد فقط خیلی از کدهار و کامنت کردم که بفهمم مشکل دقیقا از کجاست با این کار فهمیدم از قسمت rs.last();هست


private void LoadbtActionPerformed(java.awt.event.ActionEvent evt) {

try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
String url = "jdbc:sqlserver://GOOD_THINK\\MYDATABASE;user=sa;password=123;databa se=student2;integratedSecurity=true;";
Connection con = DriverManager.getConnection(url);
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("Select * from Person");

// rs.last();
// int rc = rs.getRow();
// rs.beforeFirst();
//
// int cc =5;
//
// String[] header ={"ID","FirstName","LastName","Phone","Adress"};
// String[][] data = new String[rc][cc];
//
// int i = 0;
// while(rs.next()){
// data[i][0] = rs.getString(1);
// data[i][0] = rs.getString(2);
// data[i][0] = rs.getString(3);
// data[i][0] = rs.getString(4);
// data[i][0] = rs.getString(5);
// i++;
// }
//
// TableStudent = new JTable(data,header);
// jScrollPane1.setViewportView(TableStudent);
rs.close();
st.close();
con.close();
} catch (Exception e) {
System.err.print(e.getMessage());
}


}

2java2
چهارشنبه 20 شهریور 1392, 17:18 عصر
سلام دوستان کسی نمی دونه مشکل از چیه
من یه سرچی زدم دیدم که مشکل از jdbc هست و این درایور برای sql server تو resultset مشکل داره و باید از این درایور استفاده کرد jtds من الان این رو نصب کردم نمی تونم وصل شم این ارور رو می ده
Network error IOException: Connection refused: connectnull
در ضمن
با jdbc وصل شدم قبل از این و دیدم متد های .last() , .first و ... کار نمی کنه و اون ارور رو میده فقط متد .next() کار می کنه
لطفا اگر کسی می دونه کمک کنه خیلی گیر کردم تو این

cups_of_java
چهارشنبه 20 شهریور 1392, 21:47 عصر
دوست عزیز نمی تونی از last استفاده کنی چون resultset شما Forward Only هست تو حالت پیش فرض (یعنی فقط تک تک رکورد ها رو می تونی رو به جلو بری)
اگه میخوای توی resultset یهو بپری آخرش باید وقتی statement رو میسازی تنظیم مناسبش رو ست کنی:

Statement stmt = con.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE
);

اکثر درایور ها اینا رو ساپورت می کنن به درایورت ربطی نداره

2java2
یک شنبه 24 شهریور 1392, 02:37 صبح
دوست عزیز نمی تونی از last استفاده کنی چون resultset شما Forward Only هست تو حالت پیش فرض (یعنی فقط تک تک رکورد ها رو می تونی رو به جلو بری)
اگه میخوای توی resultset یهو بپری آخرش باید وقتی statement رو میسازی تنظیم مناسبش رو ست کنی:

Statement stmt = con.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE
);

اکثر درایور ها اینا رو ساپورت می کنن به درایورت ربطی نداره

ممنونم ازت cups_of_java (http://barnamenevis.org/member.php?67212-cups_of_java) زحمت کشیدی، درست شد .
پروژه ی آماده ای در این زمینه نیست که ببینم کلا جزئیات رو یاد بگیرم
منظورم اینه که آموزش خاصی نیست یا اگه هست می تونی معرفی کنی بهم در مورد windows application ها
کلا می خوام بدونم اگر مشکلی اینچنینی واسم پیش بیاد باید چی کار کنم که زودتر به جواب برسم
آیا باید از داکیومنت استفاده می کردم !!؟ داکیومنت جاوا رو دانلود کردم اما مثال نداره توش !!! بدون مثال که هیچی اصلا
یا کلا سایت خاصی که داکیومنت قوی داشته باشه!؟؟
ممنون می شم اگر راهنماییم کنید. می خوام اگر به چنین مشکلاتی رسیدم با کمی جستجو حلش کنم سر این خیلی گیر کرده بودم!!
مرسی

cups_of_java
یک شنبه 24 شهریور 1392, 22:25 عصر
کلا می خوام بدونم اگر مشکلی اینچنینی واسم پیش بیاد باید چی کار کنم که زودتر به جواب برسم
متن پیام خطات رو توی گوگل بگرد مثلن:
+ JAVA The requested operation is not supported on forward only result sets


آیا باید از داکیومنت استفاده می کردم !!؟
آره، اگه Javadoc کلاسهای مربوط به Statement یا ResultSet رو میدیدی، توی اونا از نحوه تنظیماتش باخبر میشدی.


یا کلا سایت خاصی که داکیومنت قوی داشته باشه!؟؟
گوگل!!!!


ممنون می شم اگر راهنماییم کنید. می خوام اگر به چنین مشکلاتی رسیدم با کمی جستجو حلش کنم سر این خیلی گیر کرده بودم!!
انقدر بگرد تا تکنیک گشتن و پیدا کردن رو یاد بگیری!