بتاريخ: 22 ديسمبر 201510 سنة comment_269254 هذه الرسالة تظهر من هذا الكود مع العلم كود ال sql تم اختياره بنجاح System.out.println("rrrrrrr "+v_id); System.out.println("qqqqqq "+v_date); String username = "mon"; String password = "mon"; String thinConn = "jdbc:oracle:thin:@localhost:1521:ORCL"; String sql= "Begin\n" + "Update Fin_Year F\n" + "Set F.Sys_Date =:v_date\n" + "Where \n" + "F.Date_Id=:v_id ;\n" + "commit;\n"+ "END;"; try { DriverManager.registerDriver(new OracleDriver()); Connection conn = DriverManager.getConnection(thinConn,username,password); Statement stat=conn.createStatement(); stat.executeUpdate(sql); FacesMessage msg = new FacesMessage("تم تعديل التاريخ"); FacesContext.getCurrentInstance().addMessage(null, msg); conn.close(); stat.close(); } catch (SQLException e) { // TODO: Add catch code e.printStackTrace(); System.out.println("xxxxx "+sql+"yyyyy "+e); FacesMessage msg = new FacesMessage(" لم يتم تعديل التاريخ"); FacesContext.getCurrentInstance().addMessage(null, msg); } return "main"; } FacesMessage msg = new FacesMessage("لا توجد بيانات"); FacesContext.getCurrentInstance().addMessage(null, msg); return null; } تقديم بلاغ
بتاريخ: 22 ديسمبر 201510 سنة كاتب الموضوع comment_269255 الرسالة هى java.sql.SQLException: ORA-01008: ليست كل المتغيرات مربوطة تقديم بلاغ
بتاريخ: 22 ديسمبر 201510 سنة comment_269257 بدل هذا السطر stat.executeUpdate(sql); تكتب stat.executeUpdate(); تقديم بلاغ
بتاريخ: 22 ديسمبر 201510 سنة كاتب الموضوع comment_269259 شكرا لتفضلك بالاجابة للاسف يرفض الكتابة بهذا الشكل stat.executeUpdate(); تقديم بلاغ
بتاريخ: 22 ديسمبر 201510 سنة comment_269260 حضرتك تستخدم Statement لذلك يرفض تستخدم CallableStatement لماذا لا تراجع المثال المتعلق بPl/Sql داخل الADF لترى الكود حتى تتجنب مرحلة sql وتنفذ بشكل صحيح تقديم بلاغ
بتاريخ: 22 ديسمبر 201510 سنة كاتب الموضوع comment_269261 شكرا لحضرتك حضرتك انا قطعت شوط كبير لغاية ما وصلت للنتيجة بالاضافة قابلتنى مشاكل كثيرة فى مثال pl/sql بسبب كثرة ال validation اللى انا عامله قبل ما احفظ التاريخ لو فتحت لحضرة الكود كله اللى قبل عملية ال حفظ حتشوفيه وانا دلوقتى غيرت فى كود sql وطلع خطأ جديد بس نفس جملة ال update والخطأ هو Begin Update Fin_Year F Set F.Sys_Date =2015-12-16 Where F.Date_Id=1; commit; END;yyyyy java.sql.SQLException: ORA-06550: سطر 3 ، عمود 24 : PL/SQL: ORA-00932: أنواع بيانات غير متسقة: متوقع DATE تم الحصول على NUMBER ORA-06550: سطر 2 ، عمود 1 : PL/SQL: SQL Statement ignored تقديم بلاغ
بتاريخ: 22 ديسمبر 201510 سنة كاتب الموضوع comment_269283 استقبل المتغير v_id صح والمشكلة الان فى التاريخ اللى على هذه الصورة v_date3=v_date.timestampValue(); الرسالة التى تظهر java.sql.SQLException: ORA-06550: سطر 3 ، عمود 27 : PL/SQL: ORA-00933: أمر SQL لم ينتهي بطريقة صحيحة ORA-06550: سطر 2 ، عمود 1 : PL/SQL: SQL Statement ignored String sql= "Begin\n" + "Update Fin_Year F\n" + "Set F.Sys_Date="+getV_date3()+"\n" + "Where \n" + "F.Date_Id="+v_id+";\n" + "Commit;\n" + "end;"; تقديم بلاغ
بتاريخ: 23 ديسمبر 201510 سنة كاتب الموضوع comment_269305 مشكلة فى هذا الكود فى المتغير التاريخ Begin Update Fin_Year F Set F.Sys_Date=2015-11-18 Where F.Date_Id=1 ; Commit; End;yyyyy java.sql.SQLException: ORA-06550: سطر 3 ، عمود 23 : PL/SQL: ORA-00932: أنواع بيانات غير متسقة: متوقع DATE تم الحصول على NUMBER ORA-06550: سطر 2 ، عمود 1 : PL/SQL: SQL Statement ignored والكود package view.backing; import javax.faces.application.FacesMessage; import javax.faces.context.FacesContext; import oracle.adf.model.BindingContext; import oracle.adf.model.binding.DCBindingContainer; import oracle.jbo.Row; import oracle.jbo.domain.Number; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement; import model.DateInfo; import oracle.adf.view.rich.component.rich.RichDocument; import oracle.adf.view.rich.component.rich.RichForm; import oracle.adf.view.rich.component.rich.data.RichTable; import oracle.adf.view.rich.component.rich.input.RichInputDate; import oracle.adf.view.rich.component.rich.input.RichInputText; import oracle.adf.view.rich.component.rich.layout.RichPanelFormLayout; import oracle.adf.view.rich.component.rich.layout.RichPanelGroupLayout; import oracle.adf.view.rich.component.rich.layout.RichPanelStretchLayout; import oracle.adf.view.rich.component.rich.nav.RichCommandButton; import oracle.adf.view.rich.component.rich.output.RichMessages; import oracle.adf.view.rich.component.rich.output.RichOutputText; import oracle.adf.view.rich.component.rich.layout.RichPanelLabelAndMessage; import oracle.adf.view.rich.component.rich.nav.RichCommandLink; import oracle.jbo.domain.Date; import oracle.jdbc.driver.OracleDriver; import org.apache.myfaces.trinidad.event.AttributeChangeEvent; public class Fin_year { private String v_message; private Date s_date; private Date v_date; private Date e_date; private Date f_date; private Number v_close; private Number v_id; private RichPanelGroupLayout pgl1; private RichPanelStretchLayout psl1; private RichForm f1; private RichDocument d1; private RichPanelFormLayout pfl1; private RichPanelFormLayout pfl2; private RichMessages m1; private RichTable t1; private RichInputDate id1; private RichInputDate id2; private RichInputDate id3; private RichInputText it1; private RichPanelGroupLayout pgl2; private RichOutputText ot6; private RichCommandButton cb1; private RichInputDate id4; private RichPanelFormLayout pfl3; private RichCommandLink cl1; private RichPanelFormLayout pfl4; private RichPanelLabelAndMessage plam1; private RichOutputText ot7; private RichOutputText ot8; public void setPgl1(RichPanelGroupLayout pgl1) { this.pgl1 = pgl1; } public RichPanelGroupLayout getPgl1() { return pgl1; } public void setPsl1(RichPanelStretchLayout psl1) { this.psl1 = psl1; } public RichPanelStretchLayout getPsl1() { return psl1; } public void setF1(RichForm f1) { this.f1 = f1; } public RichForm getF1() { return f1; } public void setD1(RichDocument d1) { this.d1 = d1; } public RichDocument getD1() { return d1; } public void setPfl1(RichPanelFormLayout pfl1) { this.pfl1 = pfl1; } public RichPanelFormLayout getPfl1() { return pfl1; } public void setPfl2(RichPanelFormLayout pfl2) { this.pfl2 = pfl2; } public RichPanelFormLayout getPfl2() { return pfl2; } public void setM1(RichMessages m1) { this.m1 = m1; } public RichMessages getM1() { return m1; } public void setT1(RichTable t1) { this.t1 = t1; } public RichTable getT1() { return t1; } public void setId1(RichInputDate id1) { this.id1 = id1; } public RichInputDate getId1() { return id1; } public void setId2(RichInputDate id2) { this.id2 = id2; } public RichInputDate getId2() { return id2; } public void setId3(RichInputDate id3) { this.id3 = id3; } public RichInputDate getId3() { return id3; } public void setDate(Date s_date) { this.s_date = s_date; } public Date getDate() { return s_date; } public void setE_date(Date e_date) { this.e_date = e_date; } public Date getE_date() { return e_date; } public void setF_date(Date f_date) { this.f_date = f_date; } public Date getF_date() { return f_date; } public void setV_close(Number v_close) { this.v_close = v_close; } public Number getV_close() { return v_close; } public void setV_id(Number v_id) { this.v_id = v_id; } public Number getV_id() { return v_id; } public void aaa(AttributeChangeEvent attributeChangeEvent) { // Add event code here... } public void setIt1(RichInputText it1) { this.it1 = it1; } public RichInputText getIt1() { return it1; } public void setPgl2(RichPanelGroupLayout pgl2) { this.pgl2 = pgl2; } public RichPanelGroupLayout getPgl2() { return pgl2; } public void setV_date(Date v_date) { this.v_date = v_date; } public Date getV_date() { return v_date; } public void setV_message(String v_message) { this.v_message = v_message; } public String getV_message() { return v_message; } public void setOt6(RichOutputText ot6) { this.ot6 = ot6; } public RichOutputText getOt6() { return ot6; } public void setCb1(RichCommandButton cb1) { this.cb1 = cb1; } public RichCommandButton getCb1() { return cb1; } public void setId4(RichInputDate id4) { this.id4 = id4; } public RichInputDate getId4() { return id4; } public String fin_year_action() { // Add event code here... /*************************************/ try { DateInfo date = null; int result=1; Number dateid=v_id; v_message=null ; DCBindingContainer dcbc = (DCBindingContainer)BindingContext.getCurrent().getCurrentBindingsEntry(); Row row =dcbc.findIteratorBinding("FinYearView1Iterator").getCurrentRow(); if (row!=null){ date = new DateInfo(); s_date =(Date)row.getAttribute("SysDate"); date.setV_close_month(((Number)row.getAttribute("CloseMonth")).intValue()); date.setF_date((Date)row.getAttribute("StDate")); date.setE_date((Date)row.getAttribute("EndDate")); date.setV_date_idl(((Number)row.getAttribute("DateId")).intValue()); date.setDate((Date)v_date); Date dd=new Date(); System.out.println("sys_date "+v_date+"curr_date "+dd.getCurrentDate()); if(v_date.compareTo(dd.getCurrentDate())>0) { result=0; FacesMessage message = new FacesMessage("خطأ تاريخ اكبر من تاريخ الجهاز"); FacesContext.getCurrentInstance().addMessage(null, message); } System.out.println("sys_date "+v_date+"curr_date "+dd.getCurrentDate()); if(v_date.compareTo(s_date)<0) { result=0; FacesMessage message = new FacesMessage("خطأ تاريخ اصغر من التاريخ الحالى"); FacesContext.getCurrentInstance().addMessage(null, message); } System.out.println("sys_date "+v_date+"st_date "+date.getF_date()+"end_date "+date.getE_date()); if (v_date.compareTo(date.getF_date())<0 || v_date.compareTo(date.getE_date())>0) { result=0; FacesMessage message = new FacesMessage("خطأ تاريخ خارح السنة المالية"); FacesContext.getCurrentInstance().addMessage(null, message); } if (result!=1) { v_message=null ; } else v_message="ok" ; { /*****************************************************************/ System.out.println("rrrrrrr "+v_date); System.out.println("qqqqqq "+v_id); String username = "mon"; String password = "mon"; String thinConn = "jdbc:oracle:thin:@localhost:1521:ORCL"; String sql= "Begin\n" + "Update Fin_Year F\n" + "Set F.Sys_Date="+v_date+"\n" + "Where \n" + "F.Date_Id="+v_id+" ;\n" + "Commit;\n" + "End;" ; try { DriverManager.registerDriver(new OracleDriver()); Connection conn = DriverManager.getConnection(thinConn,username,password); Statement stat=conn.createStatement(); stat.execute(sql) ; FacesMessage msg = new FacesMessage("تم تعديل التاريخ"); FacesContext.getCurrentInstance().addMessage(null, msg); conn.close(); stat.close(); } catch (SQLException e) { // TODO: Add catch code e.printStackTrace(); System.out.println("xxxxx "+sql+"yyyyy "+e); FacesMessage msg = new FacesMessage(" لم يتم تعديل التاريخ"); FacesContext.getCurrentInstance().addMessage(null, msg); } return "main"; } /*****************************************************************/ } else { FacesMessage msg = new FacesMessage("لا توجد بيانات"); FacesContext.getCurrentInstance().addMessage(null, msg); return null; } }catch (Exception e) { // TODO: Add catch code e.printStackTrace(); } return null; } public void setPfl3(RichPanelFormLayout pfl3) { this.pfl3 = pfl3; } public RichPanelFormLayout getPfl3() { return pfl3; } public void setCl1(RichCommandLink cl1) { this.cl1 = cl1; } public RichCommandLink getCl1() { return cl1; } public void setPfl4(RichPanelFormLayout pfl4) { this.pfl4 = pfl4; } public RichPanelFormLayout getPfl4() { return pfl4; } public void setPlam1(RichPanelLabelAndMessage plam1) { this.plam1 = plam1; } public RichPanelLabelAndMessage getPlam1() { return plam1; } public void setOt7(RichOutputText ot7) { this.ot7 = ot7; } public RichOutputText getOt7() { return ot7; } public void setOt8(RichOutputText ot8) { this.ot8 = ot8; } public RichOutputText getOt8() { return ot8; } } تقديم بلاغ
بتاريخ: 23 ديسمبر 201510 سنة comment_269309 استخدم PreparedStatement أفضل ولا توجد مشاكل في التاريخ أبداً تقديم بلاغ
بتاريخ: 23 ديسمبر 201510 سنة كاتب الموضوع comment_269312 ازاى اعمل chick على التاريخ واقارنة بتاريخين اخران قبل ما اعمل عملية الحفظ هو ده سبب لجوئى للطريقة الاخرى public int update_System_Date(Timestamp UP_DATE,int DATEID){ int result=0; String PlSQLCode= "Begin \n" + "Update Test1 T \n" + "Set T.T_Date= ?\n" + "Where\n" + "T.Id=?;\n" + "end;" ; 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; } تقديم بلاغ
بتاريخ: 23 ديسمبر 201510 سنة كاتب الموضوع comment_269314 عايز انفذ chck ده قبل ما اعمل update عايز اجيب ال row للجدول واعمل chck قبل تنفيذ جملة ال update والعقبة ان فى طريقة pl/sql الل متغيرين عبارة عن باراميتر ما بيظهروش الى فى الكود appmodule ومش عارف اخدهم كمتغيرين DateInfo date = null; int result=1; Number dateid=v_id; v_message=null ; DCBindingContainer dcbc = (DCBindingContainer)BindingContext.getCurrent().getCurrentBindingsEntry(); Row row =dcbc.findIteratorBinding("FinYearView1Iterator").getCurrentRow(); if (row!=null){ date = new DateInfo(); s_date =(Date)row.getAttribute("SysDate"); date.setV_close_month(((Number)row.getAttribute("CloseMonth")).intValue()); date.setF_date((Date)row.getAttribute("StDate")); date.setE_date((Date)row.getAttribute("EndDate")); date.setV_date_idl(((Number)row.getAttribute("DateId")).intValue()); date.setDate((Date)v_date); Date dd=new Date(); System.out.println("sys_date "+v_date+"curr_date "+dd.getCurrentDate()); if(v_date.compareTo(dd.getCurrentDate())>0) { result=0; FacesMessage message = new FacesMessage("خطأ تاريخ اكبر من تاريخ الجهاز"); FacesContext.getCurrentInstance().addMessage(null, message); } System.out.println("sys_date "+v_date+"curr_date "+dd.getCurrentDate()); if(v_date.compareTo(s_date)<0) { result=0; FacesMessage message = new FacesMessage("خطأ تاريخ اصغر من التاريخ الحالى"); FacesContext.getCurrentInstance().addMessage(null, message); } System.out.println("sys_date "+v_date+"st_date "+date.getF_date()+"end_date "+date.getE_date()); if (v_date.compareTo(date.getF_date())<0 || v_date.compareTo(date.getE_date())>0) { result=0; FacesMessage message = new FacesMessage("خطأ تاريخ خارح السنة المالية"); FacesContext.getCurrentInstance().addMessage(null, message); } if (result!=1) { v_message=null ; } else v_message="ok" ; { تقديم بلاغ
بتاريخ: 23 ديسمبر 201510 سنة كاتب الموضوع comment_269319 عايز انفذ chck ده قبل ما اعمل update عايز اجيب ال row للجدول واعمل chck قبل تنفيذ جملة ال update والعقبة ان فى طريقة pl/sql الل متغيرين عبارة عن باراميتر ما بيظهروش الى فى الكود appmodule ومش عارف اخدهم كمتغيرين DateInfo date = null; int result=1; Number dateid=v_id; v_message=null ; DCBindingContainer dcbc = (DCBindingContainer)BindingContext.getCurrent().getCurrentBindingsEntry(); Row row =dcbc.findIteratorBinding("FinYearView1Iterator").getCurrentRow(); if (row!=null){ date = new DateInfo(); s_date =(Date)row.getAttribute("SysDate"); date.setV_close_month(((Number)row.getAttribute("CloseMonth")).intValue()); date.setF_date((Date)row.getAttribute("StDate")); date.setE_date((Date)row.getAttribute("EndDate")); date.setV_date_idl(((Number)row.getAttribute("DateId")).intValue()); date.setDate((Date)v_date); Date dd=new Date(); System.out.println("sys_date "+v_date+"curr_date "+dd.getCurrentDate()); if(v_date.compareTo(dd.getCurrentDate())>0) { result=0; FacesMessage message = new FacesMessage("خطأ تاريخ اكبر من تاريخ الجهاز"); FacesContext.getCurrentInstance().addMessage(null, message); } System.out.println("sys_date "+v_date+"curr_date "+dd.getCurrentDate()); if(v_date.compareTo(s_date)<0) { result=0; FacesMessage message = new FacesMessage("خطأ تاريخ اصغر من التاريخ الحالى"); FacesContext.getCurrentInstance().addMessage(null, message); } System.out.println("sys_date "+v_date+"st_date "+date.getF_date()+"end_date "+date.getE_date()); if (v_date.compareTo(date.getF_date())<0 || v_date.compareTo(date.getE_date())>0) { result=0; FacesMessage message = new FacesMessage("خطأ تاريخ خارح السنة المالية"); FacesContext.getCurrentInstance().addMessage(null, message); } if (result!=1) { v_message=null ; } else v_message="ok" ; { تقديم بلاغ
بتاريخ: 24 ديسمبر 201510 سنة كاتب الموضوع comment_269374 المتغيرين ال id و ال date اللى حاقوم بتعديله فى الجدول تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.