Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 如何将一张唱片聚焦在你想要的唱片附近';您刚刚在DBgrid Delphi中删除了吗?_Database_Delphi - Fatal编程技术网

Database 如何将一张唱片聚焦在你想要的唱片附近';您刚刚在DBgrid Delphi中删除了吗?

Database 如何将一张唱片聚焦在你想要的唱片附近';您刚刚在DBgrid Delphi中删除了吗?,database,delphi,Database,Delphi,我在Delphi中使用了TDBgrid,数据集是Adoquery。我有许多记录的ID从1到1000。例如,现在我想通过TadoQuery“delete from…”来删除第35条记录。是否有任何方法可以立即聚焦第34条或第36条记录,以便客户检查第35条记录是否已被删除。 这是我的删除按钮的代码 StudentID := UniQuery1.FieldValues['StudentID']; UniQuery1.SQL.Clear(); UniQuery1.SQL.Text :=('Delete

我在Delphi中使用了
TDBgrid
,数据集是
Adoquery
。我有许多记录的ID从1到1000。例如,现在我想通过
TadoQuery
“delete from…”来删除第35条记录。是否有任何方法可以立即聚焦第34条或第36条记录,以便客户检查第35条记录是否已被删除。 这是我的删除按钮的代码

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

任何人都可以提供帮助,非常感谢。

如果您使用TClientDataSet(无论如何这是个好主意),您可以使用。

首先,将元组的id保存在要删除的元组之前。然后删除要删除的元组,然后找到保存的元组。要访问上一个元组,请在删除之前使用uniquery1.moveby(-1)。

保存
uniquery1.RecNo
。删除后,重新查询数据集,该数据集应将第一条记录设置为活动记录,然后根据您是要移动到已删除记录的后续记录还是之前的记录,发出
UniQuery1.MoveBy(SavedRecNo-1)
UniQuery1.MoveBy(SavedRecNo-2)