批量修改如何做?急!在线等!!!!

every123 2003-09-23 05:25:10
1。DBGRID如何选择多条记录,进行批量修改?
就是说:其中有20条记录,记录学生资料,要修改其中5条记录的成绩,改成90分,请问怎么做?
2。如上题:修改的5条记录中有2条记录不满足条件,如何将满足条件的3条记录进行处理。(不满足条件的记录不一定在第一条)。
最好有相关代码,谢谢
...全文
56 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
mxk19791116 2003-09-24
  • 打赏
  • 举报
回复
你运气正好,我这儿有个现成的。


if RadioButton1.Checked=true then //已选中的。
begin
setlength(idary,dbgrid1.SelectedRows.Count);
with rsWFYH do
for i:=0 to DBGrid1.SelectedRows.Count-1 do
begin
GotoBookmark(pointer(DBGrid1.SelectedRows.Items[i]));
idary[i]:=rsWFYH.Fieldbyname('cLiuSH').AsString;
end;
end
else
if RadioButton2.Checked=true then//全部选中的
begin
setlength(idary,rswfyh.RecordCount );
rsWFYH.First;
with rsWFYH do
for i:=0 to rswfyh.RecordCount -1 do
begin
idary[i]:=rsWFYH.Fieldbyname('cLiuSH').AsString;
Next;
end;
end
else
if RadioButton3.Checked=true then//未选中的
begin
setlength(idaryTemp,dbgrid1.SelectedRows.Count);
with rsWFYH do
for i:=0 to DBGrid1.SelectedRows.Count-1 do
begin
GotoBookmark(pointer(DBGrid1.SelectedRows.Items[i]));
idaryTemp[i]:=rsWFYH.Fieldbyname('cLiuSH').AsString;
end;
setlength(idary,rswfyh.RecordCount-dbgrid1.SelectedRows.Count );
rsWFYH.first;
k:=0;
with rsWFYH do begin

for i:=0 to rswfyh.RecordCount -1 do
begin
a:=1;
for j:=low(idaryTemp) to high(idaryTemp) do
begin
if rsWFYH.Fieldbyname('cLiuSH').AsString=idaryTemp[j] then
a:=0;
end;
if a=1 then begin
idary[k]:=rsWFYH.Fieldbyname('cLiuSH').AsString;
k:=k+1;
end;
Next;
end;
end;
end
else
begin//已选中的
setlength(idary,dbgrid1.SelectedRows.Count);
with rsWFYH do
for i:=0 to DBGrid1.SelectedRows.Count-1 do
begin
GotoBookmark(pointer(DBGrid1.SelectedRows.Items[i]));
idary[i]:=rsWFYH.Fieldbyname('cLiuSH').AsString;
end;
end;
PrgmLover 2003-09-24
  • 打赏
  • 举报
回复
不满足条件的记录提示出来: 在你每次处理判断的时候,记录不满足条件的记录,完成之后一起提示
WWWWA 2003-09-24
  • 打赏
  • 举报
回复
不满足条件的记录提示出来:
设置不同的颜色
delphi_xizhousheng 2003-09-24
  • 打赏
  • 举报
回复
修改可以用书签(bookmark)来做
要是过滤的话就用filter咯
dbgrid1.DataSource.DataSet.Filter:='分数字段<>90';
dbgrid1.DataSource.DataSet.Filtered:=True;
FrameSniper 2003-09-24
  • 打赏
  • 举报
回复
支持Impeel
every123 2003-09-24
  • 打赏
  • 举报
回复
WWWWA(aaaa)
怎么在批量修改结束后把不满足条件的记录提示出来,谢谢!
lmpeel 2003-09-24
  • 打赏
  • 举报
回复
根据条件生成一个sql语句 update table1 set xxxx=90 where .........

用 Tquery 执行一下不就行了吗?
Shiyl 2003-09-24
  • 打赏
  • 举报
回复
mark
WWWWA 2003-09-23
  • 打赏
  • 举报
回复
将DBGRID的DGROWSELECT、DGMULTISELECT设为TRUE;
fot I=O TO dbgrid1.SelectedRows.Count-1 do
begin
dbgrid1.DataSource.DataSet.GotoBookmark(pointer(dbgrid1.SelectedRows.items[i]));
IF dbgrid1.DataSource.DataSet.FIELDBYNAME('FIELDNAME').ASSTRING=条件 THEN
DO SOMETHING
end;
WWWWA 2003-09-23
  • 打赏
  • 举报
回复
将DBGRID的DGROWSELECT、DGMULTISELECT设为TRUE;
fot I=O TO dbgrid1.SelectedRows.Count-1 do
begin
dbgrid1.DataSource.DataSet.GotoBookmark(pointer(dbgrid1.SelectedRows.items[i]));
IF dbgrid1.DataSource.DataSet.FIELDBYNAME('FIELDNAME').ASSTRING=条件 THEN
DO SOMETHING
end;
WWWWA 2003-09-23
  • 打赏
  • 举报
回复
将DBGRID的DGROWSELECT、DGMULTISELECT设为TRUE;
fot I=dbgrid1.SelectedRows.Count-1 do
begin
dbgrid1.DataSource.DataSet.GotoBookmark(pointer(dbgrid1.SelectedRows.items[i]));
IF dbgrid1.DataSource.DataSet.FIELDBYNAME('FIELDNAME').ASSTRING=条件 THEN
DO SOMETHING
end;

2,498

社区成员

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

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