delphi4arab منتديات دلفي للعرب
Absolute database - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : Absolute database (/showthread.php?tid=6352)



Absolute database - igidher - 27-07-2014

السلام عليكم و رحمة الله و بركاته
واجهت مشكلة بسيطة في تعاملي مع قواعد بيانات Absolute و هو أنه عند حذفك لسطر ما ABSTable1.delete (ليس السطر الأخير) و إضافتك لسطر جديد Insert OR Append ... تجد السطر الجديد أخذ مكان القديم و لا يأتي أسفل الجدول و ذلك يخل بالترتيب خاصة لو كنا نتعامل بالتواريخ في كل سطر
فهل من فكرة غابت عني لتدارك هذه المشكلة ؟؟

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

جزاكم الله خيرا و بلغنا و إياكم العيد و تقبل منا رمضان
السلام عليكم


Absolute database - محمد الدرة - 27-07-2014

استخدم append بدل insert


Absolute database - igidher - 27-07-2014

استعملت كليهما و النتيجة واحدة


Absolute database - igidher - 30-07-2014

كيف نعدل على هذا الكود الموجود في vclAbsDBd19.bpl حتى نستطيع تجاوز المشكلة؟؟


كود :
procedure TABSDataSet.InitRecord(Buffer: TAbsPByte); {$IFDEF DEBUG_TRACE_DATASET}const FunctionName = 'TABSDataSet.InitRecord';{$ENDIF} begin {$IFDEF DEBUG_TRACE_DATASET}aaWriteToLog(SABSFuncStart, [FunctionName]);{$ENDIF} try inherited InitRecord(Buffer); PABSBookmarkInfo(Buffer + FHandle.BookmarkOffset)^.BookmarkFlag := abfInserted; PABSBookmarkInfo(Buffer + FHandle.BookmarkOffset)^.BookmarkData.PageNo := INVALID_PAGE_NO; PABSBookmarkInfo(Buffer + FHandle.BookmarkOffset)^.BookmarkData.PageItemNo := $FFFF; finally {$IFDEF DEBUG_TRACE_DATASET}aaWriteToLog(SABSFuncEnd, [FunctionName]);{$ENDIF} end; end;// InitRecord //------------------------------------------------------------------------------ // appending table (Append flag - ignored, record will be inserted at first empty position) //------------------------------------------------------------------------------



Absolute database - ibrahimkira - 31-07-2014

السلام عليكم و رحمة الله تعالى و بركاته

صحيح اخي لقد لقيت نفس المشكلة .... و لقد و جدت الحل Big Grin

و هذا الحل من استنتاجي فقط ممكن انني مخطأ Big Grin

اصل المشكلة هي في الصف المحدد اي التحديد

كل ما عليك هو نقل التحديد الى الصف الاخير

و لقد قمت بفعل التالي
كود :
procedure TForm1.ABSTable1AfterDelete(DataSet: TDataSet); begin ABSTable1.Last ; end; ------------------------------------------------------- procedure TForm1.ABSTable1AfterPost(DataSet: TDataSet); begin ABSTable1.Last ; end; ----------------------------------------------------------- procedure TForm1.ABSTable1BeforeInsert(DataSet: TDataSet); begin ABSTable1.Last ; end; ------------------------------------------------------------- procedure TForm1.ABSTable1BeforePost(DataSet: TDataSet); begin DBGrid1.SelectedIndex := ABSTable1.RecNo ; end;

و الآن قم بالاضافة او الحذف و ان شاء الله لن تجد مشكلة