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

مشكلة في قواعد البيانات

مغلق
بدأه alshreef في 20 مايو 2003 · 5 رد · 774 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

عندما أنشي قاعدة بيانات اكسس واضع قيمة جدول فيها AutoInc

(+) وادخل بيانات في الجدول يتم الترقيم التلقائي بالفعل

ولكن عندما احذف بيان من هذه البيانات واضيف بيان فأنه لايتم

أكمال الرقم المحذوف... مثال:

أدخلت خمس بيانات في الجدول فكل واحد منها ستحمل رقم حتى رقم

خمسه ولكن عندما أحذف البيان رقم 5 فسيكون لدي 4 بيانات

وعندما أضيف بيان آخر فسيحمل البيان الجديد رقم 6 والبيانات الموجودة

في القاعده 5 بيانات.

هل ممكن ارفاق مثال على ذلك

شكراً لكم

#2

هذا تصرف عادي لقواعد البيانات ، ولكن بدلا من وضع نوع البيانات ترقيم تلقائي يمكنك تعينه نوع "رقم" وتقوم ببناء دالة تقوم بايجاد اخر رقم في الجدول وثم تضيف له : 1 عند كل عملية حفظ ،

على العموم قد قمت ببناء دالة تقوم بهذا الغرض ارجو ان تفيدك

Function Last (MyTable:String;MySort:String):Integer;
begin
  MyQ.Close;
  MyQ.SQL.Clear;
  MyQ.SQL.Add('SELECT * FROM '+ MyTable + ' ORDER BY ' + MySort);
  MyQ.Open;
if MyQ.RecordCount = 0 then
begin
  Result:=0;
end else begin
  MyQ.Last;
  Result :=MyQ.FieldByName(MySort).Value;
end;

end;

تقبل تحياتي

#3

السلام عليكم

الله ينور عليك يا أبا هاني

اخي العزيز اخواني الاعزاء هل من الممكن من مثال مرفق اذا لم يكن عليك كلفة يا ابو هاني

كل الشكر لك يا ابا هاني لم اتوقع أن اجد الرد بهذه السرعة

تسلم

#4

اخي العزيز هل كتابة الكود هكذا صحيحة ... لانه لم يعمل معاي ارجو قراءة الكود وتعديل ما يلزم

Function Last (MyTable:String;MySort:String):Integer;
begin
  ADOQuery1.Close;
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add('SELECT * FROM '+ malumatschool + ' ORDER BY ' + MySort);
  ADOQuery1.Open;
if ADOQuery1.RecordCount = 0 then
begin
  Result:=0;
end else begin
  MyQ.Last;
  Result :=ADOQuery1nambar(MySort).Value;
end;

end.

هذا السطر لم افهمه مزبوط

Function Last (MyTable:String;MySort:String):Integer

وايضاً هذا لم افهمه وخاصة كلمة (MySort) علما ان الجدول اسمه (malumatschool ) والسجل اسمه(nambar) وجدول الاستعلام في الدلفي اسمه (ADOQuery1) يعني يصبح الهدف هو ADOQuery1nambar

ADOQuery1.SQL.Add('SELECT * FROM '+ malumatschool + ' ORDER BY ' + MySort);

ارجو قراءة الكود وتصحيح ما يلزم مع خالص شكري وتقديري

#5

عذرا اخي الشريف، فقد ادرجت الدالة ولم اشرح لك طريقة استخدامها

على العموم هذه الدالة من الدوال الجاهزة ، أي انك لست مضطرا لااعادة كتابتها وقد كتبتها للحاجة للحصول على اخر قيمة في الجدول :

هذه الدالة تحتاج منك تمرير قيمتين

القيمة الاولى : اسم الجدول

القيمة الثانية : اسم الحقل الذي ترغب في الحصول على اخر رقم فيه

وتعيد لك الدالة قيمة واحدة فقط وهي اخر رقم في الجدول

ولعل المثال المرفق يوضح لك الصورة اكثر

وعذرا على التقصير

alshreef.zip

#6

السلام عليكم

شكراً لك اخي العزيز

سوف اطبق المثال فوراً وان شاءالله ينجح معاي

بارك الله فيك

هذا الموضوع مغلق.

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