begin
if form1.DBGridEh7.SelectedRows.Count >0 then
begin
ADOQueryWhiteList.Connection := form1.ADOConnection1;
for i := 0 to form1.DBGridEh7.SelectedRows.Count - 1 do
begin
form1.DBGridEh7.DataSource.DataSet.GotoBook(pointer(form1.DBGridEh7.SelectedRows.Items[i]));
if form1.DBGridEh7.DataSource.DataSet.FieldValues['White_Keyword'] <> Null then
s1 := form1.DBGridEh7.DataSource.DataSet.FieldValues['White_Keyword']
else
s1 := '';
with form1.ADOQueryWhiteList do
[color=#FF9900 begin [/color][/color]
DisableControls;
form1.ADOQueryWhiteList.SQL.Clear;
sSql := 'update DNSCACHE set Levels =:Levels where DNSCACHE.Domain like :White_Keyword'; ;
form1.ADOQueryWhiteList.SQL.Text := sSql;
Parameters.ParamByName('Levels').Value := 'W';
Parameters.ParamByName('White_Keyword').Value :='%'+s1+'%';
try
Prepared := True;
ExecSQL;
except
end;
EnableControls;
end;
end;
Form1.DBGridEh7.selectedrows.clear;
Application.MessageBox('对比完成','对比',MB_OK);
end;
end;
选择多条记录进行操作,第一条记录完成循环操作,循环到第二条记录,红色标记那里以后,就出现提示:list index out of bounds (1),麻烦高手帮看下,从程序上看,橙色的begin end 好象没运行到.请高手指点下该怎么改?
if form1.DBGridEh7.SelectedRows.Count >0 then
begin
ADOQueryWhiteList.Connection := form1.ADOConnection1;
for i := 0 to form1.DBGridEh7.SelectedRows.Count - 1 do
begin
form1.DBGridEh7.DataSource.DataSet.GotoBook(pointer(form1.DBGridEh7.SelectedRows.Items[i]));
if form1.DBGridEh7.DataSource.DataSet.FieldValues['White_Keyword'] <> Null then
s1 := form1.DBGridEh7.DataSource.DataSet.FieldValues['White_Keyword']
else
s1 := '';
with form1.ADOQueryWhiteList do
[color=#FF9900 begin [/color][/color]
DisableControls;
form1.ADOQueryWhiteList.SQL.Clear;
sSql := 'update DNSCACHE set Levels =:Levels where DNSCACHE.Domain like :White_Keyword'; ;
form1.ADOQueryWhiteList.SQL.Text := sSql;
Parameters.ParamByName('Levels').Value := 'W';
Parameters.ParamByName('White_Keyword').Value :='%'+s1+'%';
try
Prepared := True;
ExecSQL;
except
end;
EnableControls;
end;
end;
Form1.DBGridEh7.selectedrows.clear;
Application.MessageBox('对比完成','对比',MB_OK);
end;
end;
选择多条记录进行操作,第一条记录完成循环操作,循环到第二条记录,红色标记那里以后,就出现提示:list index out of bounds (1),麻烦高手帮看下,从程序上看,橙色的begin end 好象没运行到.请高手指点下该怎么改?
解决方案 »
- TOleContainer 嵌入Excel
- 关于treeview 上下移动
- 哎,高手们帮帮忙啊,关于制作DLL。
- 有介绍delphi关于类定义,使用的书籍,或文档吗?
- Never-build package 'dclusr' requesr always-build package 'MyVCL'什么意思
- 控件如何区分是设计模式还是运行模式
- 在Delphi不能用SQL语句插入变量值吗?
- 转让笔记本电脑,赠送13000个VB代码
- ------如何取的后台服务器的时间?急!!!========
- 如何动态控制stringgrid的行数,以及如何得到鼠标点击的行号
- delphi中copy函数出问题, 请指教 急
- 帮忙写一个小小程序,ComboBox的
是不是
form1.ADOQueryWhiteList
啊你在下面已经execsql了一个update语句,就不存在数据集了下面要用的时候就出错了
begin
begin
if DBGridEh7.SelectedRows.Count >0 then
begin
ADOQueryWhiteList.Connection := form1.ADOConnection1;
for i := 0 to DBGridEh7.SelectedRows.Count - 1 do
begin
DBGridEh7.DataSource.DataSet.GotoBook(pointer(form1.DBGridEh7.SelectedRows.Items[i]));
if form1.DBGridEh7.DataSource.DataSet.FieldValues['White_Keyword'] <> Null then
s1 := form1.DBGridEh7.DataSource.DataSet.FieldValues['White_Keyword']
else
s1 := '';
with AdoQuery2 do //这里不要用adoquerywhitelist换一个
begin
DisableControls;
Close;
SQL.Text := 'update DNSCACHE set Levels =:Levels where DNSCACHE.Domain like :White_Keyword'; ;
Parameters.ParamByName('Levels').Value := 'W';
Parameters.ParamByName('White_Keyword').Value :='%'+s1+'%';
try
Prepared := True;
ExecSQL;
except
end;
EnableControls;
end;
end;
Form1.DBGridEh7.selectedrows.clear;
Application.MessageBox('对比完成','对比',MB_OK);
end;
end;
end;