名为allocationinfo表中有记录,其中有一个名为housenumber的字段,用adoquery进行删除记录时,
我是如下操作的
with adoquery1 do
begin
close;
sql.Clear;
sql.Add('delete from allocationinfo where housenumber='''+housenumber+'''');
ExecSQL;
end;
执行之后,总是有一条为相应housenumber的记录无法删除,请大家指点一下阿。
我是如下操作的
with adoquery1 do
begin
close;
sql.Clear;
sql.Add('delete from allocationinfo where housenumber='''+housenumber+'''');
ExecSQL;
end;
执行之后,总是有一条为相应housenumber的记录无法删除,请大家指点一下阿。
begin
close;
sql.Clear;
sql.Add('delete from allocationinfo where housenumber='''+housenumber+'''');
ExecSQL;
end;
上面的第二个housenumber我想应该是个具体的变量值,在这里只是字段名,不能这样使用的.
sql.Add('delete from allocationinfo where housenumber='''+strTemp+'''');说不定就对了
sql.Add('delete from allocationinfo where housenumber='+strTemp);
begin
close;
sql.Clear;
sql.Add('delete from allocationinfo where housenumber=:housenumber);
parameters.parambyname('housenumber').value='你的值';
ExecSQL;
end;
Edit1.text:='delete from allocationinfo where housenumber='''+housenumber+''''然后拿到数据库客户端执行一下看是否有同样的情况
begin
close;
sql.Clear;
sql.Add('delete from allocationinfo where RTrim(LTrim(housenumber))='''+housenumber+'''');
ExecSQL;
end;试试
zxf_feng(阿日)
with adoquery1 do
begin
close;
sql.Clear;
sql.Add('delete from allocationinfo where housenumber=:housenumber);
parameters.parambyname('housenumber').value='你的值';
ExecSQL;
end;
begin
close;
sql.Clear;
sql.Add('delete from allocationinfo where housenumber=:housenumber'); //少了个'
parameters.parambyname('housenumber').value='你的值';
ExecSQL;
end;
parameters.parambyname('housenumber').value:='你的值';
因为char这种类型在字符长度不到10的情况下,会用空格补足10个的长度的
1、将数据类型修改为varchar(10),因为char(10)会以空格补齐
2、命令行改为
sql.Add('delete from allocationinfo where RTRIM(housenumber)='+QuotedStr(housenumber));
既然仍然存在一条记录没有删除
那么这条记录信息不符合WHERE中的条件
也就是这条记录中的字段值与所给参数不等
where like 试试就知道了