Using Query Metadata
There are two ways of accessing information about a query:
The query classes (QueryOutputField, QueryRecord, and so on).
The Metadata property.
If you use the Metadata property, the information is presented in a different format. It is also read-only. Using this property can be a quick and easy way to access information about a query.
Each Query Metadata object is a name-value pair. Name is an indicator of which Query Metadata property you're accessing, and Value is the value of that property.
While the value of each Query Metadata property is unique, the name may or may not be. For example, there is only one description (Descr) for each query, so there is only one Query Metadata property with name equal to Descr and value equal to the description for the query.
However, there may be more than one record for a query. A Query Metadata property exists for each record, with name equal to Record and value equal to one of the records in the query. The same is true for Input Param, Expression, Field, and Heading.
The following is a simple PeopleCode program to get the Query Metadata for a private query, ADDRESS_TEMP:
Local ApiObject &MyQuery, &MyMetacol, &MyMetadata;
Local File &MyFile;
&MyFile = GetFile("Metadata.Txt", "A");
&MyQuery = %Session.GetQuery();
&Rlst = &MyQuery.Open("ADDRESS_TEMP", False, 1);
If &Rlst = 0 Then
&MyMetacol = &MyQuery.metadata;
&MyFile.WriteLine("Name Value");
&MyFile.WriteLine("-----------------------");
For &i = 1 To &MyMetacol.count
&MyMetadata = &MyMetacol.item(&i);
&Name = &MyMetadata.name;
&Value = &MyMetadata.Value;
&MyFile.WriteLine(&Name | " " | &Value);
End-For;
Else
WinMessage("Open query not successful");
End-If;
Here is the sample output:
Name Value
-----------------------
Descr Temporary address query for testing
LongDescr
Public/Private QEDMO
LastUpdDttm 2001-11-19-15.06.22.930000
LastUpdOprId QEDMO
Record QE_PERS_DATA
Field QE_EMPLID
Field QE_NAME
Field ADDRESS1
Field ADDRESS2
Field ADDRESS3
Field ADDRESS4
Field CITY
Field COUNTY
Field STATE
Field QE_ZIP
Field QE_COUNTRY
Heading ID
Heading Name
Heading Address 1
Heading Address 2
Heading Address 3
Heading Address 4
Heading City
Heading County
Heading St
Heading QE_ZIP
Heading QE_COUNTRY