精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>● Delphi>>数据库技术>>关于TDBGrid的使用>>TDBGrid控件中对多个记录的处理 [转载]

主题:TDBGrid控件中对多个记录的处理 [转载]
发信人: teleme(PassWord)
整理人: huxley(2001-12-17 20:13:49), 站内信件


TDBGrid控件中对多个记录的处理 
唐成斌 (11/29/1999)
 
  DELPHI的TDBGrid控件主要用来处理数据表,它的属性中有一个dgMultiSelect,若此属性设定为TRUE,则可以选中多个记录(可用CTRL+鼠标左键选择多个记录)。对选中的多个记录可以有以下几种处理方式,比较简单的两种是:清除所有的选择记录可用DBGrid1.SelectedRows.Clear语句;删除所有的选择记录可用DBGrid1.SelectedRows.Delete语句。但如果想获得选中的所有记录的其他信息,比如,在单独的一个窗体中显示用户选择的记录的第一个字段的内容(如所有选择的姓名)如何处理呢?这就要使用书签功能了,下面是笔者编写的一个程序中的过程,来将用户选择的多个记录集中显示在另外一个窗体中(笔者使用的是DELPHI4),供参考使用 

procedure GetSelectedRecord 
(DataSet : TDataSet; FieldName : String; 
BookmarkList : TBookmarkList; Strings : TStrings); 
//这个过程中的参数分别为:数据表、字段名称、书签、用来保存所选字段内容的 
//字符串(用于将内容传递到另一个单独窗体中的TLIST控件中) 
var 
I: Integer; 
bm : TBookMark; 
begin 
Strings.Clear; 
with Dataset do begin 
DisableControls; 
bm := GetBookMark; 
try 
//每个选择的记录都有一个书签标志,这就为处理它们提供了条件 
for I := 0 to BookmarkList.Count - 1 do begin 
Bookmark := BookmarkList[I]; 
Strings.Add(DataSet.FindField(fieldname).AsString); 
end; 
finally 
GotoBookMark(bm); 
FreeBookMark(bm); 
EnableControls; 
end; 
end; 
end; 

调用举例: 
GetSelectedRecord(Table1, `NAME`, DBGrid1.SelectedRows, Form2.ListBox1.Items); 



 原文
http://www6.163.com/it/item/0,2186,3287,00.html



----
Fire Engine   

     

[关闭][返回]