Поделиться через


Компиляция 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

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

mofcomp

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