بتاريخ: 26 يوليو 200916 سنة comment_164563 بسم الله الرحمن الرحيماخي المبرمج الصاعد هذا كود مثل ما طلبت واكثر , وضعته هنا لتعميم الفائدة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; تم تعديل 26 يوليو 200916 سنة بواسطة samdanger تقديم بلاغ
بتاريخ: 26 يوليو 200916 سنة comment_164567 الاخ الكريم شكرا على هذا الكود المتميز منك . ولكن عندى اضافة بسيطه وهى كالاتى اضافة NVL لانه فى اول مرة سوف تكون قيمة الحقل INS ب NULL UPDATE TO_WACH SET INS=NVL(INS,0) +1 WHERE USER_NAME=USER AND TABLENAME='EMP' AND COL_NAME IS NULL; تقديم بلاغ
بتاريخ: 26 يوليو 200916 سنة كاتب الموضوع comment_164583 شكر ا لك اخي العزيز ... كلامك صحيح تقديم بلاغ
بتاريخ: 26 يوليو 200916 سنة comment_164593 السلام عليكم بصراحه قبل كم يوم قد طلب مني في عمل البروجيكت ان اضيف فورمة جديدة تعطي معلومات عن اللي عدل واضاف وحذف وعن الايتيم القديمة اللي انحذفت والتاريخ اللي تم فيه الحذف او التعديل او الاضافة وهذا ممكن ان يكون في ملف لوج. المشكلة ان التريجرز تبعك وتعبي على يتم وضعه في الداتا بيس وليس في الفورمز فانا ودي يكون في الفورمز وفي فورمة خاصة بالاوديت. فهل ممكن وضع هذا التريجرز في الفورمز. انا درست الاوراكل الاو سي بي ولكن في كورس بالبي ال اس كيو ال اخذ دروس في التريجرز ولكن هل نستخدمها هي نفسها في الفورمز ولا تختلف هيكل الكود لانه التريجرز هنا يتنفذ مباشرة في الداتا بيس ولكن بدي احوله الى كود اضعه في الفورمز وما نوع التريجرز المناسب في الفورمز.طبعا نحتاج الى جدولانا بالاول عملت هذا الجدول 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; تقديم بلاغ
بتاريخ: 26 يوليو 200916 سنة comment_164627 السلام عليكماشكرك اخي محمود على الكود...انا عندي طريقة ولكنها على الفورم وهي كالتالي:ممكن تضيف على الجدول الخاص بيك الاعمدة التالية: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; ولكن الترجر على الداتا بيز افضل....وسؤال اخي محمود ؟؟؟هل هذا الترجر يقوم بتسجيل هذه الحركات التي قام بها كليا ولا اخر حركه ؟؟؟تحياتي... تقديم بلاغ
بتاريخ: 6 أغسطس 200916 سنة كاتب الموضوع comment_165751 نعم اخي "اوراكل فلسطين"هذا الكود يقوم بتسجيل عدد الحركات التي قام بها المستخدم (اضافة , تعديل , حذف) علي جدول معينوليس اخر حركة فقط تقديم بلاغ
بتاريخ: 6 أغسطس 200916 سنة comment_165756 نعم اخي "اوراكل فلسطين"هذا الكود يقوم بتسجيل عدد الحركات التي قام بها المستخدم (اضافة , تعديل , حذف) علي جدول معينوليس اخر حركة فقط اشكرك أخي محمود..perfect workبالتوفيق تقديم بلاغ
بتاريخ: 6 أغسطس 200916 سنة كاتب الموضوع comment_165760 THANKS , YOU ARE PERFECT MAN , AND ALWAYS YOU HAVE NEW IDEAS..... AGAIN ... THANKS تقديم بلاغ
بتاريخ: 10 أغسطس 200916 سنة comment_165994 شكرا للجميع على المشاركات المتميزة والفكرة الجديده مع حالة الغاء السجل وهذه من المتابعات الهامة للرقابة والمراقبة كيف سيتم تسجيل السجل الذى تم الغاؤه مع كتابة رقم المستخدم الذى قام بعملية الالغاء ... مع العلم ان المستخدم هو المستخدم من داخل التطبيق( البرنامج) وليس مستخدم الدخول user id اي ان المراقبة ستتم من داخل الفورم وبعد الدخول على برامج النظام كيف يتم ذلك ؟ يوجد لدي حل مقترح ... وانتظر رايكم اولا تقديم بلاغ
بتاريخ: 10 أغسطس 200916 سنة كاتب الموضوع comment_165995 اخي العزيز ...هذا الكود لتسجيل عدد الحركات التي يقوم بها المستخدم علي الجدول (اضافة و تعديل و حذف).امــــا اذا اردت التعمق في التفاصيل اكثر , فقد وضعت كود لمعرفة ادق تفاصيل العمليات التي قام بها المستخدم ,وذلك في مشاركة سابقة باسم "التحكم بالمستخدمين و العمليات التي يقوم بها المستخدمين"بالتوفيق........... تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.