for i:=0 to DBGrid.SelectRows.Count do
begin
DBGrid.Book := DBGrid.SelectRows.Items[i];
Table.FieldValues['..'] := true;
end;
//未测试。
begin
DBGrid.Book := DBGrid.SelectRows.Items[i];
Table.FieldValues['..'] := true;
end;
//未测试。
解决方案 »
- Delphi 7下怎么安装 Crystal Report 10?另求Crystal Report 9下载!
- 我用URLDownloadToFileA下载网络上面一个图片出问题
- access 数据库的问题,怎么使用bde连接access数据库,且动态的在.mdb中的表中添加字段
- 在delphi中怎样得到系统的信息
- 如何计算数据库内记录的条数?
- 快过年了,想办法弄点钱! 现有1亿6000万左右个商业email地址出售,管理员大哥别删哟!
- 调用exe的问题
- 如何改变菜单中的字体大小以及如何toolbar中图标大小会按钮大小变化
- 谁用过dbgrideh,这个问题怎么解决?
- $$$$$$$响一声!!!!20分
- 当窗体变化时,如何使窗体中的组件也相应地变大变小。
- 高手请帮我看一下我的一个关于字段长度的问题?
因为你既然选定了记录,也就是用dbgrid.currentrows.selected判断是否被选中,然后再作处理就行了
procedure TForm1.Button1Click(Sender: TObject);
var
i, j: Integer;
s: string;
begin
if DBGrid1.SelectedRows.Count>0 then
with DBGrid1.DataSource.DataSet do
for i:=0 to DBGrid1.SelectedRows.Count-1 do //多行选择.
begin
GotoBook(pointer(DBGrid1.SelectedRows.Items[i]));
for j := 0 to FieldCount-1 do
begin if (j>0) then s:=s+', ';
s:=s+Fields[j].AsString;
end;
Listbox1.Items.Add(s);
s:= '';
end;
end;
当然要用book,currentrowselected 只是判断当前一行是否被选中,是boolean。到底选中哪几条还得看.selectedrows.items。
首先我要说明的是,DBGrid里的数据是用SQL语句Query出来的。
不能直接在query里面修改,只能是找到某种标记,然后再用SQL
里的Update来一起修改,但当DBGrid里选中多行后,怎么知道哪些已选中,
并且用Update来进行修改呢?
然后自己拼接成UPDATE语句
建议你还是用UPDATESQL控件吧
然后再对那些记录进行修改不就方便多了吗!
就是说可以直接修改结果集了,现在应该怎样实现我想要的功能呢?