有关dbgrideh选择的问题(100)

  • 主题发起人 主题发起人 极品铁观音
  • 开始时间 开始时间

极品铁观音

Unregistered / Unconfirmed
GUEST, unregistred user!
请问在dbgrideh1选择几条记录(几行)后要通过什么方法能在另一个数据集或dbgrideh2中只显示被dbgrideh1被选中的记录。
 
dbgrideh1 的数据必定在数据库中,你先从数据库 过滤出你所需要的数据 然后显示在另外的dbgrideh2中
 
数据是动态的,就是不知如何过滤,要把所选的取出来,其他的不要,但不能删除。
 
for I :=0 to dbgrideh1.SelectedRows.count -1 dobegin dbggrideh1.Datasource.dataset.GotoBookmark(pointer(selectrows.item)); //指定了当前的记录,搞到另外的dbggrideh2中,应该不难end;
 
to liurui525:用这种语句取出一个字段我做好了,但字段太多,写起来程序很长,我觉得不合理,所以来问有没其他方法,能简便点的。且这种方法也要插入表后再通过数据集控件连接的。
 
不用写太多吧dbgGrideh2连接的数据集可以根据dbgGrideh1的DataSet中的内容用CreateDataSet来创建2的DataSet,和1的数据结构完全相同2的数据集的创建。 DataSet2.Fielddefs.Clear;for I :=0 to DataSet1.Fields.count - 1 dobegin Dataset2.FieldDefs.Add(DataSet1.Fields.FieldName, DataSet1.Fields.DataSize);end;DataSet2.CreateDataSet; for I :=0 to dbgrideh1.SelectedRows.count -1 dobegin dbggrideh1.Datasource.dataset.GotoBookmark(pointer(selectrows.item)); dataset2.Append; for J :=0 to dbggrideh1.Datasource.dataset.Fields.Count - 1 do begin FN :=dbggrideh1.Datasource.dataset.Fields[j].FieldName DataSet2.FieldByName(FN).Value :=dbggrideh1.Datasource.dataset.FieldBynaem(FN).Value; end; Dataset2.postend;
 
var i,j:integer;fn:string;begindatasource2.DataSet.Fielddefs.Clear;for I :=0 to datasource1.DataSet.Fields.count - 1 dobegin datasource2.Dataset.FieldDefs.Add(datasource1.DataSet.Fields.FieldName,datasource1.DataSet.Fields.DataType);end;datasource2.Createdataset;for I :=0 to dbgrideh1.SelectedRows.count -1 dobegin dbgrideh1.Datasource.dataset.GotoBookmark(pointer(dbgrideh1.SelectedRows.items)); datasource2.dataset.Append; for J :=0 to dbgrideh1.Datasource.dataset.Fields.Count - 1 do begin FN :=dbgrideh1.Datasource.dataset.Fields[j].FieldName; datasource2.DataSet.FieldByName(FN).Value :=dbgrideh1.Datasource.dataset.FieldByname(FN).Value; end; datasource2.Dataset.post;end;end;procedure TForm1.FormCreate(Sender: TObject);beginwith adoquery1 do begin close; sql.Clear; sql.Add('select * from hz_grou'); open; active:=true;end;end;end.to liurui525:谢谢您,我改后能编译通过,但执行时出错
 
不知道你出的是啥错是不是这段datasource2.DataSet.Fielddefs.Clear;for I :=0 to datasource1.DataSet.Fields.count - 1 dobegin datasource2.Dataset.FieldDefs.Add(datasource1.DataSet.Fields.FieldName,datasource1.DataSet.Fields.DataType);end;[red]datasource2.Createdataset;[/red]
 
多人接受答案了。
 
后退
顶部