كيفية منع التكرار فى قاعدة البيانات فى حالة التحديث ؟ - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم قواعد البيانات (http://vb4arb.com/vb/forumdisplay.php?fid=40) +--- قسم : قسم اسئلة vb6.0 المتعلقة بقواعد البيانات (http://vb4arb.com/vb/forumdisplay.php?fid=72) +--- الموضوع : كيفية منع التكرار فى قاعدة البيانات فى حالة التحديث ؟ (/showthread.php?tid=7974) الصفحات:
1
2
|
كيفية منع التكرار فى قاعدة البيانات فى حالة التحديث ؟ - gedo - 15-03-13 السلام عليكم ورحمة الله وبركاته كيف حالكم ياشباب بارك الله فيكم كيف امنع تكرار كود فى قاعدة البيانات ولكن فى حالة التحديث انا استخدم هذا الكود فى حالة الاضافة وهو يعمل جيدا ولكن اريد ان استخدمة فى حالة التحديث ؟ كود : RS.Open "select * from TB1 where Code='" & (TxtCode) & "'", DB, adOpenStatic, adLockReadOnly انتظر مساعدتكم وشكرا لكم وبارك الله فيكم وجزاكم الله كل خير كيفية منع التكرار فى قاعدة البيانات فى حالة التحديث ؟ - ناجي إبراهيم - 15-03-13 السلام عليكم... لديك طريقتان: إما أن تستعمل كوداً كالكود الذي ذكرته (مع بعض التعديل) أو أن تعتمد على ضبط خصائص الحقول في قاعدة البيانات. 1. في مثل هذه الحالات عادةً نستعمل حقل تعريف فريد في الجدول لتعريف كل سجل بقيمة لا تتكرر في حقل التعريف، و هناك أشكال كثيرة لمثل هذا الحقل، لكن أبسطها و أسهلها - على الأقل في Access هو إنشاء حقل من النوع "ترقيم تلقائي" (Auto-increment أو Auto-number) بحيث يقوم محرك قواعد البيانات بنفسه بتوليد قيمة فريدة (غير مكررة) لكل سجل نقوم بإضافته. في مثالك أنت، تحتاج إلى إضافة مثل هذا الحقل - و لنفرض أننا سنسميه ID و نوعه ترقيم تلقائي. و تكون خطوات تعديل السجل كالتالي: أ. تحديد السجل الذي سيتم تعديله. الطريقة تعتمد عليك أنت، مثلاً طلب رقم الكود (code) من المستخدم للبحث عن السجل، أو ربما تكون السجلات معروضة في DBGrid، ... إلخ. ب. الاحتفاظ بقيمة الحقل ID في متغير. ج. قبل حفظ السجل المعدل نتأكد من عدم تكرار الكود مع سجل آخر، و هذا هو بيت القصيد: استعمل نفس كودك السابق و لكن مع تعديل بسيط، كالتالي: كود : Dim RecID As Long 2. الطريقة الثانية هي أن تجعل الحقل code (في Access) لا يقبل القيم المكررة (حدد الحقل code و اذهب إلى الخاصية "مفهرس" و اختر لها "نعم (التكرار غير مقبول)"). في هذه الحالة لن تحتاج إلى الاختبار في كود VB - في الإضافة أو التعديل - و لكن عليك إنشاء مصيدة أخطاء. مثلاً: كود : Private Sub ... و طبعاً يمكنك معرفة رقم الخطأ و معرفة ما إذا كان سببه تكرار البيانات أم شيء آخر. نرجو الاستفادة و السلام. كيفية منع التكرار فى قاعدة البيانات فى حالة التحديث ؟ - gedo - 16-03-13 السلام عليكم ورحمة الله وبركاته شكرا لك اخوى على الرد بارك الله فيك جربت الكود الاول وظهر لى الخطأ التالى : no value given for one or more required parameters وجربت الكود الثانى وظهر الخطأ التالى : either bof or eof is true or the current record has been deleted requested operation requires a current record والخطا يظهر لى عند السطر RS.CancelUpdate انتظر الحل وشكرا لك وبارك الله فيك كيفية منع التكرار فى قاعدة البيانات فى حالة التحديث ؟ - @@أبورائد@@ - 16-03-13 السلام عليكم ورحمة الله وبركاته RS.AddNew لإضافة جديد. RS.Edit للتعديل على سجل بعد تحديده بـ WHERE في جملة الاستعلام. ضع البيانات المطلوبة، مع ملاحظة أنه في حالة Edit لن تحتاج للسطر (RS!code = Trim(TxtCode.Text. RS.Update تكون للـ AddNew و Edit بعد وضع البيانات المطلوبة. PHP كود : RS.Open "SELECT * FROM TB1 WHERE Code='" & (TxtCode) & "'", DB, adOpenDynamic, adLockOptimistic السلام عليكم ورحمة الله وبركاته كيفية منع التكرار فى قاعدة البيانات فى حالة التحديث ؟ - gedo - 16-03-13 السلام عليكم ورحمة الله وبركاته إقتباس :RS.AddNew لإضافة جديد. شكرا لك اخوى على الرد ولكن انت تقصد RS.EditMode لانى لايوجد عندى RS.Edit ثانى شىء انا حليت المشكلة بالنسبة للطريقة الثانية الى كتبها اخوى ناجى ابراهيم والى هى : كود : Private Sub ... no value given for one or more required parameters وشكرا لكم جميعا وبارك الله فيكم وجزاكم الله كل خير كيفية منع التكرار فى قاعدة البيانات فى حالة التحديث ؟ - تركي الحلواني - 17-03-13 هل تقصد بكلمة التحديث اي [COLOR="#FF0000"]التعديل [/COLOR]على السجل اذا كان هذا ماتقصدة فـ الليك بهذا التعديل في الكود الخاص بك واتمنا يكون المطلوب ولو ارفقة البرنامج ليتم التعديل علية PHP كود : If rs.State = 1 Then rs.Close كيفية منع التكرار فى قاعدة البيانات فى حالة التحديث ؟ - gedo - 18-03-13 إقتباس :هل تقصد بكلمة التحديث اي التعديل على السجل السلام عليكم رحمة الله وبركاته شكرا على مرورك اخى الكريم بارك الله فيك نعم اقصد بالتحديث ان يتم التعديل على السجل مع عدم تكرار الكود بحيث اذا حاولت تعديل الاسم فقط ولم اعدل الكود فيقوم بالتعديل على الاسم ويظهر انه تم التعديل على السجل واذا قمت بالتعديل على الكود فقط او التعديل على الاسم والكود فى نفس الوقت - يتحقق اذا كان الكود موجودا مسبقا يظهر ان الكود مكرر ولا يقوم بالتعديل قمت بتجربة الكود ولم ينجح على العموم ارفقت مثال للتعديل علية كما طلبت اخوى وشكرا لكم جميعا وبارك الله فيكم وجزاكم الله كل خير كيفية منع التكرار فى قاعدة البيانات فى حالة التحديث ؟ - تركي الحلواني - 18-03-13 تفضل التعديل كيفية منع التكرار فى قاعدة البيانات فى حالة التحديث ؟ - gedo - 18-03-13 السلام عليكم ورحمة الله وبركاته شكرا لك اخى بارك الله فيك ورزقك من واسع علمة الكود يعمل تمام الحمد لله ولكن لدى استفسار بسيط اخوى واجهتنى مشكلة عندما قمت بتغيير نوع حقل الكود ليكون Number فظهر لى الخطأ التالى عند التنفيذ data type mismatch in criteria expression فما حل هذه المشكلة وشكرا لك وبارك الله فيك كيفية منع التكرار فى قاعدة البيانات فى حالة التحديث ؟ - تركي الحلواني - 18-03-13 تفضل التعديل بعد تغير نوع الحقل الى رقم |