![]() |
|
مشكل الترقيم التلقائي لقاعدة البيانات - نسخة قابلة للطباعة +- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum) +-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3) +--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15) +--- الموضوع : مشكل الترقيم التلقائي لقاعدة البيانات (/showthread.php?tid=6348) |
مشكل الترقيم التلقائي لقاعدة البيانات - nacertaker - 25-07-2014 قمت بإنشاء قاعدة بيانات paradox وكان لديا حقل قمت بتعيين نوعه (+) كي يقوم بترقيمه أوتوماتيكيا المشكلة التي واجهتني هي أنه عند حدف حقل مثلا رقم 5 عند إضافة حقل جديد يقوم بترقيمه بالرقم 6 وليس 5 مشكل الترقيم التلقائي لقاعدة البيانات - nebchadelphi - 26-07-2014 السلام عليكم لا يمكن لأن الترقيم يضيف في تسجيلة رقم 1 لذا يمكنك جعل الحقل int والزيادة تكون برمجيا وذلك بأخذ أكبر قيمة في الجدول وإصافة 1 لها شكرا والسلام عليكم مشكل الترقيم التلقائي لقاعدة البيانات - tahri - 07-08-2014 السلام عليكم لقد واجهتني نفس المشكلة ولم أجد لها حلا هل من شرح مفصل؟ مشكل الترقيم التلقائي لقاعدة البيانات - esam2002 - 12-08-2014 انا جربت طريقه ونجحت معى وهو كالاتى عمل query لمعرفه اخر قيمه SELECT nonoid FROM enfant WHERE nonoid=( SELECT max(nonoid) FROM enfant ) 2- تعريف متغير وهو a :integer; 3- a:= Query1nonoid.AsInteger+1 ; 4- فتح ال table المراد الحفظ فيه tbl1.Append; tbl1Nonoid.AsInteger:=a; tbl1.Post ; ممكن تكون طويله ولكنها نجحت معى مشكل الترقيم التلقائي لقاعدة البيانات - Najy Ibraheem - 13-08-2014 السلام عليكم... تلك هي طريقة عمل الحقل من النوع "ترقيم تلقائي" (Auto-increment) حيث يبدأ الترقيم بالعدد 1 ثم يزداد بمقدار 1 مع كل سجل جديد (بعض قواعد البيانات تسمح بتحديد قيمة البداية و قيمة الزيادة). و ميدأ عمله أنه دائماً يزداد بمقدار الزيادة (غالباً 1) و لا يتم استعمال أي عدد تم استعماله سابقاً حتى و إن تم حذف السجل المرتبط به (مثل عداد يعمل في اتجاه واحد و لا يمكن إرجاعه إلى الخلف). وجود انقطاع في التسلسل (مثلاً 1 - 2 - 3 - 5 - 6 حيث لا يوجد 4) لا يحدث فقط بسبب الحذف، بل أيضاً بسبب عمليات الإضافة الفاشلة، أي عند حدوث خطأ يمنع حفظ السجل الجديد بعد أن تم توليد رقم تلقائي من أجله. السبب في عمل هذا النوع من الحقول بهذا الشكل منطقي، فغالباً ما تستعمل هذه الحقول للربط بين الجداول، حيث يكون حفل الترقيم التلقائي في الجدول الرئيسي مفتاحاً أساسياً و تكون قيمه مستعملة في حقل المفتاح الأجنبي في الجدول أو الجداول الفرعية. و ربما يكون من الأفضل أن يبقى المحذوف محذوفاً حتى نعرف أن هناك سجل تم حذفه. * ملاحظة: استعمال MAX للحصول على أكبر رقم تعطي نفس النتيجة، ففي المثال 1 - 2 - 3 - 5 - 6 ستعطي الرقم 7 للسجل الجديد و ليس 4. نرجو الاستفادة و السلام. مشكل الترقيم التلقائي لقاعدة البيانات - ALKO - 16-08-2014 السلام عليكم كنبت رد مفصل لكن Ctrl+Z دهبت بكل شيئ المشكل في اسنعلامك انه غير منطقي و ثانيا كارثي ان كان الجدول فارغ فسيعيد Max:=null a:= Query1nonoid.AsInteger+1 ===================OverFlow a:=Null+1; الحل بسيط كود : with AQMax do
begin
Close;
SQL.Clear;
SQL.Add('Select max(Cod_Cl+1) As Mx From Client);
Open;
end;
if AQMax.FieldValues['Mx']=null then a:=1
else
a:=FrmDM.AQMaxFieldByName('Mx').Assinteger;مشكل الترقيم التلقائي لقاعدة البيانات - ALKO - 16-08-2014 السلام عليكم كتبت رد مفصل لكن Ctrl+Z دهبت بكل شيئ المشكل في استعلامك انه غير منطقي و ثانيا كارثي ان كان الجدول فارغ فسيعيد Max:=null a:= Query1nonoid.AsInteger+1 ===================OverFlow a:=Null+1; الحل بسيط كود : with AQMax do
begin
Close;
SQL.Clear;
SQL.Add('Select max(nonoid+1) As Mx From Enfant);
Open;
end;
if AQMax.FieldValues['Mx']=null then a:=1
else
a:=AQMax.FieldByName('Mx').Asinteger;مشكل الترقيم التلقائي لقاعدة البيانات - phpbb3 - 16-08-2014 قمت بعمل هذا الكود في برنامجي التجاري والحمد لله تعمل بكفائه قريبا سأقوم بطرح نسخه تجريبيه منه كود : 'select ' + field_name + ' from ' + table_name + ' order by ' + field_name + ' desc' |