Компиляция MOF-кода со значениями Floating-Point
Компилятор MOF принимает значение с плавающей запятой, указанное для свойства без запятой. Значение округляется вверх или вниз и сохраняется как число без запятой. Такая ситуация может привести к непредвиденным результатам.
В следующем примере кода MOF определяется класс с именем abc в пространстве имен Test. Этот MOF-код компилируется без ошибок, но вы не можете запросить значение с плавающей запятой, определенное для свойства exampleUint16 в экземпляре, создаваемом этим кодом.
#pragma namespace ("\\\\.\\Root")
instance of __Namespace
{
Name = "Test";
};
#pragma namespace ("\\\\.\\Root\\test")
Class abc
{
[KEY] String testID ;
Uint16 exampleUint16;
Real64 exampleReal64;
};
Instance of abc
{
TestID ="exampleID";
exampleUint16 = 1000.4;
};
При выполнении следующего запроса вы получите код ошибки, указывающий на недопустимый запрос.
SELECT * FROM abc WHERE exampleUint16 = 1000.4
Однако следующий запрос находит указанный экземпляр.
SELECT * FROM abc WHERE exampleUint16 = 1000
Связанные темы