Компиляция кода MOF со значениями Floating-Point

Компилятор MOF принимает значение с плавающей запятой, указанное для свойства nonfloating-point. Это значение округляется вверх или вниз и сохраняется в виде нефлояционного числа точек. Эта ситуация может привести к непредвиденным результатам.

В следующем примере кода 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

Компиляция файлов MOF

mofcomp

Команды препроцессора