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

Pl/sql In Adf

Featured Replies

بتاريخ:

هل يوجد فيديو لموضوع استخدام ال pl/sqln فى ال adf

بتاريخ:

هذا رابط الدرس يتكون من جزئين 

رابط الجزء الأول 

 

 

رابط الجزء الثاني 

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

اشكرك يا استاذة  والفيديو واضح ونقى جدا 

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

عتد تطبيق هذا الفيديو ب2 باراميتر احدهما تاريخ date والاخر int  اتسحب ال int  ولم يتم سحب التاريخ فى الجزء الخاص بال plsqloperation 

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

هل سؤالى غير واضح  اكتب بصورة اخرى

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

عتد تطبيق هذا الفيديو ب2 باراميتر احدهما تاريخ date والاخر int  اتسحب ال int  ولم يتم سحب التاريخ فى الجزء الخاص بال plsqloperation 

بتاريخ:

هل تابعت المحاضرة كيف تم تطبيق الكود في البداية تم تطبيق داخل sql  والحصول على نتيجة 

بعدها تم أخذ الكود وتطبيقة داخل تطبيق الـ ADF ليسهل معرفة وتحديد أين ومتى ييم حدوث الخطأ 

فهل حصلت على نتيجة صحيحة بالـ sql ؟

حسناً بما أنه لا تظهر رسالة خطأ ويتم تنفيذ بإرجاع قيمة int  وعدم إرجاع قيمة Date

 إذن هنالك Exception  يحدث وقت التنفيذ فمن كلام حضرتك قد تم تجاوز مرحلة الـ compilation 

تأكد من الـ exception  بماذا يشير وعلى الأغلب يكون خطأ في data type  

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

اقصد بكلمة سحب متغير ال int   وعدم سحب ال date   هو سحب الباراميتر اللى نشأ من ال  client interface من ال date control الى ال page   لا يسحب باراميتر التاريخ date يسحب فقط ال int

بتاريخ:

بصراحة غير واضح لم أفهم ما المشكلة بالضبط 

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

المثال مثل مثال الفيديو مع تغير فقط الباراميتر احدهم date والاخر  int  

وال 3 package  التى تكونت

package model.uiview;
 
import java.sql.CallableStatement;
 
import java.sql.Date;
 
import oracle.jbo.server.ViewObjectImpl;
 
 
 
 
// ---------------------------------------------------------------------
// ---    File generated by Oracle ADF Business Components Design Time.
// ---    Fri Dec 11 08:31:07 EET 2015
// ---    Custom code may be added to this class.
// ---    Warning: Do not modify method signatures of generated methods.
// ---------------------------------------------------------------------
public class FinYearViewImpl extends ViewObjectImpl {
    /**
     * This is the default constructor (do not remove).
     */
    public FinYearViewImpl() {
    }
    public int update_System_Date(Date UP_DATE,int DATEID){
                  
                   int result=0;
                  String PlSQLCode=
                      "BEGIN\n" + 
                      "Update Fin_Year F\n" + 
                      "Set F.Sys_Date =?\n" + 
                      "Where \n" + 
                      "F.Date_Id=?;\n" +                                     
                      "END;\n" ;               
                CallableStatement stat=null;     
                try {
                    stat=getDBTransaction().createCallableStatement(PlSQLCode,getDBTransaction().DEFAULT);
                    stat.setDate(1, UP_DATE);
                    stat.setInt(2, DATEID);
                    result=stat.executeUpdate();
                } catch (Exception e) {
                    // TODO: Add catch code
                    e.printStackTrace();
                } finally {
                  try {
                        stat.close();     
                    } catch (Exception e) {
                        // TODO: Add catch code
                        e.printStackTrace();
                    }  
                   
                }                 
              return result;  
            }    
}

 

 
 
package model.uiview.common;
 
import java.sql.Date;
 
import oracle.jbo.ViewObject;
// ---------------------------------------------------------------------
// ---    File generated by Oracle ADF Business Components Design Time.
// ---    Fri Dec 11 08:48:13 EET 2015
// ---------------------------------------------------------------------
public interface FinYearView extends ViewObject {
    int update_System_Date(Date UP_DATE, int DATEID);
}
 
 
 
 
package model.uiview.client;
 
import java.sql.Date;
 
import model.uiview.common.FinYearView;
 
import oracle.jbo.client.remote.ViewUsageImpl;
// ---------------------------------------------------------------------
// ---    File generated by Oracle ADF Business Components Design Time.
// ---    Fri Dec 11 08:48:13 EET 2015
// ---    Custom code may be added to this class.
// ---    Warning: Do not modify method signatures of generated methods.
// ---------------------------------------------------------------------
public class FinYearViewClient extends ViewUsageImpl implements FinYearView {
    /**
     * This is the default constructor (do not remove).
     */
    public FinYearViewClient() {
    }
 
    public int update_System_Date(Date UP_DATE, int DATEID) {
        Object _ret =
            getApplicationModuleProxy().riInvokeExportedMethod(this,"update_System_Date",new String [] {"java.sql.Date","int"},new Object[] {UP_DATE, new Integer(DATEID)});
        return ((Integer)_ret).intValue();
    }
}
 

المشكلة :

بعد عمل ال client interface   

,ومن ال data control

يظهر ال 2 باراميتر الdate , int

عند السحب من ال data control  الى ال page  ds بال adf parameter form 

يظهر ال باراميتر ال int فقط ولا يظهر ال باراميتر ال date   فى EDIT FORM FIELDS

بتاريخ:

حسناً في method   الـ  update_System_Date

قم بتعريف المتغير UP_DATE نوع Timestamp 

وعند إسناد له قيمة يكون بهذه الصيغة 

    stat.setTimestamp(1, UP_DATE);
بتاريخ:
  • كاتب الموضوع

شكرا يا استاذة غيرت الكود كما حضرتك وضحتى ولكن ظلت المشكلة كما هى

ملحوظة فى ال    package model.uiview.client;

يوجد خط تحت                   public class FinYearViewClient extends ViewUsageImpl implements FinYearView {

package model.uiview;

 
import java.sql.CallableStatement;
import model.uiview.common.FinYearView;
import java.sql.Timestamp;
import oracle.jbo.server.ViewObjectImpl;
// ---------------------------------------------------------------------
// ---    File generated by Oracle ADF Business Components Design Time.
// ---    Fri Dec 11 11:08:47 EET 2015
// ---    Custom code may be added to this class.
// ---    Warning: Do not modify method signatures of generated methods.
// ---------------------------------------------------------------------
public class FinYearViewImpl extends ViewObjectImpl implements FinYearView {
    /**
     * This is the default constructor (do not remove).
     */
    public FinYearViewImpl() {
    }
    public int update_System_Date(Timestamp  UP_DATE,int DATEID){
                     
                      int result=0;
                     String PlSQLCode=
                         "BEGIN\n" + 
                         "Update Fin_Year F\n" + 
                         "Set F.Sys_Date =?\n" + 
                         "Where \n" + 
                         "F.Date_Id=?;\n" +                                     
                         "END;\n" ;               
                   CallableStatement stat=null;     
                   try {
                       stat=getDBTransaction().createCallableStatement(PlSQLCode,getDBTransaction().DEFAULT);
                       stat.setTimestamp(1, UP_DATE);
                       stat.setInt(2, DATEID);
                       result=stat.executeUpdate();
                   } catch (Exception e) {
                       // TODO: Add catch code
                       e.printStackTrace();
                   } finally {
                     try {
                           stat.close();     
                       } catch (Exception e) {
                           // TODO: Add catch code
                           e.printStackTrace();
                       }  
                      
                   }                 
                 return result;  
               }    
}
 
 
 
package model.uiview.client;
 
import java.sql.Timestamp;
 
import model.uiview.common.FinYearView;
 
import oracle.jbo.client.remote.ViewUsageImpl;
// ---------------------------------------------------------------------
// ---    File generated by Oracle ADF Business Components Design Time.
// ---    Fri Dec 11 11:15:55 EET 2015
// ---    Custom code may be added to this class.
// ---    Warning: Do not modify method signatures of generated methods.
// ---------------------------------------------------------------------
public class FinYearViewClient extends ViewUsageImpl implements FinYearView {
    /**
     * This is the default constructor (do not remove).
     */
    public FinYearViewClient() {
    }
 
    public int update_System_Date(Timestamp UP_DATE, int DATEID) {
        Object _ret =
            getApplicationModuleProxy().riInvokeExportedMethod(this,"update_System_Date",new String [] {"java.sql.Timestamp","int"},new Object[] {UP_DATE, new Integer(DATEID)});
        return ((Integer)_ret).intValue();
    }
}
 
 
package model.uiview.common;
 
import java.sql.Timestamp;
 
import oracle.jbo.ViewObject;
// ---------------------------------------------------------------------
// ---    File generated by Oracle ADF Business Components Design Time.
// ---    Fri Dec 11 11:15:55 EET 2015
// ---------------------------------------------------------------------
public interface FinYearView extends ViewObject {
    int update_System_Date(Timestamp UP_DATE, int DATEID);
}
بتاريخ:

لا لم تبقى المشكلة ( ولكن ظلت المشكلة كما هى

هنالك فرق بدأ يظهر الـ parameter  من نوع date  عند السحب على الصفحة 

تذهب كيف قمت بإضافة client Interface  تتبع نفس المسار وقم بالضغط على أيكون edit  شكل القلم الصغير 

تفتح النافذة تلغي الـ client Interface  وتضيفها من جديد ونفس الشيء تفعله عند إضافة الـ method  كما فعلت أول مرة 

تلغي كلاً من client Interface  والـ method وتضيفها من جديد كأنك تفعل هذا الشيء لأول مرة لم يسبق أن أضفت شيء

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

بالفعل انا عملت كده المرة السابقة ورغم ذلك لغيت كل شيى وبدأت من جديد ولكن نفس المشكلة برغم فى الباراميتر المتغيرين ظاهرين ولكن عند EDIT FORM FIELDS  لا يظهر باراميتر ال DATE

بتاريخ:

لا حضرتك تظهر عند edit form شاهد الصورة المرفقة عملت نفس المثال كي أصل الى المرحلة التي وصلت فيها

فقط قم بغلق الـ jdeveloper  ومن ثم إعادة فتحه إن شاء الله تحل المشكة بإذن الله 

post-41781-0-98274900-1449834629_thumb.jpg

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

للاسف  لا زالت المشكلة كوجودة فهل المشكلة فى ال import

 

package model.uiview.client;
 
import java.sql.Timestamp;
 
import model.uiview.common.FinYearView;
 
import oracle.jbo.client.remote.ViewUsageImpl;
 
 
 
package model.uiview.common;
 
import java.sql.Timestamp;
 
import oracle.jbo.ViewObject;
 
 
package model.uiview;
 
 
 
import java.sql.CallableStatement;
 
import java.sql.Timestamp;
 
 
import model.uiview.common.FinYearView;
 
import oracle.jbo.server.ViewObjectImpl;
بتاريخ:

ماهي المشكلة الآن عدم ظهوره في نافذة Edit Form  أم هنالك مشكلة أخرى ؟

أنا إتبعت الخطوات وأرفقت صورة مافي أي مشكلة 

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

لا اعرف سبب بقاء المشكلة حتى الان لذلك كتبت لحضرتك هل ال import فى كل package  فيها خطأ

 

للاسف  لا زالت المشكلة كوجودة فهل المشكلة فى ال import

 

package model.uiview.client;
 
import java.sql.Timestamp;
 
import model.uiview.common.FinYearView;
 
import oracle.jbo.client.remote.ViewUsageImpl;
 
 
 
 
 
package model.uiview.common;
 
import java.sql.Timestamp;
 
import oracle.jbo.ViewObject;
 
 
 
 
package model.uiview;
 
import java.sql.CallableStatement;
 
import java.sql.Timestamp;
 
 
import model.uiview.common.FinYearView;
 
import oracle.jbo.server.ViewObjectImpl;
 
بتاريخ:

الآن ماهي المشكلة التي تتحدث عنها وما زالت موجودة 

مشكلة بالكود يظهر خطأ ؟

أم الـ parameter  لايظهر في نافذة  Edit Form ؟ 

أي منهما لا زلت موجودة 

الـ import  من غير شيء الـ jdeveloper  يعطيك hint  يشير إلى أنه يلزم عمل import  ويساعدك بهذا 

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

 الـ parameter  ال date لايظهر في نافذة  Edit Form ؟ 

بتاريخ:

ذكرت لحضرتك أني طبقت نفس المثال ولم تكن هنالك أي مشكلة وأرفقت لحضرتك صورة لهذا 

لابد أن يكون هنالك خطأ ما لديك عن التطبيق تتبع المحاضرة مع المثال الذي تعمل عليه 

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

السلام عليكم 

 

انا سحبت الباراميتر على edit form كل عنصر لوحده فسحب ال up_date   وشغلت الشاشة

واعطى   فى return result;    بالقيمة 1  وفهمت انه كده نفذ جملة ال sql  صح

ولكن ماحصلش تعديل على الجدول   (قيمة التاريخ لم تتغير)

وتأكدت من جملة ال sql من ال worksheet انه بيحصل ال تعديل update

عملت طباعة على ال log على هذه النحو

 

                   stat=getDBTransaction().createCallableStatement(PlSQLCode,getDBTransaction().DEFAULT);                   

                   stat.setTimestamp(1, UP_DATE);
                   System.out.println("666666 "+UP_DATE);
                   stat.setInt(2, DATEID);
                   System.out.println("777777 "+DATEID);
                   System.out.println("22222222222222");
                   result=stat.executeUpdate();
                   System.out.println("999999999 "+PlSQLCode);
 
فظهرت المدخلات زى ما اعطيتها من ال input   
وال plsqlcode  
BEGIN
Update Test1 T
Set T.T_Date=?
Where
T.Id=?;
END;
 
لكن التاريخ لم يتعدل فى الجدول
بتاريخ:
  • كاتب الموضوع

السلام عليكم ورحمه الله وبركاته

الاستاذة ميسم بخصوص مثال محاضرة ال pl/sql adf

انا طبقت المثال فى البداية كما هو على ال hr جدول ال employee مثل المثال بالضبط وطلعت نفس النتيجة 

طبقت المثال على جدول اخر ولكن الباراميتر احدهم date والاخر int وهذا ما نتج عنه ظهور المشكلة اللى سبق ان اشرت اليها

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

بس بعد اضافت كلمة commit;  قبل ال end; ورحت للجدول من database ووجدت التعديل قد تم فهل هذه الخطوة سليمة

اذا كانت هذه الخطوة الان اريد ان اعمل validation  عن طريق متغيرين احدهم flag لديه قيمة صفر او واحد  فى حالة الصفر لا يسمح بتغير الشهر الحالى الموجود فى ال date  وفى حالة ان قيمة ال flag واحد يسمح يتغيير الشهر للشهر التالى فهل دى ال BUSINESS RULE على ال مسنوى ال ENTITY OBJECT وهل لها فيديو لان فيه فيديو اتكلم على BUSINESS RULE  على مستوى ال ATTRIBUTES

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

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

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

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

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

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.