#include #include #include "SDDAS_types.h" #include "libdb.h" #include "local.h" SDDAS_BOOL dbKeyToStringsWithQuery (SDDAS_ULONG data_key, char *p, char *m, char *e, char *i, char *v) { char query_str [1024]; DB_RESULT *result; DB_ROW row; static SDDAS_ULONG _last_data_key = 0; static char _project [MAX_IDFS_NAME], _mission [MAX_IDFS_NAME], _experiment [MAX_IDFS_NAME], _instrument [MAX_IDFS_NAME], _vinst [MAX_IDFS_VIRT_NAME]; if (data_key != _last_data_key) { sprintf (query_str, "SELECT project, mission, experiment, instrument, virtual "\ "FROM hierarchy WHERE data_key=%ld;", (long) data_key); if ((result = (DB_RESULT *) dbQueryStore (query_str)) != NULL) { row = (DB_ROW) dbFetchRow (result); if (row != NULL) { strcpy (_project, row [0]); strcpy (_mission, row [1]); strcpy (_experiment, row [2]); strcpy (_instrument, row [3]); strcpy (_vinst, row [4]); } dbFreeResult (result); _last_data_key = data_key; if (row == NULL) return (sFalse); } else { return (sFalse); } } strcpy (p, _project); strcpy (m, _mission); strcpy (e, _experiment); strcpy (i, _instrument); strcpy (v, _vinst); return (sTrue); } SDDAS_BOOL dbKeyToStringsWithQuery_r (SDDAS_ULONG data_key, char *p, char *m, char *e, char *i, char *v) { char query_str [1024]; DB_RESULT *result; DB_ROW row; sprintf (query_str, "SELECT project, mission, experiment, instrument, virtual "\ "FROM hierarchy WHERE data_key=%ld;", (long) data_key); if ((result = (DB_RESULT *) dbQueryStore (query_str)) != NULL) { row = (DB_ROW) dbFetchRow (result); if (row != NULL) { strcpy (p, row [0]); strcpy (m, row [1]); strcpy (e, row [2]); strcpy (i, row [3]); strcpy (v, row [4]); } dbFreeResult (result); if (row == NULL) return (sFalse); } else { return (sFalse); } return (sTrue); }