static void Enum2StrTest(Args _args)
{
Query q;
QueryBuildDataSource qbds;
QueryRun qr;
PurchParmUpdate purchParmUpdate;
;
q = new Query();
qbds = q.addDataSource(tableNum(PurchParmUpdate));
qbds.addRange(fieldNum(PurchParmUpdate,DocumentStatus)).value(enum2str(DocumentStatus::None));
info(qbds.toString());
}
SELECT * FROM purchParmUpdate WHERE ((DocumentStatus = 0))突然奇想,由于枚举值在数据库里存储的类型是int,如果Lable全是数字的话,结果会怎么样那?我试着将None对应的值设为2,上面的语句打印的结果变成了:
SELECT * FROM purchParmUpdate WHERE ((DocumentStatus = 2))
SELECT * FROM purchParmUpdate WHERE ((DocumentStatus = 234))综上所述:
1.对于枚举类型的值一定要为其设置Label;
2.设定的值不能全为数字.
当然我这只是自己瞎鼓捣的结果,不知道微软有没有正式的文档说明这个问题,所以如果有人知道如何解决这个问题,还望多多指教.
非常感谢JachE!

