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

بتاريخ:

سلام

اريد إنشاء جدول اخزن فيه
1/ اسم المستخدم
2/ وقت الدخول
3/ وقت الخروج
4/ ...

بالنسبه للمستخدم هذي سهله وطبقتها إلا ان وقت الدخول والخروج والعمليات ما عرفتلها اكيد فيه طريقة مجربه

اريد الأفكار وإن وجد (مثال) وشكراً لكم

ماهر

بتاريخ:

السلام عليكم
يمكن انشاء جدول فيه الحقول التالية
user_name :the name ofd the user
,login_date
form_name,
table_name
,login_time
log_out_time
,event: ماذا عمل المستخدم حذف او ادخال ام تعديل ام استعلام
item_name :قيمة المفتاح الاساسي اذا اردت معرفة على اي سجل بالضبط تمت العملية ولكن تحتاج الى قليل من الكود
مثلا اذا حذف مستخدم معين الموظف رقم 5
تكون ال event هي حذف
item :emp_no=5

بتاريخ:

تحيه طيبه وبعد
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;
/



مع تحياتى ايهاب وجدى

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

اشكر لكم كرمكم



ماهر

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

عفواً أنا غيرت رأيي ( أبن ادم طماع )

انا اريد أن اعرف أكثر عن النقطة التي ذكرها الأخ king حول ( event: ) او الأحداث والعمليات من حذف وأضافه

بتاريخ:

about event you can write inside trigger


create or replace trigger audit_logoff_trigger
before logoff on database
begin
if 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;

بتاريخ:

تحيه طيبه وبعد
اعدل الى ماقيل


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;
/


وهكذا تقوم بتسجيل عمليات الحذف و التسجيل و تحديث على جدول معين
ملحوظه :- اكيد انت هاتفهم الكود من غير شرح . لو احتجة حاجه انا فى الخدمه

ايهاب وجدى

بتاريخ:

معلش نسيت اوضح حاجه
لبد من عمل جدول حتى يتم ادخال البيانات التى تم عمل اى عمليه عليه

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)
);



اى خدمه ياباشا
ملحوظه :- ياريت كل الاعضاء يرفعوا مستوى الاكود فى المنتدى بتقديم افضل ماعندمة ورجاء بالنظر الى الامضاء الخاص بى .

ايهاب وجدى

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

اشكركم بجدارة اخوتي




ماهر

بتاريخ:

السلام عليكم
اضبف على ما قاله الاخ 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 '
declare
login_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);

begin
global_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;

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

الف شكر لك اخي ردك واضح ووافي ويبقى علي التنفيذ



ماهر احمد

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

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

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

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

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

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.