الانتقال إلى المحتوى

أرجو مثال عملي لكيفية عمل ترقيم تلقائي


loayy

Recommended Posts

بسم الله الرحمن الرحيم

الرجاء إخوتي مساعدتي في مثال لكيفية عمل الترقيم التلقائي بدون استخدام

sequence لأن الكثير لم ينصحوني ب sequence بسبب مشاكله

أرجو أن تكون الفكرة واضحة وأرجو مثال ولو بسيط عن طريق الفورم

ولكم جزيل الشكر

أخوكم / لؤي (أبو العبد)

رابط هذا التعليق
شارك

اخى loayy
من الممكن عمل ترقيم تلقائى بدلا من استخدام الsequence
عن طريق استدعاء اخر رقم والزياده عليه بواحد
مثلا عاوز اعمل insert ومش عاوز استعمل ال sequence
يبقى ممكن اعمل الاتى
declare
v_no number(10);
begin
select nvl(max(id,0)+1 into v_no from emp;
insert into emp values(v_no,.................
end;

وهكذا
واستخدام ال nvl
علشان لو وجد القيمه null

رابط هذا التعليق
شارك

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

رابط هذا التعليق
شارك



السلام عليكم
اجابة الاخ sameh_oracle
سليمه جدا
واذا كنت تريد ان تظهر الاضافه في زر تلقائيا
ضعها في ترايجر زر الاضافه مثلا(طالب او عميل) على حسب برنامجك

وشكرا

رابط هذا التعليق
شارك

  • بعد 2 أسابيع...

بسم الله الرحمن الرحيم

جزاك الله خيرا أخي الكريم / دي بي ايه وأخي OracleA وأخي sameh_oracle

لكن السؤال هو في أي trigger أضع هذا الأمر

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

ولا تؤاخذوني على كثرة طلباتي ولكن لأني بحاجة شديدة لهذه الخاصية

أخوكم / لؤي (أبو العبد)

رابط هذا التعليق
شارك

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

مرفق form باستخدام مفتاح اضافة سجل جديد لعمل الmax

max.fmb

تم تعديل بواسطة Ahmed_oracle
رابط هذا التعليق
شارك

بسم الله الرحمن الرحيم

جزاك الله كل خير أخي الكريم وبارك الله فيك

جاري التحميل وإن شاء الله أي سؤال لن أتردد في سؤالك

جعل الله ما قدمته لي وما تقدمه في ميزان حسناتك وبارك الله فيك ولا حرمنا الله منك ومن أمثالك

أخوك /ِ لؤي (أبو العبد)

رابط هذا التعليق
شارك

  • بعد 2 أسابيع...

الشرح بالتفصيل

Assigning Sequence Numbers to Records:
You will recall that you can assign default values for items from an Oracle sequence, to automatically provide unique keys for records on their creation. However, if the user does not complete a record, the assigned sequence number is “wasted.”
An alternative method is to assign unique keys to records from a Pre-Insert trigger, just before their insertion in the base table, by which time the user has completed the record and issued the Save.
Assigning unique keys in the posting phase can:
 Reduce gaps in the assigned numbers
 Reduce data traffic on record creation, especially if records are discarded before saving
Example:
This Pre-Insert trigger on the S_ORD block assigns an Order ID from the sequence S_ORD_ID, which will be written to the ID column when the row is subsequently inserted.
SELECT S_ORD_ID.nextval
INTO :S_ORD.id
FROM SYS.dual;
Note: The Insert Allowed and Keyboard Navigable properties on :S_ORD.id should be No, so that the user does not enter an ID manually.

رابط هذا التعليق
شارك

بسم الله الرحمن الرحيم

جزاك الله كل خير أخي الكريم Osama Soliman وبارك الله فيك على هذا التجاوب الجميل والشرح الرائع

لي سؤال أخي الكريم وأرجو أن تتحملني لأنني مبتدئ في الأوراكل

سؤالي هو لماذا نضعه في trigger ال Pre-insert trigger وما هو الفرق بينه وبين trigger ال when button pressed

أخوك / لؤي (أبو العبد)

رابط هذا التعليق
شارك

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

جاري التحميل
×
×
  • أضف...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية