2011-11-30 43 views
3

我在Delphi中使用TDBgrid,數據集是Adoquery。我有很多記錄,其ID爲1到1000.現在,例如,我想刪除第35條,通過TadoQuery'刪除...'有什麼辦法可以立即集中第34或第36條記錄給客戶,檢查是否第35個已被刪除。 下面是我的刪除按鈕如何將記錄集中在剛剛在DBgrid Delphi中刪除的記錄附近?

StudentID := UniQuery1.FieldValues['StudentID']; 
UniQuery1.SQL.Clear(); 
UniQuery1.SQL.Text :=('Delete from Student where StudentID = ''' + StudentID + ''''); 
UniQuery1.SQL.Add('select * from Student'); 
UniQuery1.Execute; 

任何人都可以幫助代碼,非常感謝你。

回答

2

如果您使用TClientDataSet(無論如何這是個好主意),您可以使用FindNearest

0

首先,將元組以前的的ID保存到要刪除的元組中。然後刪除你想刪除的元組,然後找到保存的元組。要到達前一個元組,請使用uniquery1.moveby(-1)。

0

保存UniQuery1.RecNo刪除之前。刪除後,重新查詢數據集,該數據集應將第一條記錄設置爲活動狀態,然後發出UniQuery1.MoveBy(SavedRecNo - 1)UniQuery1.MoveBy(SavedRecNo - 2),具體取決於您是要移至記錄成功還是先於已刪除記錄。