الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

كيف ممكن أعرف إسم الفورم من الداتا بيس

Featured Replies

بتاريخ:

سلامات أيها المبرمجين

بدي أكتب trigger في ال database على ال table x بحيث إذا أي مستخدم أضاف أو حذف أو عدل في table x يعطيني هذا الtrigger إسم الشاشة التي تم منها التغيير
و إضيفلي إياه في table أخرى ....
...أي أريدsql statment تعطيني إسم الشاشة التي تم منه التغيير

وشكرا لكم

بتاريخ:

اذا كنت ترغب في خزن اسم الفورم الذي حصل به الخطاء انصحك باستخدام form triggers وليس الـDatabase triggers
حيث تستطيع ان تعمل procedure يخزن اسم الفورم والمستخدم ورسالة الخطى في الجدول المعني

بتاريخ:

هناك حل لهذه المشكله و هي
انشاء باكيدج بها global varible
و انشاء بروسيدجر تقوم بتغير هذه القيمة
و في تريجر when_new_form_instanc
نقوم بتغير اقيمة المتغير الي اسم الفورم عن طريق الداله لانه في حالة وجود قواعد البيانات علي جهاز اخر لن تستطيع تغير قيمة المتغير مباشرة
و علي قواعد البيانات ننشئ زناد قبل الادخال لكل صف يقوم بادخال قيمة المتغير و قيمة العمود الذي نريد تتبعه
هذا الحل معقد طبعا بالنسبه للحل الاسهل الذي كتبه اخي خالد
مع تمنياتي بالتوفيق

بتاريخ:
  • كاتب الموضوع

إخواني الاعزاء

أنا أعرف أنه يمكنك أن تخزن إسم الForm عن طريق
System.current_form
ولكن هذه الطريقة صعبة بسبب عدد الشاشات الهائل في نظام التسجيل الذي أعمل عليه
لذلك أريد أن أريح رأسي و أستخدم ال Database Trigger التي تضيف أو تحذف أو تعدل عليها ولكني لم أجد الطريقة حتى الان
و شكرا لكم على نصائحكم

بتاريخ:

السلام عليكم ،
أفضل استخدام DB trigger على الجدول .. اليكم مثال على جدول emp فى scott
[align=left]
--انشاء جدول جديد لمتابعة اي تعديلات بالزيادة تتم على الراتب بجدول الموظفين
-- rewno = primary key from sequence.
-- eno = employee number
-- osalary = old salary before update
-- nsalary = new salary after update
-- remark = any comments .. calculate percentage of incresed
-- edate = entery date = system date of transaction.
-- operator = user number as connect to database .
-- تاريخ تسجيل الحركة سيكون مباشرة من الجهاز
-- المستخدم الذى اتم التعديل سيتم كتابته بالملف الجديد
-- مطلوب مسلسل من الجهاز باستخدام - sequenace
-- سيتم الكتابه بالملف فى حالة زيادة الراتب فقط
-- لا يمكن زيادة الراتب بنسبة اكبر من 15 فى المائة
-- يمكن التطوير للتعامل مع الحالات الاخرى
-- event = insert - update - delete
-- time = before - after
--------------------------------------------------

create table updatesalary (
rowno	 number(5)	primary key,
eno	 number(4),
osalary	 number(7,2),
nsalary	 number(7,2),
remark	 varchar2(100),
edate	 date	        default sysdate,
operator varchar2(40)	default user);

drop   sequence seq_rowed;

create sequence seq_rowed
increment by 1 
start with 100 ;
-----------------------------------------------------------
create or replace trigger trg_salary_update
before update of sal on emp 
for each row 
when (old.sal < new.sal) 
declare 
vremark varchar2(100);
begin if  not ((  (( :new.sal - :old.sal ) / :old.sal)  * 100 ) < 15 ) then
	raise_application_error ( -20001 , 'salary increased more than 15%');
end if ;
vremark := 'for example = Salary is increased ...  N % ';
insert into updatesalary (rowno            ,eno       ,osalary ,nsalary ,remark )
               values    (seq_rowed.nextval,:old.empno,:old.sal,:new.sal,vremark);
end ;
------------------------------------
update emp 
set sal = sal * 1.1
where empno = 7369[/align

];

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

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

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

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

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

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.