بتاريخ: 4 أبريل 200619 سنة comment_65279 سلام اريد إنشاء جدول اخزن فيه 1/ اسم المستخدم2/ وقت الدخول 3/ وقت الخروج 4/ ...بالنسبه للمستخدم هذي سهله وطبقتها إلا ان وقت الدخول والخروج والعمليات ما عرفتلها اكيد فيه طريقة مجربه اريد الأفكار وإن وجد (مثال) وشكراً لكم ماهر تقديم بلاغ
بتاريخ: 4 أبريل 200619 سنة comment_65324 السلام عليكميمكن انشاء جدول فيه الحقول التاليةuser_name :the name ofd the user,login_dateform_name,table_name,login_timelog_out_time,event: ماذا عمل المستخدم حذف او ادخال ام تعديل ام استعلامitem_name :قيمة المفتاح الاساسي اذا اردت معرفة على اي سجل بالضبط تمت العملية ولكن تحتاج الى قليل من الكودمثلا اذا حذف مستخدم معين الموظف رقم 5تكون ال event هي حذفitem :emp_no=5 تقديم بلاغ
بتاريخ: 4 أبريل 200619 سنة comment_65333 تحيه طيبه وبعد1- الجدول create table audit_connection_table (user_name varchar2(30) , time_stamp varchar2(15), date_stamp date, action varchar2(10)); 2- الtrigger create or replace trigger audit_logon_trigger after logon on database begin insert into audit_connection_table values (user,TO_CHAR (SYSDATE,'HH24:MI:SS'),sysdate,'log on'); end; / create or replace trigger audit_logoff_trigger before logoff on database begin insert into audit_connection_table values (user,TO_CHAR (SYSDATE,'HH24:MI:SS'),sysdate,'log off'); end; / مع تحياتى ايهاب وجدى تقديم بلاغ
بتاريخ: 5 أبريل 200619 سنة كاتب الموضوع comment_65428 عفواً أنا غيرت رأيي ( أبن ادم طماع )انا اريد أن اعرف أكثر عن النقطة التي ذكرها الأخ king حول ( event: ) او الأحداث والعمليات من حذف وأضافه تقديم بلاغ
بتاريخ: 5 أبريل 200619 سنة comment_65431 about event you can write inside trigger create or replace trigger audit_logoff_triggerbefore logoff on database beginif inserting then <write any thing you need in inserting case>elsif deleting then <write any thing you want in delete case>elsif updating then <write any thing you want in update case>end if;end; تقديم بلاغ
بتاريخ: 5 أبريل 200619 سنة comment_65438 تحيه طيبه وبعد اعدل الى ماقيل CREATE OR REPLACE TRIGGER AUDIT_BILLS BEFORE INSERT OR UPDATE OR DELETE ON BILLS FOR EACH ROW BEGIN IF INSERTING THEN INSERT INTO AUDITING_BILLS VALUES(:NEW.APARTENTS_NO,:NEW.BILL_NUMBER,:NEW.C_NUMBER, USER,'إدخال',SYSDATE,NULL,:NEW.BILL_DATE,NULL,:NEW.RENT_COST,NULL,:NEW.CALL_COST,NULL, :NEW.SERVIES_COST); ELSIF DELETING THEN INSERT INTO AUDITING_BILLS VALUES(:OLD.APARTENTS_NO,:OLD.BILL_NUMBER,:OLD.C_NUMBER, USER,'حذف',SYSDATE,:OLD.BILL_DATE,NULL,:OLD.RENT_COST,NULL,:OLD.CALL_COST,NULL, :OLD.SERVIES_COST,NULL); ELSE INSERT INTO AUDITING_BILLS VALUES(:NEW.APARTENTS_NO,:NEW.BILL_NUMBER,:NEW.C_NUMBER, USER,'تعديل',SYSDATE,:OLD.BILL_DATE,:NEW.BILL_DATE,:OLD.RENT_COST,:NEW.RENT_COST, :OLD.CALL_COST, :NEW.CALL_COST,:OLD.SERVIES_COST,:NEW.SERVIES_COST); END IF; END; / وهكذا تقوم بتسجيل عمليات الحذف و التسجيل و تحديث على جدول معين ملحوظه :- اكيد انت هاتفهم الكود من غير شرح . لو احتجة حاجه انا فى الخدمهايهاب وجدى تقديم بلاغ
بتاريخ: 5 أبريل 200619 سنة comment_65442 معلش نسيت اوضح حاجهلبد من عمل جدول حتى يتم ادخال البيانات التى تم عمل اى عمليه عليه CREATE TABLE AUDITING_RESTRAINED ( C_NUMBER1 NUMBER(6), C_NUMBER2 NUMBER(6), RESTRAIN_NO1 NUMBER(6), RESTRAIN_NO2 NUMBER(6), APARTENTES_NO1 NUMBER(3), APARTENTES_NO2 NUMBER(3), C_USER VARCHAR2(20), COMM VARCHAR2(20), C_DATE DATE, EXPECTING_ENTRY_DATE1 DATE, EXPECTING_ENTRY_DATE2 DATE, EXPECTING_LEAVING_DATE1 DATE, EXPECTING_LEAVING_DATE2 DATE, RESTRAIN_TYPE1 VARCHAR2(30), RESTRAIN_TYPE2 VARCHAR2(30), RESTRAIN_COORDINATOR1 VARCHAR2(40), RESTRAIN_COORDINATOR2 VARCHAR2(40), SPENT_TYPE1 VARCHAR2(25), SPENT_TYPE2 VARCHAR2(25), BOND_NO1 VARCHAR2(30), BOND_NO2 VARCHAR2(30) ); اى خدمه ياباشاملحوظه :- ياريت كل الاعضاء يرفعوا مستوى الاكود فى المنتدى بتقديم افضل ماعندمة ورجاء بالنظر الى الامضاء الخاص بى .ايهاب وجدى تقديم بلاغ
بتاريخ: 6 أبريل 200619 سنة comment_65520 السلام عليكماضبف على ما قاله الاخ Hobbaبالنسبة لموضوع ال event يمكن عمل الترجرز على مستوى الفورمز اذا كان حذف تكت الكود في الترجر post_deleteاذا كان استعلام نكتب الكود في الترجر post_query وهكذاوساكتب مثال مثلا لو كان ادخال نكتب هذا الكود في pre-insertبس ملاحظة انا عندي اكثر من فورم وبستخدم نفس المتغيرات من نوع global وعندما انتقل من فورم الى فورم وحتى اضمن عدم حدوث اخطاء عملت packege وسميتها global_pkg وفيها بعمل set و get function يعني مثلا عند الدخول الى الفورم بعمل global_pkg.set_form_name(:system.current_form);global_pkg.set_login_date(sysdate);global_pkg.set_log_in_time(to_char(SYSDATE,'hh24:MI:ss'));وبقرا هذه القيم لما احتاجهم عن طريق ال getوهذا مثال ال insert------------------------------------------to get the event name=='insert 'declarelogin_date date;log_in_time varchar2(100);form_name varchar2(100);item_name varchar2(100);event varchar2(50);table_name varchar2(100);record_name varchar2(100);beginglobal_pkg.set_item_name(get_block_property(NAME_IN('SYSTEM.CURSOR_BLOCK'),FIRST_ITEM));global_pkg.set_event('INSERT');global_pkg.set_table_name(get_block_property(NAME_IN('SYSTEM.CURSOR_BLOCK'),DML_DATA_TARGET_NAME));global_pkg.set_record_name(:SYSTEM.CURSOR_RECORD);login_date:=global_pkg.get_login_date;log_in_time:= global_pkg.get_log_in_time;form_name :=global_pkg.get_form_name;item_name:=global_pkg.get_item_name;event:=global_pkg.get_event;table_name :=global_pkg.get_table_name;record_name:=global_pkg.get_record_name;insert into user_events values(:global.user_name,login_date,form_name,table_name,log_in_time,'',record_name,event,item_name||'='||:COMPLAINTEES.c_no);commit;end; تقديم بلاغ
بتاريخ: 7 أبريل 200619 سنة كاتب الموضوع comment_65662 الف شكر لك اخي ردك واضح ووافي ويبقى علي التنفيذماهر احمد تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.