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

مطلوب Postquery By Adf

Featured Replies

بتاريخ:

هل يمكن عمل postquery  by adf

 

 

بتاريخ:

ممكن هذا 

راجع الرابط التالي 

http://stefanoba.blogspot.com/2013/11/post-query-in-adf.html

 

ولزيادة التوضيح المعرفة حول تكافئ الـ triggers  أرجو الإطلاع على الرابط التالي 

 

https://docs.oracle.com/cd/E23943_01/web.1111/b31974/appendix_formstriggers.htm#ADFFD1446

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

شكرا يا استاذة 

 

    protected ViewRowImpl createRowFromResultSet(Object qc, ResultSet resultSet) {
        ViewRowImpl value = super.createRowFromResultSet(qc, resultSet);
        return value;
    }
 
ازاى اجيب اى attribute    
بتاريخ:
  • كاتب الموضوع

شكرا يا أستاذة

انا فهمت من الرابط  لو عايز استخدم   POST-QUERY

اعمل override

 

 

    public ViewRowImpl createInstanceFromResultSet(QueryCollection queryCollection, ResultSet resultSet) {
    System.out.println("createInstanceFromResultSe");
     return super.createInstanceFromResultSet(queryCollection, resultSet);
 
ازاى اجيب قيم من الجدول 
بتاريخ:

ViewRowImpl  row = super.createInstanceFromResultSet(queryCollection, resultSet);

ثم استخدام row كما تشاء

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

شكرا يا باشمهندس

انا شفت الطريقة دى لكن  بجيب ال عمود عن طريق ترتيبه فى الجدول وانا كان عايز اجيبه عن طريق الاسم

فهل فى طريقى افضل انا اجيبه العمود بالاسم 

 

    ViewRowImpl  row = super.createInstanceFromResultSet(queryCollection, resultSet);
   
   
          for (int i = 0; i < row.getAttributeCount(); i++) {
            rowAttrs += (row.getAttribute(i) + "\t");
          System.out.println("i="+i);
          System.out.println("value="+row.getAttribute(i));
          }
          System.out.println(rowAttrs);  
بتاريخ:

row.getAttribute("");

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

الف الف شكر يا باشمهندس

 

لكن يوجد خطأ 

  • Error(74,15): cannot find method setInt(int,java.lang.Object) 

من السطر    stat4.setInt(1,row.getAttribute("ProdId"));

 

الكود كله  

     ViewRowImpl  row = super.createInstanceFromResultSet(queryCollection, resultSet);             
     
    System.out.println("proc_b_no_exp_date");
      boolean result4=true;     
           String PlSQLCode4 ="{CALL PROC_B_NO_EXP_DATE (?,?,?)";          
           CallableStatement stat4=null;                                         
                           try {          
         stat4=getDBTransaction().createCallableStatement(PlSQLCode4,getDBTransaction().DEFAULT);
         stat4.setInt(1,row.getAttribute("ProdId")); 
         stat4.registerOutParameter(2, Types.VARCHAR);
         stat4.registerOutParameter(3, Types.DATE);
         result4=stat4.execute(); 
         row.setAttribute("B_NO",(stat4.getString(2))) ;
         row.setAttribute("EXP_DATE",new Date (stat4.getDate(3)));
         stat4.clearParameters();
                                     } catch (Exception e4) {
                                         // TODO: Add catch code                                     
                                         System.out.println("proc_b_no_exp_date"+e4);    
                                         System.out.println("proc_b_no_exp_date"+PlSQLCode4);
                                         e4.printStackTrace();
                                     } finally {
                                       try {
                                             stat4.close();     
                                         } catch (Exception e4) {
                                             // TODO: Add catch code
                                             e4.printStackTrace();
                                         }                                       
                                     }  
                                             
           
     return super.createInstanceFromResultSet(queryCollection, resultSet);
        
                    
}
بتاريخ:

يجب التحويل إلى int أو استخدام setObject

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

شكرا يا باشمهندس

 

لو فى اجابتين من الردود السابقة كافضل اجابة ينفع اختار اجابتين ام لازم اختار اجابة واحدة

بتاريخ:

لا أعرف في الواقع

المهم أن يتم حل المشكلة

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

شكرا للاستاذة ميسم على الاجابة  

ممكن هذا 

راجع الرابط التالي 

http://stefanoba.blo...ery-in-adf.html

 

ولزيادة التوضيح المعرفة حول تكافئ الـ triggers  أرجو الإطلاع على الرابط التالي 

 

https://docs.oracle....s.htm#ADFFD1446

 
 
وشكرا  للمهندس مصطفى للاجابات

ViewRowImpl  row = super.createInstanceFromResultSet(queryCollection, resultSet);

ثم استخدام row كما تشاء

 

row.getAttribute("");

 

يجب التحويل إلى int أو استخدام setObject

 

واليكم الكود النهائى اللى نفذ ال postqury

 

    public ViewRowImpl createInstanceFromResultSet(QueryCollection queryCollection, ResultSet resultSet) {          
     
     ViewRowImpl  row = super.createInstanceFromResultSet(queryCollection, resultSet);             
     
    System.out.println("proc_b_no_exp_date");
      boolean result4=true;     
           String PlSQLCode4 ="{CALL PROC_B_NO_EXP_DATE (?,?,?)";          
           CallableStatement stat4=null;                                         
                           try {          
         stat4=getDBTransaction().createCallableStatement(PlSQLCode4,getDBTransaction().DEFAULT);
         System.out.println("row.getAttribute(ProdId)"+row.getAttribute("ProdId"));
         stat4.setObject(1, row.getAttribute("ProdId"));                               
         stat4.registerOutParameter(2, Types.VARCHAR);
         stat4.registerOutParameter(3, Types.DATE);
         result4=stat4.execute(); 
         row.setAttribute("B_NO",(stat4.getString(2))) ;
         row.setAttribute("EXP_DATE",new Date (stat4.getDate(3)));
         stat4.clearParameters();
                                     } catch (Exception e4) {
                                         // TODO: Add catch code                                     
                                         System.out.println("proc_b_no_exp_date"+e4);    
                                         System.out.println("proc_b_no_exp_date"+PlSQLCode4);
                                         e4.printStackTrace();
                                     } finally {
                                       try {
                                             stat4.close();     
                                         } catch (Exception e4) {
                                             // TODO: Add catch code
                                             e4.printStackTrace();
                                         }                                       
                                     }  
                                             
           
     return super.createInstanceFromResultSet(queryCollection, resultSet);
        
                    
}

 

 
 
بتاريخ:

العفو بالتوفيق

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

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

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

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

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

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.