创建一张表,表内包含一列Name,定义为varchar2(10)。怎样在C语言下,给这列赋值为NULL因为我试过,用CRecordset类派生这张表的CTableSet,其中CString m_strName成员变量与Name列为映射关系。若第一次m_strName="11",修改到数据库中的数据也是"11"这个字符串。
但第二次m_strName="",引号中无任何字符,修改到数据库后,name这个字段的ASCII码是 049,也就是说,name的第一个字符是结束符,但是第二个字符仍然是字符1。请问这是为甚么呢?
如何才能把name字段值赋为NULL期待各位高手解答。
谢谢了

解决方案 »

  1.   

    应该是代码写错了。或者说m_strName="",赋值或保存没成功
    还有就是应该注意 null 和 ''是不一样的。
      

  2.   

    应该是代码写错了。还有就是应该注意 null 和 ''是不一样的。
      

  3.   

    代码是没有写错的,而且我跟踪过代码赋值成功的。
    当m_strName=""时,两次写入数据库,那么这个字段就是NULL。
    很奇怪啊。
    再请教一下,如何给这个字段赋值一次为NULL呢
      

  4.   

    varchar2 9i以上就是认为null='',至少9i r2是这样认为的。
      

  5.   

    如果,不能确定数据库可能的迁移。最好用update set col=null
      

  6.   

    我也是认为当m_strName=""时,该字段就应该时NULL了但是第一次写进去的时候不是NULL,只有再次写进去的时候才是NULL所以觉得非常奇怪。ps:我用的数据库是9i的,8i和9i在这方面不一样吗?
      

  7.   

    ps:我用的数据库是9i的我用的也是9I
    重来没发现你说的问题
    怀疑是代码的问题
      

  8.   

    但是第一次写进去的时候不是NULL,只有再次写进去的时候才是NULL--也许你第二次才提交
      

  9.   

    m_strName default null 行不行