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.
什么原因呀?

解决方案 »

  1.   

    ADOQuery1.close;
    ADOQuery1.sql.add('select id,name,-cg_num"cg_num" from temp_table'); //这里有问题,改成:ADOQuery1.SQL.Add('select id,name,cg_num from temp_table')
    ADOQuery1.open;但是写入数值时却出错
     ADOQuery1.Insert;
     ADOQuery1.FieldByName('cg_num').AsFloat :=0-StrToFloat(num_edit.Text) ; //此处将值改成相反的数。
     ADOQuery1.post;
    执行操作后,发现cg_num老是0,写入什么数值都是0.
    什么原因呀? 
    ADOQuery1.open;但是写入数值时却出错
     ADOQuery1.Insert;
     ADOQuery1.FieldByName('cg_num').AsFloat :=StrToFloat(num_edit.Text) ;
     ADOQuery1.post;
    执行操作后,发现cg_num老是0,写入什么数值都是0.
    什么原因呀? 
      

  2.   

    to Oraclers:
    首先这个地方不能按下面修改
    ADOQuery1.sql.add('select id,name,-cg_num"cg_num" from temp_table'); //这里有问题,改成:ADOQuery1.SQL.Add('select id,name,cg_num from temp_table')因为cg_num在表里是负数,想让显示出来的时候是正数。然后写数据的时候,写正数,存入数据库时转换成负数。
      

  3.   

    你这这种需求post搞不定, 只能直接用sql语句更新.
      

  4.   

    select id,cg_num,-cg_num disp_num from xxxxx;
      

  5.   

    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;