碰到一个奇怪的问题:
MS SQLSERVER 2000 + DELPHI 7,用ADOCommand向数据库插入记录,
ADOCommand 的 CommandText 属性设为 insert into tbl_a (fa, fb) values (:fa, :fb)
代码
ADOCommand.Parameters.ParamByName('fa').Value := '123';
ADOCommand.Parameters.ParamByName('fa').Value := 0.56;
ADOCommand.Execute;
结果 fa 总是 0
请问是什么原因?

解决方案 »

  1.   

    你那两个怎么都是对fa的赋值啊,0.56,覆盖了123,如果fa是int型字段,那么赋值0.56就会变为0
      

  2.   


    ADOCommand.Parameters.ParamByName('fa').Value := '123';
    ADOCommand.Parameters.ParamByName('fb').Value := 0.56;
    ADOCommand.Execute;
    ADOCommand.Parameters.ParamByName('fa').Value := '123';
    ADOCommand.Parameters.ParamByName('fb').Value := 0.56;
    ADOCommand.Execute;
      

  3.   

    碰到一个奇怪的问题:
    MS SQLSERVER 2000 + DELPHI 7,用ADOCommand向数据库插入记录,
    ADOCommand 的 CommandText 属性设为 insert into tbl_a (fa, fb) values (:fa, :fb)
    代码
    ADOCommand.Parameters.ParamByName('fa').Value := '123';
    ADOCommand.Parameters.ParamByName('fb').Value := 0.56;
    ADOCommand.Execute;
      

  4.   

    不好意思,我粘贴的时候把字段名改了一下,出现了笔误
    谢谢大家的热心回复,还请继续讨论
    问题应该是:
    ==================================================
    碰到一个奇怪的问题:
    MS SQLSERVER 2000 + DELPHI 7,用ADOCommand向数据库插入记录,
    ADOCommand 的 CommandText 属性设为 insert into tbl_a (fa, fb) values (:fa, :fb)
    代码
    ADOCommand.Parameters.ParamByName('fa').Value := '123';
    ADOCommand.Parameters.ParamByName('fb').Value := 0.56;
    ADOCommand.Execute;
    结果 fa 总是 0
    请问是什么原因?
      

  5.   

    大家可以在自己的电脑上简单试验一下
    字符串型或者日期型都有这个问题,其他还没试
    我试过的情况有:数据表的字段 fa 是日期型,SQL参数 fa 是自动设的,好像是叫ftDateTime,实际赋的值是TDataTime或String型。
    这个问题只出现在第一个SQL参数上,如果把参数交换一下位置,
    比如把 CommandText 属性设为 insert into tbl_a (fb, fa) values (:fb, :fa)
    则新的第一个参数,也就是 fb , 就会有0值的问题不知道是不是我的系统有什么地方不对?