Получать результаты ProC SQL как -nan вместо 0, когда они равны нулю - PullRequest
0 голосов
/ 16 мая 2019

Использование структуры, определенной как:

EXEC SQL BEGIN DECLARE SECTION;
typedef struct U_DataInfo{
    char    Cfg_Name[51];
    int     ID;
    // Others elements
    double  X;
    double  Y;
} U_DataInfo;
EXEC SQL END DECLARE SECTION;

Используемый запрос прост как:

SELECT DISTINCT CFG_NAME, ID, /* some columns */, X, Y
          FROM table vi
          LEFT JOIN other_table ON other_table.other_id = vi.id
          LEFT JOIN /* other joins */
          /* where conditions */

В результатах X и Y могут быть NULL.

enter image description here

Затем используя курсор как:

U_DataInfo VL_Elem;
// Declare a dynamic cursor
EXEC SQL DECLARE SQL_DataCursor STATEMENT;
EXEC SQL PREPARE SQL_DataCursor FROM :SelectQuery;
EXEC SQL DECLARE DataCursor  CURSOR FOR SQL_DataCursor;
// Open the cursor
EXEC SQL OPEN DataCursor;
// Some stuff and while...
EXEC SQL FETCH DataCursor
        INTO :VL_Elem.Cfg_Name,
        :VL_Elem.ID,
         // Some Stuff
        :VL_Elem.X,
        :VL_Elem.Y;
// Some stuff
EXEC SQL CLOSE DataCursor;

Всякий раз, когда запрос SQL возвращает значения NULL для X и Y, их переменные в U_DataInfo принимают значение 0,000.

Можем ли мы сделать их -nan, чтобы иметь возможность проверить это позже в коде?

...