الــــ bookmark و حفظ تأشير الــ DataSet
#1
السلام عليكم

كثير منا يتسائل عن bookmark و إستخدامها
الــ bookmark : هي عبارة عن حفظ تأشير في DataSet مع إمكانية إسترجاعها بسهولة
يمكن تطبيقه لإسترداد مرجعية السجل الحالي ( العودة إليه بعد الإنتقال إلى سجلات أخرى )
و هذه أمثلة عن إستعمالاته

1- حفظ مؤشر واحد والعودة إليه بعد التجول في البيانات أو بعد القيام بعمليات على البيانات
مثال : عليك بتصريح متغير (يستعمل في الفورم) :
كود :
bookmarkname: TBookmarkStr;
كود حفظ التأشير
كود :
bookmarkname := ADOTable1.Bookmark;
كود إسترجاع التأشير
كود :
ADOTable1.Bookmark:=bookmarkname ;

2- حذف عدة تسجيلات مختارة في DBGrid ( دون إستعمال المتغير )
أولا عليك تفعيل خاصية تعدد الإختيارللـ DBGrid في خاصية Options القيمة dgMultiSelect إجعلها True
كود الحذف
كود :
for i := 0 to DBGrid1.SelectedRows.Count - 1 do
begin
ADOTable1.Bookmark := DBGrid1.SelectedRows[i];
ADOTable1.Delete;
end;

3- نسخ التسجيلات المختارة في DBGrid إلى جدول آخر
نفس الطريقة السابقة ( دون إستعمال المتغير )
كود مثال

كود :
for i := 0 to DBGrid1.SelectedRows.Count - 1 do
begin
ADOTable1.Bookmark := DBGrid1.SelectedRows[i];
ADOTable2.Append ;
ADOTable2Nom.Value :=ADOTable1Nom.Value ;
ADOTable2Pren.Value := ADOTable1Pren.Value;
ADOTable2.Post ;

*ملاحظة : ليست كل أنواع الـ DataSet تدعم bookmark

و السلام عليكم
الرد
#2
السلام عليكم

موضوع مفيد اخي Lam.Abdeldjalil بارك الله فيك

لكن ما الفرق بين TBookmark و TBookmarkStr
http://www.delphi4arab.net/forum/showpos...ostcount=2

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

بارك الله فيك أخي S.FATEH

ذكر في كتاب Mastering Delphi 7 أن TBookmarkStr أحدث من TBookmark و الله أعلم
يمكن العمل بـ TBookmark بالطريقة التالية :
كود :
var bookmarkname: TBookMark;
كود حفظ التأشير
كود :
bookmarkname:= ADOTable1.GetBookMark;
كود إسترجاع التأشير
كود :
ADOTable1.GotoBookmark(bookmarkname);
كود التحرير ( الإفراغ)
كود :
ADOTable1.FreeBookmark(bookmarkname);
والسلام عليكم
الرد
#4
و عليكم السلام و رحمة الله

إستخدمت في المثال TBookMark لأنه تم التخلي عن TBookmarkStr : المصدر
إقتباس :
[INDENT]Note: The TBookmarkStr type is deprecated. Use TBookmark instead. [/INDENT]
بالتوفيق


الملفات المرفقة
.rar   BookmarkSample.rar (الحجم : 9.31 ك ب / التحميلات : 215)
.jpg   bookmark.JPG (الحجم : 35.91 ك ب / التحميلات : 106)
الرد
#5
أين يمكن إيجاد هذا المركب ؟ هل يعمل مع الدلفي 7
وشكراً
الرد
#6
إقتباس :أين يمكن إيجاد هذا المركب
عن أي مركب تتحدث؟

إقتباس : ADOTable1.GotoBookmark(bookmarkname);
يستحسن قبل استعادة أي TBookmark التحقق من صحته أولا:
PHP كود :
if ADODataSet1.BookmarkValid(bookmarknamethen 

الرد
#7
بارك الله فيك وجزاك الله خيرا
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم