I need to retrieve, through a CTRL script, the ELEMENT_ID of the ELEMENTS table in RDB archive.
dpGetId() retrieves dp_id and dpe_id, but how do I get sys_id and how do I combine them to calculate ELEMENT_ID?
Thanks.
ELEMENT_ID
Search
Re: ELEMENT_ID
The system ID is the system number. The system number you can get with the function getSystemId() if you know the system name.
Best Regards
Leopold Knipp
Senior Support Specialist
Best Regards
Leopold Knipp
Senior Support Specialist
Re: ELEMENT_ID
Ok, but how to calculate ELEMENT_ID? Maybe:
ELEMENT_ID = dp_id * 0x1000000 + dpe_id * 0x100 + sys_id
?
ELEMENT_ID = dp_id * 0x1000000 + dpe_id * 0x100 + sys_id
?
-
- Posts: 1
- Joined: Fri Jan 20, 2017 1:59 pm
Re: ELEMENT_ID
I think so. The formula seems right, because my results are correct.
Re: ELEMENT_ID
The information from the source code to calculate the ELEMENT_ID is
PVSSlonglong SQLParser::makeElementIDNr(unsigned long dpId,
long dpeId,
SystemNumTypeRDB sysID)
{
/*
PVSSlonglong elemID = (((PVSSlonglong) dpId) << 24) +
(((PVSSlonglong) dpeId) << 8) +
(PVSSlonglong) sysID;
*/
//cut out the first 8 bits
PVSSlonglong tSys1 = (PVSSlonglong) ( (PVSSlonglong) sysID & 0xFF);
PVSSlonglong tSys2 = (PVSSlonglong) (( (PVSSlonglong) sysID >> 8) & 0xFFFF);
PVSSlonglong elemID = (((PVSSlonglong) tSys2) << 56) +
(((PVSSlonglong) dpId) << 24) +
(((PVSSlonglong) dpeId) << 8) +
(PVSSlonglong) tSys1;
return elemID;
Best Regards
Leopold Knipp
Senior Support Specialist
PVSSlonglong SQLParser::makeElementIDNr(unsigned long dpId,
long dpeId,
SystemNumTypeRDB sysID)
{
/*
PVSSlonglong elemID = (((PVSSlonglong) dpId) << 24) +
(((PVSSlonglong) dpeId) << 8) +
(PVSSlonglong) sysID;
*/
//cut out the first 8 bits
PVSSlonglong tSys1 = (PVSSlonglong) ( (PVSSlonglong) sysID & 0xFF);
PVSSlonglong tSys2 = (PVSSlonglong) (( (PVSSlonglong) sysID >> 8) & 0xFFFF);
PVSSlonglong elemID = (((PVSSlonglong) tSys2) << 56) +
(((PVSSlonglong) dpId) << 24) +
(((PVSSlonglong) dpeId) << 8) +
(PVSSlonglong) tSys1;
return elemID;
Best Regards
Leopold Knipp
Senior Support Specialist