delphi插入数字相反的值失败,大家帮小弟我看一上

delphi插入数字相反的值失败,大家帮我看一下。
ADOQuery1.close;
ADOQuery1.sql.add('select id,name,-cg_num"cg_num" from temp_table');
ADOQuery1.open;

但是写入数值时却出错
 ADOQuery1.Insert;
 ADOQuery1.FieldByName('cg_num').AsFloat :=StrToFloat(num_edit.Text) ;
 ADOQuery1.post;
执行操作后,发现cg_num老是0,写入什么数值都是0.
什么原因呀?

------解决方案--------------------
ADOQuery1.close;
ADOQuery1.sql.add('select id,name,-cg_num"cg_num" from temp_table');
ADOQuery1.open;

我不知道楼主问题的原因。但楼主这个语句的用法不安全。应该是
ADOQuery1.close;
adoquery1.sql.clear;//这句在二次执行时非常必要。
ADOQuery1.sql.add('select id,name,cg_num,-cg_num  as cg_num2 from temp_table');//这个改成这样试试显示就用cg_num2,修改就用cg_num
ADOQuery1.open;