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

كيف يمكن حدف البيانات كامله من الجداول اي تهيئة البرنامج

بدأه هاشم6210982 في 12 يونيو 2009 · 5 رد · 1,619 مشاهدة · في قواعد بيانات Oracle
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

كيف يمكن حدف البيانات كامله من الجداول اي تهيئة البرنامج انا امتلك 26 جدول انا عملت الكود تبعي في الدفلوبر 6i وقاعدة بيانات 8i هاهو الكود

DECLARE

 

BEGIN

DELETE FROM T_BANK_V;

commit;

DELETE FROM T_BANK_F;

commit;

DELETE FROM T_BANK_T;

commit;

DELETE FROM T_BANK_S;

commit;

DELETE FROM T_SIND_V;

commit;

DELETE FROM T_SIND_F;

commit;

DELETE FROM T_SIND_T;

commit;

DELETE FROM T_SIND_S;

commit;

DELETE FROM INSRNC;

commit;

DELETE FROM VHCL;

commit;

DELETE FROM FIR;

commit;

DELETE FROM TRANS;

commit;

DELETE FROM SCL;

commit;

DELETE FROM CUST;

commit;

DELETE FROM BLD_TYP;

commit;

DELETE FROM FORM_STRU;

commit;

DELETE FROM MEA_TRAN;

commit;

DELETE FROM PACK;

commit;

DELETE FROM PUR_USE;

commit;

DELETE FROM TYP_CARDS;

commit;

DELETE FROM TYP_CURR;

commit;

DELETE FROM TYP_METH;

commit;

DELETE FROM TYP_INS;

commit;

DELETE FROM TYP_NATI;

commit;

DELETE FROM VEHI_TABLE;

commit;

DELETE FROM VHCL_TYP;

commit;

END;

اي حدف من كل الجداول انه يحف من جدول التفاصيل الى الجدول الرئيسي نعم انه حدف البيانات لكن كل مايحدف جدول يطلعلي رساله

  FRM-40401 لم يحدث اي تغيير لاجراء الحفظ

وعندما ينتهي من حدف الجداول وعرض الرسائل يخرجلي رساله 

  FRM-40735 الزناد WHEN_BUTTON_PRESSED تسبب في استثناء غير المعالج ORA-00604

هل هناك كود اسهل من هذا الكود يحدف جميع البيانات ومن دون مشاكل افييدوني بعلمكم

وايضا كيف منع رسائل الحفظ من الطهور

#2

اخي الكريم غير طريقة عملك إلى تلقائية ، حاول إستخدام التعليمة التالية :

يجب أن تحتوي جميع الجداول لديك على قيد واحد على الأقل

CREATE OR REPLACE PROCEDURE TRUNCATE_ALL_TABLES 
IS
	CURSOR C1 IS 
	   SELECT 
	   UC.TABLE_NAME  ,
	   UC.CONSTRAINT_NAME ,
	   LEVEL AS TLEVEL
	   FROM ( SELECT * FROM 
	   USER_CONSTRAINTS UCI
   	  WHERE UCI.TABLE_NAME IN (SELECT TABLE_NAME FROM USER_TABLES) ) UC
	  CONNECT BY PRIOR UC.CONSTRAINT_NAME = UC.R_CONSTRAINT_NAME;

	CURSOR C2 IS
	  SELECT DISTINCT TABLE_NAME FROM ( 
		 SELECT 
	   UC.TABLE_NAME  ,
	   UC.CONSTRAINT_NAME ,
	   LEVEL AS TLEVEL
	   FROM ( SELECT * FROM 
	   USER_CONSTRAINTS UCI
   	  WHERE UCI.TABLE_NAME IN (SELECT TABLE_NAME FROM USER_TABLES) ) UC
	  CONNECT BY PRIOR UC.CONSTRAINT_NAME = UC.R_CONSTRAINT_NAME );

	CURSOR C3 IS 
	   SELECT 
	   UC.TABLE_NAME  ,
	   UC.CONSTRAINT_NAME ,
	   LEVEL AS TLEVEL
	   FROM USER_CONSTRAINTS UC
	  CONNECT BY PRIOR UC.CONSTRAINT_NAME = UC.R_CONSTRAINT_NAME 
	  START WITH UC.CONSTRAINT_TYPE = 'P';

	  V_SQL VARCHAR2(1000);
	  V_TABLE VARCHAR2(50);
	  V_CONSTRAINT VARCHAR2(50);
	  V_LEVEL NUMBER;
BEGIN
	OPEN C1;
	LOOP
		FETCH C1 INTO V_TABLE,V_CONSTRAINT,V_LEVEL;
		EXIT WHEN C1%NOTFOUND;
		V_SQL := 'ALTER TABLE '||V_TABLE||' DISABLE CONSTRAINT '||V_CONSTRAINT||' ';
		--DBMS_OUTPUT.PUT_LINE(V_SQL); 
		EXECUTE IMMEDIATE (V_SQL);
--		MESSAGE('Table :'||v_table||',was truncated seccessfully.');
	END LOOP;
CLOSE C1;
OPEN C2;		
	LOOP
		FETCH C2 INTO V_TABLE;
		EXIT WHEN C2%NOTFOUND;
		--V_SQL := 'DELETE FROM '||V_TABLE||';';
		/* You Can use Truncate by Enabling This futhure.*/
		V_SQL := 'TRUNCATE TABLE '||V_TABLE||' ';
		--DBMS_OUTPUT.PUT_LINE(V_SQL); 
		EXECUTE IMMEDIATE (V_SQL);
		EXECUTE IMMEDIATE ('commit');
		--MESSAGE('Table :'||v_table||',was truncated seccessfully.');
	END LOOP;
CLOSE C2;

	OPEN C3;
	LOOP
		FETCH C3 INTO V_TABLE,V_CONSTRAINT,V_LEVEL;
		EXIT WHEN C3%NOTFOUND;
		V_SQL := 'ALTER TABLE '||V_TABLE||' ENABLE CONSTRAINT '||V_CONSTRAINT||' '; 
		--DBMS_OUTPUT.PUT_LINE(V_SQL);
		EXECUTE IMMEDIATE (V_SQL);
--		MESSAGE('Table :'||v_table||',was truncated seccessfully.');
	END LOOP;

	CLOSE C3;
/*
EXCEPTION WHEN OTHERS THEN
	MESSAGE(error_text||SQLERRM);
	MESSAGE(error_text||SQLERRM);
	RAISE FORM_TRIGGER_FAILURE;
	*/
END;
#3

الف شكر يا أخي الفكرة رائعة وسوفا اعملها المهم الف شكر

واريد منك معروفا بخصوص الصلاحيات هل الصلاحيات تكون في نفس قاعدة البيانات انا اعرف انها تكون في قاعدة اخرى لو عندك بعض المعلومات وايضا كيف اعمل شاشة الصلاحيات ليس عندي اي فكرة كيف سوفا اعملها وانا متاسف لو اثقلت عليك بطلبي ولكن لكي انتهى من مشروعي مشروع التامينات وانا لم اكن احسب حساباً إني سوفا اعمل صلاحيات وفي البرنامج و بعض البلك مفصول عن قاعدة البيانات ولكن ياخد البيانات من لوف وهل ادع جمله الاستعلام كما هي او اغيرها لاجل الصلاحيات ارجو ان تفيدني بعلمك ولو بمثال

#4

اخي الكريم

العفوا ولي رجاء

الرجاء إعادة كتابة طلبات وأفكارك بنقاط مع توضيح كل نقطة إذا وجبت

كذا امورك كلها سردتها مع بعض انا بصراحة ليس لدي الوقت لكي أستخرج منها جميع ماتريد .

:)

الترتيب من أهم متطلبات المبرمج الناجح

بالتوفيق ،،

#5

هل الصلاحيات تكون في نفس قاعدة البيانات اعطيني فكرة عنها 

هل اعدل بعض جمل لوف في الاستعلام في مشروعي اذا انا بركب الصلاحيات

كيف اعمل شاشة صلاحية لا توجد عندي فكرة

 

#6
اقتباس
هل الصلاحيات تكون في نفس قاعدة البيانات اعطيني فكرة عنها

طبعاً هناك دائماً نوعين من الصلاحيات

1- على مستوى قاعدة البيانات وتمكنك من عمل مستخدم على القاعدة لنفس المستخدم ، وأيضاً تمكن من عمل Policies لعرض البيانات حسب المستخدم .

-- شرحها يطول

2- على مستوى الجداول أي تقوم انت بإعادة عمل النظام عندك ليدعم صلاحيات المستخدمين منذ دخوله إلى خروجه .

-- شرحها أيضاً يطول

اقتباس
هل اعدل بعض جمل لوف في الاستعلام في مشروعي اذا انا بركب الصلاحيات

طبعأً يحتاج على حسب النظام والصلاحيات لديك

مثلاً إذا كانت لديك بعض الشاشات خاصة بموظفين معينين فإنك ترغب بعرض بيانات هذه الجداول للمستخدمين من إدارتهم فقط واحياناً قد تحتاج لفلترة البيانات إلى مستوى المستخدم

بإختصار حسب الحاجة

اقتباس
كيف اعمل شاشة صلاحية لا توجد عندي فكرة

موضوع الصلاحيات لايمكن عمله كله بشاشة وحدة ،،

ولكن كفكرة عامة لديك الشاشات التالية :

* نظام الصلاحيات

- تعريف الأنظمة والشاشات والتقارير "تكويدات النظام".

- تعريفات مجموعات الصلاحيات .

- تعريفات مستخدمين النظام .

- صلاحيات المجموعات . " من شاشات وتقارير وأنظمة وتحدد تفصيل الصلاحية ( فتح - استعلام - حذف - تعديل - إضافة - طباعة ) .

- صلاحيات المستخدم . " تحدد هنا المجموعات التي تعطى للمستخدم ، حيث ان المجموعة الواحدة تحتوي على مجموعة صلاحيات " .

- شاشة تسجيل الدخول مرتبطة بإدخال إسم مستخدم وكلمة مرور .

- شاشة الأنظمة الرئيسية يتم تعبئتها حسب الصلاحيات .

- جميع الشاشات الأخرى يتم كتابة أكواد تتحقق من الصلاحية مع الأحداث الخاصة بها .

بالتوفيق ،،

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…