1

我在 ksql.h 的枚举中添加了一个新值 (NULL_IS_NOT_NIL)

enum
{
    PKEY                  = 0x000001,
    NONCOLUMN             = 0x000010,
    EXPRESSION            = 0x000010,
    INSERTONLY            = 0x000100,
    NUMERIC               = 0x001000,
    NULL_IS_NOT_NIL       = 0x010000,

    MAXLEN_TABLENAME      = 50
};

不幸的是,这:

Row.SetExtras ("COMMENT2", KROW::NULL_IS_NOT_NIL);

引发错误。

db.cpp:7727: error: âNULL_IS_NOT_NILâ was not declared in this scope

另一方面

Row.SetExtras ("COMMENT2", 0x010000);

Row.SetExtras (vendor_id,  KROW::NUMERIC);

两者都可以正常工作并且不会引发错误。现在我可以通过用 0x010000 替换 NULL_IS_NOT_NIL 来解决问题,但这是个坏主意。我收到此错误是否有原因?我错过了什么明显的东西吗?

4

2 回答 2

2

您已在头文件中进行了更改,但它们并未反映在您的项目中。如评论中所述,原因是由于未将其推送到正确的文件夹。

于 2012-06-27T16:38:54.050 回答
0

您忘记给出enum名称:KROW代码片段中缺少。

另一方面,如果你调用它KROW,你会得到一个重定义错误。所以你需要想出一个不同的解决方案。(除非您直接编辑系统头文件——但肯定不是……)

于 2012-06-27T16:36:28.477 回答