在dbgrid 中选择多条记录(100分)

  • 主题发起人 主题发起人 grui
  • 开始时间 开始时间
G

grui

Unregistered / Unconfirmed
GUEST, unregistred user!
想在dbgrid上选择多行之后,获取所选各行中任意某一行中的各字段
的 内容,怎么办?用Bookmark吗,具体怎样?
 
for I := 0 to DBGrid1.SelectedRows.Count - 1 do
begin
DBGrid1.DataSource.DataSet.GotoBookMark(
TBookMark(DBGrid1.SelectedRows));
....
end;
 
下面是我的程序的一段
var
i:integer;
x: word;
TempBookmark: TBookMark;
begin
i:=0;
DBGrid1.Datasource.Dataset.DisableControls;
while i<=dbgrid1.SelectedRows.Count-1 do
begin
DBGrid1.Datasource.Dataset.Bookmark:= dbgrid1.SelectedRows.Items;
TempBookmark:= DBGrid1.Datasource.Dataset.GetBookmark;
DBGrid1.Datasource.Dataset.GotoBookmark(TempBookmark);
// 现在DBGRID1连接的数据集指到了一条选择的记录,可以进行操作了
// 比如 DbGrid1.DataSource.DataSet.FieldByName('record1').AsString...

end;
DBGrid1.Datasource.Dataset.FreeBookmark(TempBookmark); //释放临时BOOKMARK
DBGrid1.Datasource.Dataset.EnableControls;
End;

代码在 D3我一个多媒体数据库程序里编译通过
 
首先把TDBGRID属性OPTIONS中的dgMultiSelect设为TRUE
var
pSelectList : TBookMarkList;
begin
pSelectList := DBGrid.SelectedRows;
if pSelectList.Count = 0 then
Exit;

for i := 0 to pSelectList.Count-1 do
begin
DBGrid.DataSource.DataSet.Bookmark := pSelectList.Items;
DBGrid.DataSource.DataSet.Found;
/*数据已定位*/
end;
END;
 
提问者很久没来了。大家瓜分了吧。
事实也问题不大,可以解决吧。

-- by 3h
 
后退
顶部