是赋空值!!!
类似:
with query do
begin
active:=false;
sql.clear;
sql.add('insert into table (zd1,zd2) values (:zd1,:zd2)');
parambyname('zd1').assstring:=trim(edit1.text);
if trim(edit2.text)='' then
parambyname('zd2').assstring:=null //问题在此!!!
else
parambyname('zd2').assstring:=trim(edit2.text);
ExecSQL;
end;