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
begin
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;
含义:WhiteList表里White_Keyword模糊字段逐行和DNSCACHE 表里的Domain字段比较,相同符合条件的记录在DNSCACHE表里的Levels字段变成W
只能针对单条记录操作,如针对多条记录进行操作时候
出现:
提示:list index out of bounds (1)
请指点
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
begin
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;
含义:WhiteList表里White_Keyword模糊字段逐行和DNSCACHE 表里的Domain字段比较,相同符合条件的记录在DNSCACHE表里的Levels字段变成W
只能针对单条记录操作,如针对多条记录进行操作时候
出现:
提示:list index out of bounds (1)
请指点
if form1.DBGridEh7.DataSource.DataSet.RecordCount > 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
begin
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;
还是出现一样的提示?请指点.