الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

عدم تكرار السجل

بدأه نينا في 26 أبريل 2011 · 6 رد · 1,624 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

لدي جدول موظفين من نوع paradox و لدي فورم خاص بتغيير بيانات الموظف. ما أريده هو بعد التغيير أريد التأكد من عدم تكرار السجل (تكرار المفتاح) لكن المشكل أني عند الحفظ أقوم بعملية بحث لكن المشكلة أن السجل الحالي يكون ضمن مجال البحث، فتظهر الرسالة أن السجل موجود ، أريد نوعا ما عزل السجل الجالي و القيام بعملية البحث.

#2

وضح او وضحي اكثر...

العمل كثير و الوقت قليل أعاننا الله

seo zen SEO Enlightment amazon danbo

#3

يعني أنا المستخدم لما يغير بيانات الموظف ممكن يغير رقم الموظف الذي هو المفتاح و يمكن أن يضع رقم خاص بعامل آخر فأنا أريد أنا أمنع هذا من الحدوث و لذلك قبل الحفظ أقوم بعملية بحث للتأكد من عدم وجود سجل بهذا الرقم لكن السجل الذي أنا بصدد تغييره أيضا يشمله البحث فالنتيجة تكون أن السجل موجود رغم أن السجل الذي عثر عليه في البحث هو نفسه السجل الذي أنا قمت بتغيير بياناته مع و ذلك في حال ان التغيير لم يطل رقم الموظف

#4
نينا كتب:

يعني أنا المستخدم لما يغير بيانات الموظف ممكن يغير رقم الموظف الذي هو المفتاح و يمكن أن يضع رقم خاص بعامل آخر فأنا أريد أنا أمنع هذا من الحدوث و لذلك قبل الحفظ أقوم بعملية بحث للتأكد من عدم وجود سجل بهذا الرقم لكن السجل الذي أنا بصدد تغييره أيضا يشمله البحث فالنتيجة تكون أن السجل موجود رغم أن السجل الذي عثر عليه في البحث هو نفسه السجل الذي أنا قمت بتغيير بياناته مع و ذلك في حال ان التغيير لم يطل رقم الموظف

السلام عليكم

أهلا بناس تلمسان .

يمكنك الاعتماد على الفلتر و الاحصاء معا لحل مشكلتك.

مثلا:

table1.filter='codeemployer='+edit1.text;

هذا لعمل فلتر و اظهار السجل الذي يوافق فيه رقم الموضف القيمة الموجودة على edit1 مثلا.

و من جهة أخرى يمكنك استعمال:

table1.recordcount

لحساب عدد السجلات الموجودة في الجدول الموافقة لشرط الفلتر بعد احداث الفلتر, يعني اذا كان العدد الناتج من table1.recordcount أكبر تماما من 1 فهذا معناه خطأ(يوجد سجلين او اكثر بنفس الرقم) و اذا كانت النتيجة =1 فالعملية صحيحة.

و يمكنك بعد ذالك عمل مسح للفلتر لكي يعود اظهار كل عناصر الجدول ب:

table1.filter='';

بالتوفيق.

تم تعديل هذه المشاركة بواسطة info_megue في 26 أبريل 2011 في 18:32

i-love-algerie-laura23920090720132603.gif
#5

السلام عليكم ...

لم اعمل على بارادوكس منذ عدة سنوات :wacko: . الحل الذي اقترحة info_megue يؤدي المطلوب او يمكن ان تقومي بانجاز procedure مبني على TQuery باستعمال استعلام sql.

الاجراء التالي قمت بتجربته على dbExpress لكنه يعمل على BDE دون تغيير على حسب ظني يمكن ان تقومي بتعديل الكود ليعمل على TQuery لاني استعملت TSQLDataSet

function ReturnPersonneCount(id_persone: Integer): Boolean;
var
  PersonneExist: Boolean;
begin
  PersonneExist := false;

  sqPersonneCount.Close;

  sqPersonneCount.ParamByName('paramid_personne').Value := id_persone;

  sqPersonneCount.Open;

  case sqPersonneCount.FieldByName('PersonneCount').AsInteger of
    0:
      PersonneExist := true;
      /// you can insert data
    1:
      PersonneExist := false;
      /// nop
  end;

  Result := PersonneExist;
end;

نص استعلام سيكول يمكن ان يكون كالاتي

select count(id_personne) as PersonneCount from Personnes where id_personne=:paramid_personne;

الاستعمال يكون كالتالي

if ReturnPersonneCount(cdsPersonnes.FieldByName('id_personne').asInteger)=true then
begin 
	//insert your data
end;

و الله اعلم

العمل كثير و الوقت قليل أعاننا الله

seo zen SEO Enlightment amazon danbo

#6
نينا كتب:

يعني أنا المستخدم لما يغير بيانات الموظف ممكن يغير رقم الموظف الذي هو المفتاح و يمكن أن يضع رقم خاص بعامل آخر فأنا أريد أنا أمنع هذا من الحدوث و لذلك قبل الحفظ أقوم بعملية بحث للتأكد من عدم وجود سجل بهذا الرقم لكن السجل الذي أنا بصدد تغييره أيضا يشمله البحث فالنتيجة تكون أن السجل موجود رغم أن السجل الذي عثر عليه في البحث هو نفسه السجل الذي أنا قمت بتغيير بياناته مع و ذلك في حال ان التغيير لم يطل رقم الموظف

كل الردود جميله لكن اذا بدك تضعين مثالك لتغيير الرقم ونجري لكي ما تريدين

تحياتي للجميع

نسأل الله الجنه لنا ولوالدينا ولمن لهم حق علينا

#7

السلام عليكم ورحمة الله :

إن كنت قد وصلت للحل فمبروك وإن كنت لم تصل فأرجو أن يكون بما يلي الإفادة .

أولا: رأيت من خلال تجربتي في مجال الأرشفة أن تكون للجدول ID ويكون هو المفتاح الأساسي .

ثانيا : يمكنك بمجرد أن يدخل المستخدم أو يغير رقم الموظف أن تبحث عنه من خلال Query قبل الحفظ وقبل أن تسمح له بالإنتقال إلى الخانة التالية لرقم الموظف فإن كان موجودا فترسل له رسالة تنبيه وتجبره على تغيير الرقم وهكذا .

وفقك الله

تم تعديل هذه المشاركة بواسطة aymen1968 في 13 يوليو 2011 في 02:16

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…