الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

عملية التعديل

مغلق
بدأه shayma'a في 7 فبراير 2002 · 7 رد · 789 مشاهدة · في قواعد بيانات Oracle
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

كيف يمكن إجراء عملية التعديل على بيانات

شرط أن لا يتم تكرار اي من البيانات الموجودة على ال form

#2

بعد التحية...

تتم عملية التعديل و حفظ البيانات من خلال جملة

Do_Key('Commit_Form');

او

Commit_form;

#3

(g) (g) (g)

#4

لكي تتضح لنا الصورة، ارجو توضيح التالي

1. ماهي الجداول المطلوب إدخال البيانات عليها أو تعديلها

2. نوع العلاقة بينها، وعلى اي أساس يتم تحديد إذا كانت البيانات ستضاف أو تعدل

3. ما هي ال constrants الموجودة على الجداول، فبدون هذه المعلمومات يصعب علينا فهم الأمر، أرجو التوضيح لنفيدك

وآسف للتأخير

#5

الجداول المستخدمة هي:

prompt ملف كتب السوق القادمة من المراكز الجمركية

---------------------------------------

create table soq_book

( center_no number(3),

book_no varchar2(5),

book_date date,

book_type number(1),

user_id varchar2(8),

entry_date date ,

NOTES VARCHAR2(250),

constraint soq_pk primary key(center_no,book_no,book_type,book_date)

);

-------------------------------------------

prompt ملف المعاملات المساقة

--------------------------------------------

create table soq_decs

( center_no number(3) ,

book_no varchar2(5) ,

book_date date ,

book_type number(1) ,

dec_no number(5) ,

dec_type number(2) ,

dec_year number(4) ,

user_id varchar2(8) ,

entry_date date ,

import_name varchar2(100),

constraint soq_decs_Fk FOREIGN key(center_no,book_no,book_type,book_date)

REFERENCES SOQ_BOOK(center_no,book_no,book_type,book_date) );

ملاحظة :... البيانات في هذا الجدول ترحل ترحيل من مراكز اخرى

لذا ليس عليه PK

-----------------------------------------------

العلاقة بينهما هي mster&detail

تتم عملية التعديل على ال detail فقط

بالاخص على الحقول التالية ( رقم البيان ويتكون من 3 خانات (رقم ، نوع ، سنة) )

رقم البيان

1 11 2001

2 11 2001

3 11 2001

4 11 2001

عند عملية التعديل لا يجب تكرار اي رقم من ارقام البيان

#6

استعملت trigger pre_insert وفيه الكود التالي

DECLARE

CURSOR CUR_DEC IS

SELECT BOOK_NO,BOOK_TYPE,BOOK_DATE,CENTER_NO,

DEC_NO,DEC_TYPE,DEC_YEAR

FROM SOQ_DECS

WHERE

CENTER_NO =:SOQ_DECS.CENTER_NO AND

BOOK_NO = :SOQ_DECS.BOOK_NO AND

BOOK_TYPE =:SOQ_DECS.BOOK_TYPE AND

BOOK_DATE =:SOQ_DECS.BOOK_DATE AND

DEC_NO =:SOQ_DECS.DEC_NO AND

DEC_TYPE =:SOQ_DECS.DEC_TYPE AND

DEC_YEAR =:SOQ_DECS.DEC_YEAR ;

DECS_RECORD CUR_DEC%ROWTYPE;

/*-------------------------------------------------------*/

BEGIN

OPEN CUR_DEC ;

FETCH CUR_DEC INTO DECS_RECORD;

IF CUR_DEC%FOUND THEN

MESSAGE('تم تكرار ادخال رقم البيان الجمركي ..');

RAISE FORM_TRIGGER_FAILURE;

END IF;

CLOSE CUR_DEC;

END;

/*-------------------------------------------------------*/

وهو يعمل بشكل صحيح لكن إذا حاولت استعماله في trigger pre_update فلم ينجح ذلك

فما هو الtrigger او الكود الصحيح لعمل ذلك

#7

حاولي عمل loop ليأخذ ال data من ال form ويقوم بمقارنتها

ليقوم بمقارنتها مع القيمة المدخلة

#8

(f) (f) (f) (f) (f)

هذا الموضوع مغلق.

مواضيع مشابهة