I personally use
TDBgrid in Delphi and also the Dataset is
Adoquery. I've many record that have the ID from 1 to 1000. Now for instance I wish to remove the 35th by
TadoQuery 'Delete from...' Can there be in whatever way to instantly focus the 34th or 36th record for that customer to see if the 35th continues to be erased.
Here's the code for my remove button
StudentID := UniQuery1.FieldValues['StudentID']; UniQuery1.SQL.Clear(); UniQuery1.SQL.Text :=('Delete from Student where StudentID = ''' + StudentID + ''''); UniQuery1.SQL.Add('select * from Student'); UniQuery1.Execute;
Anybody might help, thanks greatly.
If you are using a TClientDataSet (which may be beneficial anyway), you should use FindNearest.
To begin with, save the id from the tuple previous to the one which you need to remove. Then remove the tuple that you want to remove, and later on locate the saved tuple. To get at the prior tuple, use uniquery1.moveby (-1).
UniQuery1.RecNo before removing. After removing, re-query the dataset, that ought to set the very first record active, then problem
UniQuery1.MoveBy(SavedRecNo - 1) or
UniQuery1.MoveBy(SavedRecNo - 2), based on whether you need to proceed to the record succeeding or preceding the erased one.