بتاريخ: 14 فبراير 201313 سنة comment_232365 السلام عليكم:يوجد جدولين master/detail وعامل sequence (1,2,3)in detailالمفروض لما احفظ فى الديتيل يكون السيريال متماشى مع الماستر(يعنى يجيب max(ser)ويكمل بعد كده *يعنى لكل value in primary key المفروض فى الديتيل يجيب اعلى قيمة فى السيريال مثلا: كان 3 المفروض الىبعده فى نفس قيمة الماستر يجيب 4 وهكدا فى اى قيمة للماسترpk=1detail serial =1,2,3,....pk=2detail serial =1,2,3 وهكدا.علشان تبقى المشكلة واضحة هى زى فى الفورمزselect nvl(max(ser),0) into :ser from table where detail=:field.master وشكرا تقديم بلاغ
بتاريخ: 16 فبراير 201313 سنة comment_232452 اخي الكريم الكود ده ممكن يفيدك public BigDecimal getMaxDetailSer(Number p_id) { PreparedStatement ps=null; ResultSet rs=null; String sql; try { sql="select nvl(max(nvl(ser,0)),0) + 1 from detail where id=" + p_id; ps=this.getDBTransaction().createPreparedStatement(sql, 1); rs=ps.executeQuery(); if(rs.next()) { return rs.getBigDecimal(1); } } catch(Exception ex) { ex.printStackTrace(); } return null; } تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.