var
delsql:string;
begin
delsql:='';
if 1.checked then
delsql:=' where f=001'
if 2.checked then
if delsql='' then
delsql:=' where f=002'
else delsql:=' or f=002'
...
with adoquery1 do begin
close;
sql.clear;
sql.add('delete table '+delsql);
execsql;
end
end
delsql:string;
begin
delsql:='';
if 1.checked then
delsql:=' where f=001'
if 2.checked then
if delsql='' then
delsql:=' where f=002'
else delsql:=' or f=002'
部分能否用一个循环来简化?
while not ADOQuery1.Eof do
begin
if CheckListBox1.Checked[ADOQuery1.RecNo-1] then
begin
for i:=0 to FieldConst-1 do
dw_dm:=ADOQuery1.Fields[0].Asstring;
with adoquery1 do begin
close;
sql.clear;
sql.add('delete table where dwdm='''+dw_dm+'''');
execsql;
end
那当然错了,你用一个adoquery1能不错吧,外面是循环,里面还改sql语句!!
这样做吧,
var
i:integer;
adoquery.sql.add('delete * from tablenmae where dwdm=:dm');
for i:=0 to checklistbox1.items.count-1 do
begin
if checklistbox1.check then
begin
adoquery1.close;
adoquery1.parameters.parambyname('dm').value:=ss;//ss为checklistbox1选中后的单位代码!!
adoquery1.execsql;
end;
end;