primary key المدخل من قبل المستخدم كيفية التآكد من صحته
انا فقط سويت بحث سريع تبين لي اني احتاج اني اضع شي بين القوسين بس ما فهمت ماذا يقصد به connection.createStatement();
استنتجت هذا الشي من الخطأ الذي ظهرلي Result set type is TYPE_FORWARD_ONLY
اشكرك اخوي على تفاعلك الرائع المشكلة ذهبت بعد ان اضفت هذا السطر ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY بين القوسين في انشاء الجملة ولكن ما معناه لم افهمة صراحة.
public int getDataLength() throws SQLException {
Statement stmnt = connection.createStatement();
ResultSet rs = stmnt.executeQuery("SELECT * FROM users");
int size = 0;
if (rs != null) {
rs.beforeFirst();
rs.last();
size = rs.getRow();
}
System.out.println(size);
return size;
}استخدم الداله دى لو مش مظبوطه معاك
بس اقبى غير اسم الجدول مكان users لاسم الجدول بتاعك
انا شغاله معايا بدون هذه المتغيرات
تقريبا علشان انت شغال Oracle
لان انا شغال MySQL
createStatement(ResultSetType , ResultSetConcurency);
ResultSetType
عباره عن ثلاث انواع
TYPE_FORWARD_ONLY يعنى جلب البيانات من قاعده البيانات يكون دائما للامام فقط وهو عن طريق استخدام الداله next فقط وهذه القيمه الافتراضيه للـ ResultSetType
TYPE_SCROLL_INSENSITIVE يعنى ان جلب البيانات من قاعده البيانات يكون دائرى من اى مكان باستخدام احدى الدوال التى هاذكرها بعد ذلك
لكن يكون غير حساس لاى تغيرات تحدث على قاعده البيانات فى حاله جلب البيانات
( يعنى لو عمل Select للبيانات فقد تم وضعها فى الذاكره , اذا قام احد المستخدم بالتعديل عليها فلم يتم اخد ذلك فى الاعتبار )
TYPE_SCROLL_SENSITIVE نفس السابقه لكنه يكون حساس لاى تعديلات تحدث على قاعده البيانات
الداول التى ممكن تستخدمها فى حاله الـجلب الدائرى
and
وايضا مممكن تستخدم الدوال العاديه
ResultSetConcurency
عباره عن نوعين
CONCUR_READ_ONLY هذا النوع يجعل قاعده الـ ResultSet غير قابله للتعديل يعنى لو فيه تعديلات لا يقوم بتطبيقها على قاعده البيانات ( للقراءه فقط )
CONCUR_UPDATABLE هذا النوع يجعل قاعده الـ ResultSet قابله للتعديل يعنى لو فيه تعديلات يقوم بتطبيقها على قاعده البيانات ( للقراءه والكتابه )
تم تعديل هذه المشاركة بواسطة Mahmoud Kelany في 7 أغسطس 2011 في 01:00
السلام عليكم ورحمة الله وبركاته
الى فهمته من موضوع أنك عايز تدخل البريمرى كاى بنفسك وتتأكد هل هو موجود قبل كدا ولا لأ
أ
فلنفرض أنك من محل مشتريات وقمت بتوزيع كوبونات للخصم ( كمثال ) وكل كيبون ليه كود مثل ده as56 مثلا
وعايز تتأكد أن الكيبون ده محدش أستعمله قبل كدا
ويعرضلك كمان أسم الى أشترى بالرقم ده
أنا عملت الموضوع على طلاب رقم الطالب وأسم الطالب
وعملت فورم تسجيل عادى
وعند وضع رقم الكود للطالب اذا وجد فى قاعدة البيانات الرقم يقوم بعرض الأسم
وبكدا هينبه المستخدم لوجود الأكود وأسم مالك الكود ومن الممكن أن تقوم بتعطيل زر الأضافة عند وجود الرقم مسبقا
أنت وشطارتك بقا :lol:
أسف على الأطالة المشروع بالمرفقات
قم بأرفاق ملف الأتصال بقاعدة بيانات sqlite
تم تعديل هذه المشاركة بواسطة Black_Drag0n في 7 أغسطس 2011 في 01:38
طيب لو دخلت رقم 1 وبعدين كتبت 2 بقى الـ Id بيساوى 12 بيقولى انه تبع خالد
ازاى وخالد رقمه 1 مش 12
براحة عليا شوية أنا لسة مبتدأ
لم أنتبه لهذه المشكلة
لكن الحل بسيط جدا وهى أضافى الكود التالى قبل الجملة الشرطية IF
ChickId.setText(null);
ليصيح الكود
private void ChickID() {
Connection Connection = null;
try
{
Connection = new DBConnect().getConnection();
Statement stmnt = Connection.createStatement();
ResultSet rs = stmnt.executeQuery("select name from user where id like '%" + ID.getText() + "%'");
ChickId.setText(null);
if (ID.getText().length() == 0 ) {
ChickId.setText(null);
} else {
ChickId.setText(rs.getString("name"));
}
}
catch(SQLException actionException){
}
}
وأرجو أن تكون قد أعجبتكم الفكرة
تم تعديل هذه المشاركة بواسطة Black_Drag0n في 7 أغسطس 2011 في 13:12
أسف هناك مشكلة أخرى لم أنتبه اليها
وهى فى دالة سكول للبحث
إذا كان هناك طالب فى قاعدة البيانات رقمه 555 وقمت بكتابة 5 فى رقم الكود سوف يظهر لك هذه الطالب
وتفاديا لهذه المشكلة قم بألغاء العلامات ' و %
'% يكون هنا أسم التيكست فيلد %' (قم بألغاء علامه التنصيص وفى المئة
جملة الأستعلام بعد أذالة العلامات
"select name from user where id like " + ID.getText() + ""
اقتباسما انت هتعرف رقمها فى التقرير اللى هيطلع علشان تطبعه
"هيطلع" هذا فعل مبنى للمجهول وكأنه سيخرج بالسحر والشعوذة
انت المبرمج :haha: اكتب لى خطوات اظهار التقرير المذكور
من بداية ضغط المستخدم على زر "اظهار التقرير" او "طباعة"
﴿وَمَا كَانَ اللَّهُ لِيُعَذِّبَهُمْ وَأَنْتَ فِيهِمْ ۚ وَمَا كَانَ اللَّهُ مُعَذِّبَهُمْ وَهُمْ يَسْتَغْفِرُونَ﴾
الأنفال ۳۳
MOHAMED FATHEI كتب:"هيطلع" هذا فعل مبنى للمجهول وكأنه سيخرج بالسحر والشعوذة
انت المبرمج :haha: اكتب لى خطوات اظهار التقرير المذكور
من بداية ضغط المستخدم على زر "اظهار التقرير" او "طباعة"
على فكرا هيطلع دى فعل فالمستقبل ( باين عليك ساقط عربى هههه )
المهم مش هنخلص من قصه ابوزيد دى هههههه
هتشوف هو اسمه ايه وتعمل اضافه فاتوره زى ما قولنا
بعد ما تعمل اضافه فاتوره هترجع الـ id بتاع الفاتوره اللى تم اضافتها لهذا الحساب
وبعدين تظهر له شكل الفاتوره
هيكون فيها الاتى
--------------------------------رقم الفاتوره : id
الاسم : name ----------------------------------------------التاريخ : Date
المسلسل-------الصنف--------الكمية -------- سعره الوحده---------- السعر الكلى
1------------------جبنة------------2---------------- 10-------------------- 20
2------------------زيتون-----------1----------------- 5--------------------- 5
3------------------زبادى-----------5----------------- 1--------------------- 5
علامه الـ dash علشان يظهر كانه جدول بس مش اكتر
تصور لشكل الفاتوره
الـ id هيظهر من الرقم اللى اتخزنت فيه الفاتوره
والـname هيظهر من الـ FK اللى حصل للفاتوره تحزين عليه
والـ data هيكون مسجل فى جدول الفواتير
عاوز ايه تانى ؟؟؟ ( انت صايم ولا حاجه )
تم تعديل هذه المشاركة بواسطة Mahmoud Kelany في 7 أغسطس 2011 في 16:07
أنت شغالين تتخانقوا ومحدش أدانى رأيه برده
هل الفكرة الى عملتها دى حلوة ولا وحشة
أنا تنبهت للخطأ الى قولتلى عليه أخى محمود
ويمكن أستخدام DocumentListener بدل من CaretUpdate
هل الفكرة كويسة ؟؟؟؟؟
هل تحتاج ألى تعديلات غير ال DocumentListener
وتقبلوا تحياتى
Black_Drag0n كتب:أنت شغالين تتخانقوا ومحدش أدانى رأيه برده
دا الطبيعى يا عم هههههه
هل الفكرة الى عملتها دى حلوة ولا وحشة
بصراحه انا مش شوفت غير عمليه التشغيل لم ارى كود هههههه
أنا تنبهت للخطأ الى قولتلى عليه أخى محمود
ويمكن أستخدام DocumentListener بدل من CaretUpdate
هل الفكرة كويسة ؟؟؟؟؟
مش قولت لك مش شوفت الكود
هل تحتاج ألى تعديلات غير ال DocumentListener
وتقبلوا تحياتى
انا صايم بس مش قوى ههههه
اقتباسعلى فكرا هيطلع دى فعل فالمستقبل ( باين عليك ساقط عربى هههه )
والفاعل ضمير مستتر تقديره هو عائد على التقرير يا استاذ العربى
وكأن التقرير هو اللى مشغلك(الفاعل) مش انت اللى مشغله
اقتباسبعد ما تعمل اضافه فاتوره هترجع الـ id بتاع الفاتوره اللى تم اضافتها لهذا الحساب
صح ولكن اكتب الاستعلام query
تم تعديل هذه المشاركة بواسطة MOHAMED FATHEI في 7 أغسطس 2011 في 21:18
﴿وَمَا كَانَ اللَّهُ لِيُعَذِّبَهُمْ وَأَنْتَ فِيهِمْ ۚ وَمَا كَانَ اللَّهُ مُعَذِّبَهُمْ وَهُمْ يَسْتَغْفِرُونَ﴾
الأنفال ۳۳
MOHAMED FATHEI كتب:صح ولكن اكتب الاستعلام query
انتظر المشروع كاملا
قريبا فى الاسواق
باقى جزء بسيط جدا الخاص بالتقرير ( ما انت عارف اخوك ميح فيه ههههه )
التقرير دا هيأخرنى اوووى :(
لسه هاشوف اازاى ابعت برامترز للتقرير وهيكون فيه تقريبا 2 Select حاجه كدا معقده هههههه
ما تساعد يا مستر محمد فتحى
تم تعديل هذه المشاركة بواسطة Mahmoud Kelany في 8 أغسطس 2011 في 12:01
اعتبر المشروع خلص وكله تمام والشئ الوحيد الذى لم يكتمل بعد هو الاستعلام
اكتبه (العملية بسيطة جدا select thing from table where condition)
خلاصة الموضوع لايوجد شئ unique فى الفاتورة الا الرقم لهذا لا يمكن ان يكون مخفى او فى علم الغيب
وانا معك حتى النهاية
﴿وَمَا كَانَ اللَّهُ لِيُعَذِّبَهُمْ وَأَنْتَ فِيهِمْ ۚ وَمَا كَانَ اللَّهُ مُعَذِّبَهُمْ وَهُمْ يَسْتَغْفِرُونَ﴾
الأنفال ۳۳
MOHAMED FATHEI كتب:اعتبر المشروع خلص وكله تمام والشئ الوحيد الذى لم يكتمل بعد هو الاستعلام
اكتبه (العملية بسيطة جدا select thing from table where condition)
خلاصة الموضوع لايوجد شئ unique فى الفاتورة الا الرقم لهذا لا يمكن ان يكون مخفى او فى علم الغيب
وانا معك حتى النهاية
ياعم انا مش هاكتب حاجه انا شغال فالمشروع بقولك فاضل موضوع الReport فقط
وشغال على ذلك
نهدي شويه يا جماعه ؟ ولا حابين أفقلكو الموضوع و أطلعكو بره :P
اتفضل ياعم محمد
انا مخلصه امبارح
لكن التقرير اللى تعبنى شويه ( اول مره اعمل تقاير بقا هههههههه )
استخدم Sequance في أوراكل
أو استخدم autoincrement في mySQL واحصل على قيمة العمود بعد الإضافة انظر هنا لمحة جافاوية 47: من قواعد البيانات
تحياتي
