delphi4arab منتديات دلفي للعرب

نسخة كاملة : كيفية جعل المفتاح الرئيسي مثلا رقم المنتوج يزداد تلقائيا auto increment
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
كيفية جعل المفتاح الرئيسي مثلا رقم المنتوج يزداد تلقائيا في الاضافة وينقص تلقائيا في الحذف علما اني اعمل بواسطة sql server وdelphi7وقد جربت الخاصية compteur في sql serverلكن واجهتني مشكلة في عملية الحذف
كيفية ادخال رقم تسلسلي في حقل adotable مثل 0001 يتزايد ذاتيا
اذا استعملت البرادكس يوجد نوع خاص من الحقول يزدادة تلقائيا رمزه+
اي نوعالحقل يكون+
السلام عليكم
ان كنت تستعمل access وتريد ان تجعل دلك الحقل مفتاح رئيسي مثلا في جدولك فاعطه القيمة
type de données= NuméroAuto فسيزداد تلقائيا عند كل تسجيلة جديدة
بالتوفيق
تقوم بتعريف متعير رقمى انا حكتب لك الكود
var

a :integer;

ثم
جمله sql لمعرفه اخر رقم
SELECT
FROM enfant
WHERE nonoid=(
SELECT max(nonoid) FROM enfant
)

ثم نقوم باضافة رقم جديد لناتج query
a:= Query1nonoid.AsInteger+1
ثم تقوم بفتح table المراد حفظ الناتج فيه

tbl1.Append;
tbl1Nonoid.AsInteger:=a;
tbl1.Post;

ربما يوجد حل اسهل ولكن هذا ما توصلت اليه
أخي bassem_43

أعتقد أن مشكلة الأكسس في الحذف أي أنه لا ينقص تلقائيا؟؟
صحح لي إن كنت مخطئا؟؟
you_per7 كتب :أخي bassem_43

أعتقد أن مشكلة الأكسس في الحذف أي أنه لا ينقص تلقائيا؟؟
صحح لي إن كنت مخطئا؟؟
نعم معك حق هي مشكلة بالنسبة لي ايضا
ربما توجد طريقة اخرى للحل انا لا اعرفها
السلام عليكم
بالنسبة لهذه الخاصية هناك طريقتين:
الطريقة الاولى:
الــ AutoNumber مثلما شرحها لك الاخ bassem_43
مميزاتها
- السجل يحافظ على رقمه.
- في حالة حذف سجل ما فان كل سجل يبقى بنفس الترقيم الذي اعطي له في الاول
الطريقة الثانية:
الــ RecordCount و هي تقوم بحساب عدد السجلات في الجدول ثم تضيف رقم في حالة اضافة سجل جديد
مميزاتها
- السجل لا يحافظ على رقمة.
- في حالة حذف سجل ما فان الترقيم يحافظ على الترتيب .
بالتوفيق
السلام عليكم...

حقول الترقيم التلقائي (Auto-increment في Access أو Identity في SQL Server) مصممة أصلاً لتكون لها ثلاث مزايا:

1. تعطى لها قيمة تلقائية عند إضافة سجل جديد.
2. القيمة تزداد بشكل تلقائي. و هذا يؤدي إلى أن القيمة المستعملة سابقاً لا يعاد استعمالها حتى و إن حُذفت.
3. عدم تكرار القيم في الحقل.

* ملاحظة: القيمة التي يتم توليدها تلقائياً أثناء عملية الإضافة لا يتم إعادة استخدامها حتى و إن أُلغيت العملية و لم يُضف السجل (بسبب حدوث خطأ ما مثلاً).

غالباً ما تستعمل هذه الحقول للربط بين الجداول (داخلياً و ليس للعرض على المستخدم)، مثلاً ربط الفواتير بالزبائن. و لهذا من المنطقي أن لا يكون مسموحاً بإعادة الترقيم في هذه الحقول، و إلا ستصبح هناك لخبطة في عمليات الربط.

مثلاً: نفرض أن لدينا فواتير مرقمة من 1 إلى 10 و كانت موزعة على زبونين كالتالي:

الزبون "خالد" له الفواتير 1 و 2 و 3 و 7 و 9.

الزبون "سالم" له الفواتير 4 و 5 و 6 و 8 و 10.

و الآن إذا حذفنا الفاتورة رقم 6 (تخص سالم) ثم أعدنا ترقيم الفواتير فسيحدث التالي:

الفاتورة رقم 7 (تخص خالد) يصبح رقمها 6 (ذهبت إلى سالم).
الفاتورة رقم 8 (تخص سالم) يصبح رقمها 7 (ذهبت إلى خالد).
الفاتورة رقم 9 (تخص خالد) يصبح رقمها 8 (ذهبت إلى سالم).
الفاتورة رقم 10 (تخص سالم) يصبح رقمها 9 (ذهبت إلى خالد).

نرجو الاستفادة و السلام.