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

اريد عمل button يقوم بمسح كل العمليات القديمة الموجودة داخل الجدول

Featured Replies

بتاريخ:

بسم الله الرحمن الرحيم



لقد قمت بعمل جدول اسمه operation هذا الجدول يتجدد يوميا
1 -لذلك اريد عمل button يقوم بمسح كل العمليات القديمة الموجودة داخل الجدول

وجعله الله في ميزان حسناتكم

بتاريخ:

ضفله عمود للتاريخ لو مفيهوش
وامسح كل حاجة تطلع من ناتج طرح يوم من sysdate

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

يا ريت توضيح اكتر لو سمحت انا مفهمتش

بتاريخ:

تصدق ان انا في الاول افتكرت عاوز تمسح الـ operations بتاعت اليوم اللي فات بس
لكن انت كاتب انك عاوز تمسح كل الـ operations القديمة
وانا مش عارف ايه المشكلة في كده
امسح الجدول كله وسيب الـ structure بتاعه
بـ truncate
علي قد ما انا فاكر يعني

بتاريخ:

أعتقد ان ما تقصده هو عمل Delete All بوتون لمسح كل الRecords اللى عندك فى الجدول والحل هو عمل ميثود بتجيب منها اسم ال Iterator ومنها بتلوب على ال RowSetIterator وتعملهم remove

بتاريخ:

اتفضل
delete operation where date<sysdate;
commit;
جرب وتابع معنا
معكم ولكم نتواصل

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

اتفضل
delete operation where date<sysdate;
commit;
جرب وتابع معنا
معكم ولكم نتواصل


الاخ ahmedbb الكود ده تقريبا تنفيذه في الفورمز بيلدر

بالنسبة للاخت هالة يا ريت توضيح لان انا لما جيبت الايتريتور وعملت لوب ملقتش الكوماند بتاع الdelete
فا ياريت لو توضحي بالكود يكون افضل
وجزاك الله كل خير وشكرا ليك اخ احمد
بتاريخ:
  • كاتب الموضوع

الحمد لله تم حل المشكلة وهذا هو الكود لافادة الجميع

وده هنعمله في ميثود تحت زورار الdelete


BindingContainer bindings = getBindingContainer();
Number sum =new Number(0);
DCIteratorBinding iter = getIterator("EarnMonthView1Iterator");
int startRange = iter.getRangeSize();
int startIdx = iter.getCurrentRowIndexInRange();
iter.setRangeSize(-1);
Row[] rows = iter.getAllRowsInRange();
for (int i = 0; i < rows.length; i++) {
Row row = rows;
if (row.getAttribute("MEarn") != null) {

OperationBinding operationBinding = bindings.getOperationBinding("Delete");
Object result = operationBinding.execute();




}
}
iter.setRangeSize(startRange);
iter.setCurrentRowIndexInRange(startIdx);




return null;
}

بتاريخ:

اعتقد ان انا والاخ احمد مخدناش بالنا ان السؤال في منتدي الـ J-developer
عذرا
السلام عليكم ورحمة الله وبركاته

بتاريخ:

لم اجرب الميثود بتاعتك لكن استخدم الميثود التاليه لمسح كل الrows وكمان عمل commit

public String deleteAll() {
	// Add event code here...
	DCBindingContainer bc = (DCBindingContainer)getBindings();
	// 2. Find a named iterator binding
	DCIteratorBinding iter = (DCIteratorBinding)bc.findIteratorBinding("yourVOIterator");
	//4. Get the RowSetIterator Object
	RowSetIterator rsi = iter.getViewObject().createRowSetIterator(null);
	rsi.reset();
	//delete all rows
	while (rsi.hasNext()) {
		Row current = rsi.next();
		rsi.setCurrentRow(current);
		current.remove();
	}

	rsi.closeRowSetIterator();
	OperationBinding operationBinding = bindings.getOperationBinding("Commit");
	operationBinding.execute();
	return null;
}

بتاريخ:

ودى طريقة تانية للحذف
-------------------------

DCBindingContainer bc = (DCBindingContainer)BindingContext.getCurrent().getCurrentBindingsEntry();
ViewObject vo = bc.findIteratorBinding("Operations1Iterator").getViewObject();
ApplicationModuleImpl app = (ApplicationModuleImpl) vo.getApplicationModule();
CallableStatement st = null;
try
{
  st = app.getDBTransaction().createCallableStatement("delete from operations", 0);
  st.executeUpdate();
  app.getTransaction().commit();
  vo.executeQuery();
}
catch(Exception e){e.printStackTrace();}
finally
{
  try
  {
	if(st != null)
	  st.close();
  }
  catch(Exception e){e.printStackTrace();}
}

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

شكرا اخت هاله شكرا miro جزاكم الله خير

بتاريخ:

الأخ بيبو:
يمكنك استخدام الدالة remove() على Row مباشرة بدلاً من الحذف عن طريق الـ operator.
الأخت هالة:
الـ looping على الصفوف أفضل باستخدام getAllRowInRange حتى لا يتم إنشاء objects جديدة في الذاكرة تقوم بعمل تحميل إضافي على قاعدة البيانات
الأخ ميرو:
لا تستخدم CallableStatement لأنه لو تم إضافة bind variables في الجملة فستضطر لإعادة كتابة الكود من جديد والأفضل استخدام PreparedStatement

بتاريخ:

الأخ مصطفى :
دائما ما نحتاج لملحوظاتك دائما :D معاك حق فعلا ال PreparedStatement اسرع فى جمل Sql وكمان precompiled
بس انا كنت اقصد استخدام
CallableStatement لأنها اشمل وحبيت أوضح فى المثال مش بس تقدر تنفذ جمل
sql لأ كمان تقدر تستدعى أى stored Procedure فى dataBase عن طريق adf

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

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

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

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

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

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.