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

عندي مشكلةفي عملية الupdate،ممكن تساعدوني

مغلق
بدأه نجمةالحجاز في 5 يناير 2003 · 7 رد · 971 مشاهدة · في قواعد بيانات Oracle
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

declare

x boolean

begin

clear_form(no_validate

x:=show_lov('cust_lov');

select cust_id

into :customer.cust_id

from customer

where cust_id=:cust_id;

end

execute_query(no_validate

go_block('customer

end

اخواني الاحباب هذا الكود انا عملته تريقر على ازرار ل lov في فورم العملاء....

وبعد ما ادخل ال lov واختار منها اي عميل ثم عندما اعمل عليه عملية تحديث او مسح

فانه لايفعل ذلك وتطلع لي رسالة unable to insert record

وعندما ابدل السطرين الاخيره من الكود فانه يقوم بعملية المسح والتحديث

ولكن عندما ارجع لزر ال lov واختار عميل آخر فانه يأتي بالعميل السابق وما يضع العميل المختار في الريكورد ولكنه يرجع العميل السابق.

ارجوكم ساعدوني وما هو العمل وشكرا لكم.......:(:'(

#2

عزيزتي:

الرجاء توضيح المشكلة أكثر حتى يتسنى لنا المساعدة:

ما اسم ال Trigger الذي استخدمتيه بالضبط و لماذا؟ ما هو المطلوب بالضبط؟

بانتظار التوضيح...

#3

اختي العزيزة

ارجو ان توضحي المشكلة بالظبض لكي نتمكن من المساعدة

#4

المشكله انا يوم اشتخدم lovعلشان يعمل عملية البحث عن عميل معين وارجع المعلومات من الlov الىtext item المربوطه بالداتا باسdatabase ..اعمل عليها تغيير او حذف للهذا السجل ما يرضى عندما اضغط على زر الحذف او update الي موجود على بلوك ثاني غير البلوك الموجود عليه text items ..........ارحو المساعده ويعطي خظا لا يستطيع عمل انسيرت ؟؟؟

يعني هل ال lovعندما يعمل rturn itemsما يكون مربوط database يعمل مشاكل ايش الحل ..............

واذا ما فهمتو كمان قصدي... اذا كنت ابغا ابحث عن عميل معين علشان عمل للمعلومات حقه update ماهو العمل ؟؟

#5

الاخت نجمة:

مرة أخرى مشكلتك غير واضحة, و لكن سأحاول المساعدة:

* عند انشاء LOV لا داعي لأي Trigger مساعد.

* الهدف الرئيسي من الLOV: (أي متى ينبغي لي التفكير باستخدامها):

أريد أن اعمل Insert ولدي قيمة أريد أخذها من جدول اخر : مثال : ادخال موظف جديد :على الجدول EMP نريد أن يختار المدخل Deptno ونريده أن يرى Dname أيضا دون أن نستخدمها... عندئذ ننشيء LOV على العنصر Deptno

**الأن عند استخدام هذه LOV لاعادة قيمة تستخدم تعليمة Select وتعيد القيمه المطلوبة و ينتهي دور الLOV وليس من المفترض أن تعطي أخطاء, أما وقد ظهر لديك خطأ فقد يكون سببه التالي:

**(على أساس المثال السابق):

قمت بتعريف حقل لاعادة قيمة Dname

ووضعته في نفس الBlook التابعة ل EMP عندئذ ينبغي الدخول الى خصائص هذا العنصر ووضع الخاصية Database Item : No

إن كانت المشكلة غير ذلك أرجو منك التوضيح أو ارسال رسالة الخطأ عن طريق ضغط الزرين Shift+F2

عند حدوث الخطأ مباشرة....

أسف لعدم فهمي امشكلتك بالضبط..........

#6

الاخ الكريم halabi

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

المشكله وما فيها

هي ان عملية التحديث والمسح والحفظ لاتعمل معي عندما اعرض المعلومات عن طريق اللوف LOV

ولكن عندما اضغط F7 ثم F8 فيمكنني ان عمل عمليات المسح والحفظ والتحديث...

المسج التي تظهر عندما اضغط SHIFT و F1 هي مسج بها جملة SELECT

تقول ان بها خطأ

ارجو حل المشكله وشكرا لك.:o

#7

الاخت نجمة:

لا يوجد علاقة بين LOV و تعليمة الSelect الرئيسية التي يبنيها الفورم أو تعليمة Insert Or Update التي يشكلها الفورف.

إذن ينبغي أولا معرفة الخطأ من أين خاصة إذا استخدمت الويزيرد لانشاء LOV

***الأخطاء المحتملة:

في مثل هذه الحالات يكون الخطا وجود ايتم مربوط مع بلوك بشكل خاطئ.

وجود بلوك مربوط مع جدول بشكل خاطئ.

كيف نستطيع تحديد الخطأ؟

نعمل Save للفورم قبل كل شيء.

نبدأ بحذف الشيء الذي نتوقع أن به المشكلة: نحذف الLOV ونجرب إذا استمر الخطا-->هذا يعني أن الخطأ من مكان اخر وهكذا حتى نكتشف الخطأ...

الرجاء محاولة ذلك..

#8

السلام عليكم

الاخت نجمة الحجاز

ساجاوب بما فهمت و ان شاء الله اكون قمت فهمت الصواب

لدينا الان 2 بلوك مثلا fcust , fcust1

الاول به حقل custno و يحتوى على رقم العميل و به lov ترجع بالقيمة من database تحضر رقم العميل لل custno

و في البلوك الثاني يوجد جميع الحقول الاخرى الخاصة بالعملاء مثل العنوان رقم الهاتف و غيرها من الحقول التي نريد عمل update مثلا

واضح من كلامك ان lov ترجع بالبيانات بشكل جيد

اولا تاكدي من ان جميع الحقول الموجودة قابلة للتعديل في الخصائص الخاصة بها مثل update allawd = yes

ثانيا من خلال انشاء زر نضع عليه التريجر التالي

UPDATE FCUST SET 

CUST_ADDRESS = :FCUST1.CUST_ADDRESS ,

CUST_PHONE = :FCUST1.CUST_PHONE;

WHERE :CUSTNO = FCUST.CUSTNO;

جربي و ان شاء الله تسير الامور بخير ولدي فورم ساحضره لك غدا ان شاء الله فيه التعديل و يارب ينفعك

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

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

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

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

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

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