如何取出dbgrideh选中的多行的数据?

zgjob 2007-12-18 11:41:36
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
begin
with ClientDataSet1 do
begin
Close;
Fields.Clear;
FieldDefs.Clear;
CommandText := SQLStr1;
FieldDefs.Update;
with TFieldDef(FieldDefs.Insert(0)) do
begin
Name := 'FIELD_NAME';
DataType := ftBoolean;
DisplayName := 'FIELD_NAME';
end;
for i := 0 to FieldDefs.Count - 1 do
FieldDefs[i].CreateField(ClientDataSet1);
Fields[0].FieldKind := fkInternalCalc;
Open;
end;
end;

procedure TForm1.ClientDataSet1CalcFields(DataSet: TDataSet);
begin
with ClientDataSet1 do
begin
if Fields[0].Value = Null then Fields[0].AsBoolean := False;
end;
end;
用上面的代码,创建了一个临时的选择列,但如何取出当前dbgrideh已选中的列的第二列的所有数据?以便提供给另一个adoquery做查询条件的值?
...全文
277 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangxuelid 2007-12-29
  • 打赏
  • 举报
回复
不行哟,我是说的第一个字段为虚建立的check字段,是想将当前勾选中的行的值取出?
---
对于你说的,因为你的数据都已经选择好了,利用Clientdataset判断check是否为True或FALSE再添加数据,这个应该不是问题吧!!!
zgjob 2007-12-29
  • 打赏
  • 举报
回复
不行哟,我是说的第一个字段为虚建立的check字段,是想将当前勾选中的行的值取出?
wangxuelid 2007-12-26
  • 打赏
  • 举报
回复
终于解决这个问题---昨天
var
i,j:integer;
str: string;
Begin
str:='';
for i:=0 to DBgrid1.selectedrows.count-1 do
begin
Gotobookmark(pointer(DBgrid1.selectedrows.ites[i]));
for j:=0 to fieldcount-1 do
Begin
if j>0 then
str:=','+str;
str:=fields[i].Asstring;
End;
listbox1.items.add(str);
str:='';
End;
End;
wangxuelid 2007-12-21
  • 打赏
  • 举报
回复
c
brightyang 2007-12-18
  • 打赏
  • 举报
回复
好像有一个selectedrows
Dhammacakkhu 2007-12-18
  • 打赏
  • 举报
回复
               
for i := 0 to DBGrid1.SelectedRows.Count - 1 do
begin
adods.GotoBookmark(pointer(DBGrid1.SelectedRows[i]));

// your code here...
end;

2,496

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧