الانتقال إلى المحتوى
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.

Trigger مراقبة العمليات

Featured Replies

بتاريخ:

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

اخي المبرمج الصاعد هذا كود مثل ما طلبت واكثر , وضعته هنا لتعميم الفائدة
TRIGGER لمعرفة عدد العمليات التي قام بها المستخدم علي جدول معين (اضافة , تعديل , حذف)

CREATE OR REPLACE TRIGGER PRO_COUNT
AFTER INSERT OR UPDATE OR DELETE ON EMP
FOR EACH ROW
BEGIN
IF INSERTING THEN
UPDATE TO_WACH
SET INS=INS+1
WHERE USER_NAME=USER AND TABLENAME='EMP' AND COL_NAME  IS NULL;
ELSIF UPDATING THEN
UPDATE TO_WACH
SET UPD=UPD+1
WHERE USER_NAME=USER AND TABLENAME='EMP' AND COL_NAME IS NULL;
ELSE
DELETING THEN
UPDATE TO_WACH
SET DEL=DEL+1
WHERE USER_NAME=USER AND TABLENAME='EMP' AND COL_NAME IS NULL;
END IF;
END;

تم تعديل بواسطة samdanger

بتاريخ:

الاخ الكريم
شكرا على هذا الكود المتميز منك .
ولكن عندى اضافة بسيطه وهى كالاتى اضافة NVL لانه فى اول مرة سوف تكون قيمة الحقل INS ب NULL

UPDATE TO_WACH
SET INS=NVL(INS,0) +1
WHERE USER_NAME=USER AND TABLENAME='EMP' AND COL_NAME  IS NULL;

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

شكر ا لك اخي العزيز ... كلامك صحيح

بتاريخ:

السلام عليكم

بصراحه قبل كم يوم قد طلب مني في عمل البروجيكت ان اضيف فورمة جديدة تعطي معلومات عن اللي عدل واضاف وحذف وعن الايتيم القديمة اللي انحذفت والتاريخ اللي تم فيه الحذف او التعديل او الاضافة وهذا ممكن ان يكون في ملف لوج. المشكلة ان التريجرز تبعك وتعبي على يتم وضعه في الداتا بيس وليس في الفورمز فانا ودي يكون في الفورمز وفي فورمة خاصة بالاوديت. فهل ممكن وضع هذا التريجرز في الفورمز. انا درست الاوراكل الاو سي بي ولكن في كورس بالبي ال اس كيو ال اخذ دروس في التريجرز ولكن هل نستخدمها هي نفسها في الفورمز ولا تختلف هيكل الكود لانه التريجرز هنا يتنفذ مباشرة في الداتا بيس ولكن بدي احوله الى كود اضعه في الفورمز وما نوع التريجرز المناسب في الفورمز.

طبعا نحتاج الى جدول

انا بالاول عملت هذا الجدول

CREATE TABLE USER_PRIV_LOG(
USER_ID VARCHAR2(20) PRIMARY KEY,
PASSWORD VARCHAR2(20),
LOG_NUM NUMBER(6),
TIME_LOGIN DATE,
TIME_LOGOUT DATE);
====================================================



CREATE TABLE user_login_audit (
    login_time     DATE,
    username        VARCHAR2(30),
    machine          VARCHAR2(30),
       command          VARCHAR2(128)
);

CREATE OR REPLACE TRIGGER user_login_trig
    AFTER LOGON ON scott.SCHEMA
DECLARE
 v_username sys.v_$session.username%TYPE;
 v_machine  sys.v_$session.machine%TYPE;
 v_command  sys.v_$session.command%TYPE;
BEGIN SELECT username, machine, command 
   INTO v_username, v_machine, v_command
   FROM sys.v_$session WHERE audsid = USERENV('SESSIONID') AND audsid != 0  -- Don't Check SYS Connections AND ROWNUM = 1;  -- Parallel processes will have the same AUDSID's

 INSERT INTO sys.user_login_audit VALUES (SYSDATE, v_username, v_machine, v_command);

 IF UPPER(v_machine) LIKE '%PC1%' THEN          -- Start SQL trace for users from PC1 DBMS_SESSION.set_sql_trace(TRUE);
 END IF;
END;

بتاريخ:

السلام عليكم
اشكرك اخي محمود على الكود...
انا عندي طريقة ولكنها على الفورم وهي كالتالي:
ممكن تضيف على الجدول الخاص بيك الاعمدة التالية:
inserted_by : وهو المستخدم الذي قام بعملية ادخال السجل.
modified_by: وهو المستخدم الذي قام بعملية التعديل على السجل.
modified_date: وهو تاريخ التعديل.

بعد ذلك على مستوى استم inserted_by من خصائص الايتم تروح على خاصية الــ initial value وتكتب فيها الكود التالي:

:GLOBAL.P_USER_ID



طبعا انت بتكون واضع اسم المستخدم بــ global variable بشاشة الدخول على البرنامج.

لمعرفة من قام بالتعديل على النظام وتاريخ التعديل...على ترجر pre-update اكتب كالتالي:

:BLK.MODIFIED_BY:=:GLOBAL.P_USER_ID;
:BLK.MODIFIED_DATE:=SYSDATE;



ولكن الترجر على الداتا بيز افضل....
وسؤال اخي محمود ؟؟؟
هل هذا الترجر يقوم بتسجيل هذه الحركات التي قام بها كليا ولا اخر حركه ؟؟؟
تحياتي...

  • بعد 2 أسابيع...
بتاريخ:
  • كاتب الموضوع

نعم اخي "اوراكل فلسطين"

هذا الكود يقوم بتسجيل عدد الحركات التي قام بها المستخدم (اضافة , تعديل , حذف) علي جدول معين
وليس اخر حركة فقط

بتاريخ:
نعم اخي "اوراكل فلسطين"

هذا الكود يقوم بتسجيل عدد الحركات التي قام بها المستخدم (اضافة , تعديل , حذف) علي جدول معين
وليس اخر حركة فقط


اشكرك أخي محمود..
perfect work
بالتوفيق
بتاريخ:
  • كاتب الموضوع

THANKS , YOU ARE PERFECT MAN , AND ALWAYS YOU HAVE NEW IDEAS..... AGAIN ... THANKS

بتاريخ:

شكرا للجميع على المشاركات المتميزة

والفكرة الجديده مع حالة الغاء السجل وهذه من المتابعات الهامة للرقابة والمراقبة

كيف سيتم تسجيل السجل الذى تم الغاؤه مع كتابة رقم المستخدم الذى قام بعملية الالغاء ... مع العلم ان المستخدم هو المستخدم من داخل التطبيق( البرنامج) وليس مستخدم الدخول user id
اي ان المراقبة ستتم من داخل الفورم وبعد الدخول على برامج النظام
كيف يتم ذلك ؟

يوجد لدي حل مقترح ... وانتظر رايكم اولا

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

اخي العزيز ...

هذا الكود لتسجيل عدد الحركات التي يقوم بها المستخدم علي الجدول (اضافة و تعديل و حذف).

امــــا اذا اردت التعمق في التفاصيل اكثر , فقد وضعت كود لمعرفة ادق تفاصيل العمليات التي قام بها المستخدم ,وذلك في مشاركة سابقة باسم "التحكم بالمستخدمين و العمليات التي يقوم بها المستخدمين"

بالتوفيق...........

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

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

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

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

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

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.