بتاريخ: 6 ديسمبر 200916 سنة comment_178433 اخواني واخواتي في اللهاحاول انشاء فانكشن ندخل لها اسم الجدول واسم الحقل المفتاح الاساسي فتقوم بالرجوع باخر قيمة مضاف عليها قيمة 1 لاستخدامها في ادخال قيمة جديدة في حل المفتاح الاساسي.من المفترض ان تكون جملة SQL والتي توضح تحت التريجر PRE-INSERT بالوضع القديم او المعتاد كالتالي:SELECT NVL(MAX(FIELD) , 0 ) + 1INTO :FIELDFROM TABLE_NAMEالمطلوب هو ان يكون اسم الحقل واسم الجدول متغيرانفتح الله عليكم من علمه تقديم بلاغ
بتاريخ: 6 ديسمبر 200916 سنة comment_178482 CREATE OR REPLACE FUNCTION GET_LAST_ID (P_TABLE_NAME VARCHAR2 , P_COLOMN_NAME VARCHAR2) RETURN NUMBER IS V_ID NUMBER (10); BEGIN SELECT NVL(MAX(_COLOMN_NAME) , 0 ) + 1 INTO V_ID FROM _TABLE_NAME; RETURN V_ID; END; -- عدل الكود دا وحطه فى program unite عندك على الفورم-- اعتقد ان الافضل استخدام الفانكشن دى فى ال POST INSERT-- كمان اجعل خصائص الفيلد Disabled. تم تعديل 6 ديسمبر 200916 سنة بواسطة theunique تقديم بلاغ
بتاريخ: 6 ديسمبر 200916 سنة كاتب الموضوع comment_178485 جزاك الله خيرا وبارك الله فيك وفي علمك ولكني لم اجد في الكود الذي كتبته جملة from فهل هذا مقصودة وسوف تعمل الجملة على ذلك ؟سؤال أخر : هل كانت محاولاتي في استخدام exec_sql او ref cursor خطأ حينما اردت عمل dynamic SQL افدني من علمك ... مشكووور تقديم بلاغ
بتاريخ: 6 ديسمبر 200916 سنة comment_178494 CREATE OR REPLACE FUNCTION GET_LAST_ID (P_TABLE_NAME VARCHAR2 , P_COLOMN_NAME VARCHAR2) RETURN NUMBER IS V_ID NUMBER (10); BEGIN SELECT NVL(MAX(_COLOMN_NAME) , 0 ) + 1 INTO V_ID FROM _TABLE_NAME; RETURN V_ID; END; -- From clause is included .... review the code pleaseانا مش شايف داعى ل Dynamic SQL or Cursor جرب الكود دا .... وعلى فكره الاسلوب دا مشابه للاسلوب المرشح من قبل اوراكل عند استخدام السيكوانس لو هتستخدمه فى عمل برايمرى .... انا مجربتش الكود على فكره ... اتمنى تجربه وتقولى الرد ... ولو فى تعديل ان شاء الله نعمله بالتوفيق تم تعديل 6 ديسمبر 200916 سنة بواسطة theunique تقديم بلاغ
بتاريخ: 6 ديسمبر 200916 سنة comment_178511 السلام عليكم ورحمة الله شكرا لك أخ / theunique اعتقد ان الافضل استخدام الفانكشن دى فى ال POST INSERT اعتقد أنك تقصد pre-insert تقديم بلاغ
بتاريخ: 7 ديسمبر 200916 سنة comment_178521 السلام عليكم ورحمة الله شكرا لك أخ / theuniqueاعتقد ان الافضل استخدام الفانكشن دى فى ال POST INSERT اعتقد أنك تقصد pre-insert شكرا اخى الفاضل على التنويه .... بالفعل انا اقصد ال PRE-INSERT Trigger تقديم بلاغ
بتاريخ: 19 ديسمبر 200916 سنة كاتب الموضوع comment_179730 بالتجربة يا اخواني اعطاني خطأ وهذا الخطأ كنت متوقعهحيث انه بمجرد وجود كلمة from فهو ينتظر ان يتبعها اسم الجدول ، ولذلك اعطى هذه الرسالة.table or view dose not existsوهذا ما أردته ان تتكون الجملة بكاملها على أنها String value ثم تنفذ بعدها بجملة exec_sql وهذه هي الفكرة التي اردت اخواني ان يساعدوني في تطبيقها.وحينها يستطيع فريق التطوير استخدام هذه الفانكشن للحصول على Primary Key بسهولة بمجرد امدادها باسم الجدول كمتغير نصي واسم الحقل كمتغير نصي أيضا.وفقكم الله تقديم بلاغ
بتاريخ: 1 يناير 201016 سنة كاتب الموضوع comment_181100 للأهمية وراح يستفيد منها كثير من المطورين انتظر رد من المشرفين والخبراء الاحباء تقديم بلاغ
بتاريخ: 2 يناير 201016 سنة comment_181189 CREATE OR REPLACE FUNCTION GET_MAX (P_TBL VARCHAR2,P_COL VARCHAR2) RETURN NUMBER IS V_MAX NUMBER; BEGIN execute immediate 'SELECT MAX('||P_COL||') FROM '||P_TBL into V_MAX ; RETURN V_MAX; END GET_MAX; / هذا الكود دايناميك لتنفيذ ما تريده استدعاءه SELECT GET_MAX ('EMP','EMP_NO') FROM DUAL تحياتي تقديم بلاغ
بتاريخ: 4 يناير 201016 سنة كاتب الموضوع comment_181373 صراحة معلم بارك الله فيك وجعله في ميزان حسناتكاخوك ابو عمر تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.