% Librarian T01-29`xXxX!!!5=u2(ACL/FADTHVBoolean_ExpressionsLClientCommands_Statements_ClausesM6DBMSY Dictionary_EditorError_MessagesiFormsW FunctionsGatewaykGuideKeywords Logical_NamesNMotifNEWUSERm New_Features6Node Path_name6 ProcedureQuitRDB* Release_Notesle_DataSearchStartupSynonyms0:TrainingValue_Expressions2VersionsVideofRSER Sample_DataSearchStartupSynonyms0:TrainingValue_Expressions2VersionsVideo  Release_NotesVideo fxX1 Value_ExpressionsD Value expressions specify values that DEC DATATRIEVE uses when executing statements.  2 LiteralsF The simplest way to specify a value is with a literal. A literalC is either a character string enclosed in quotation marks or a number.  3 Character_String_LiteralsC A character string literal is a string of printing charactersC up to 253 characters long. The maximum size for an input line B in DEC DATATRIEVE is 255 characters, but in character stringB literals, two of those characters are used for the quotationA marks. The printing characters consist of the uppercase andG lowercase letters, numbers, and the following special characters: % ! @ # $ % ^ & * ( ) - _ = + ` [ % { ] } ~ ; : ' " \ | , < . > / ? = To type a literal on more than one line, enter a hyphenG immediately before pressing the RETURN key. DEC DATATRIEVE  stripsC the hyphen from that part of the character string literal andA waits for you to complete the literal by typing the closingB quotation mark. As long as the total number of characters in@ the literal does not exceed 253, you can use any number of: continuation characters between the quotation marks. D Although DEC DATATRIEVE usually converts all lowercase lettersC of your input to uppercase, it preserves lowercase letters inB character st ring literals. Because the case of the characterD string literals is preserved, comparisons using these literals are case sensitive.  3 Numeric_LiteralsA A numeric literal is a string of digits that DEC DATATRIEVEE interprets as a decimal number. A numeric literal may contain aF decimal point and up to 31 digits. The decimal point is optional9 and is not counted in the maximum number of digits. A A numeric literal can begin with a decimal point. Thus, for- example, .5 is a valid numeric literal. E A numeric literal cannot end with a decimal point. For example,0 123. is not a valid numeric, but 123.0 is. D If you use a numeric literal to assign a value to a field or aC variable, the data type of the field or variable controls the# maximum value you can assign.  2 Qualified_Field_NamesB You can use elementary field names, virtual field names, and- group field names as value expressions.  '3 Elementary_and_REDEFINES_Field_NamesB The value specified by an elementary field name is the valueE stored in a field of a record. If the field name you use refersA to a REDEFINES field, the value associated with the name isB determined by the clauses that define the REDEFINES field in the record definition.  3 COMPUTED_BY_FieldsD COMPUTED BY fields are virtual fields. DEC DATATRIEVE does notD stor e the value of a COMPUTED BY field in a record. That valueF is calculated every time you refer explicitly or implicitly to a COMPUTED BY field. C The COMPUTED BY clause includes a value expression. The valueA specified by the virtual field is associated with the value+ expression in the COMPUTED BY clause.  3 Group_Field_NamesB When you use group field names in assignment statements, theD value of the group field depends on the type of as signment you specify. For example: 0 o group-field-name-1 = group-field-name-2 D In this type of assignment, the value of group-field-name-2D includes the values of all elementary fields, all REDEFINESE fields, and all COMPUTED BY fields. The assignment of values? is made on the basis of similar field names. For fieldB names in group-field-1 that match names in group-field-2,B DEC DATATRIEVE assigns the values in group-fi eld-2 to the- appropriate fields in group-field-1. A DEC DATATRIEVE ignores any fields in group-field-2 whoseE names do not match any field names in group-field-1. For anyE elementary field in group-field-1 whose name matches none ofE the field names in group-field-2, DEC DATATRIEVE assigns theG MISSING or DEFAULT value if one is defined for the field, or aG value of 0 if the field is numeric, or a blank if the field is$  alphabetic or alphanumeric. > DEC DATATRIEVE stores no values in any COMPUTED BY orE REDEFINES fields in group-field-1, regardless of any matchesD between the names of those fields and fields of any type in group-field-2. A The values of the elementary, REDEFINES, and COMPUTED BYA fields associated with group-field-name-2 are the valuesG stored in or associated with the fields that constitute group- field-2 of a record. 1 o elementary-field-name = group-field-name A Because of problems that can arise from conflicting data= types, assignments of this type are not recommended. G If you make an assignment of this type, the value of the groupC field is the same value displayed when you enter a DISPLAYF group-field-name statement. The value is the concatenation ofF the values in the elementary fields that constitute the groupE  field. The REDEFINES and COMPUTED BY fields are ignored. YouD can reduce conflicts of data types by using an alphanumericB PICTURE string in the definition of the elementary field.  3 Query_NamesE If the record definition contains a query name for a field, youD can use the query name exactly as you use the associated field name.  3 Qualifying_Field_NamesB To clarify the context for recognizing names and associatingG va!lues with those names, you can qualify field names with several optional elements:  o Context variables @ Distinguish between fields in different record streams.  o Collection names D Distinguish between fields in selected records in differentE collections. You can use a collection name to modify a field% from a selected record only.  o Domain names E Distinguish between fields that have the "same field name but/ are associated with different domains.  o Record names E Distinguish between fields that have the same field name but, are contained in different records.  o Group field names E Distinguish between fields that have the same field name but1 are contained in different group fields. 6 Use the following format to specify field names:  [ collection-name ]G [ context-vari #able ][domain-name] [group-field-name] [...] field- [ ] name D For duplicate field names, you must specify whatever option or? combination of options is needed to make the name unique.  2 VariablesF The DECLARE statement defines global and local variables for useG as value expressions. When DEC DATATRIEVE initializes a variable,G it assigns the variable the MISSING VALUE or DEFAULT VALUE if oneE is specified in th $e DECLARE statement. DEC DATATRIEVE assigns aF value of zero to numeric variables and a space to alphabetic andD alphanumeric variables if no MISSING VALUE or DEFAULT VALUE is specified.  3 Global_VariablesB You can define global variables only with DECLARE statementsF entered in response to the DTR> prompt of DEC DATATRIEVE command level. D You can use a global variable as a value expression in any DECD DATATRIEVE statement. Unless % you define a global variable withE a COMPUTED BY clause, the global variable retains the value youG assign to it until you either assign it a new value or release it with the RELEASE command. F The value of a global variable defined with a COMPUTED BY clauseD depends on the value expression that controls the computation.F For example, you can declare the value of the variable to be 1.2F times the price of a boat in the YACHTS domain. The value of the&D variable changes according to the value of the PRICE field for different records:  DTR> READY YACHTS/ DTR> DECLARE VAR COMPUTED BY PRICE * 1.2.8 DTR> FOR FIRST 5 YACHTS PRINT VAR USING $$$,$$$.99 VAR  $44,341.20 $21,480.00 $33,000.00 $22,320.00 $11,874.00 DTR>  3 Local_VariablesG You can define local variables with DECLARE statements entered in$ BEGIN-END and THEN sta 'tements. F A local variable is released as soon as DEC DATATRIEVE completes> the execution of the clause or statement in which it was= declared. Although a local variable stays in effect forD subsequent statements of the compound statement in which it isD declared, it has no meaning in any outer statements containing that compound statement.  3 Null_Values_and_VariablesA DEC DATATRIEVE supports relational databases null values inF va(riables. Therefore, DEC DATATRIEVE has the following behavior: @ o When transferring a missing value from a DEC DATATRIEVEB variable to a relational field, the field receives a null value. 7 DTR> DECLARE VAR PIC X(10) MISSING VALUE "77". DTR> PRINT VAR VAR 77 = DTR> STORE EMPLOYEE_MANAGER_TABLE USING EMP_ID = VAR* DTR> PRINT EMPLOYEE_MANAGER_TABLE EMP_ID MGR_ID )  NULL NULL DTR> D o When transferring a null value from a relational field to aB DEC DATATRIEVE variable, the variable receives either itsE missing value (if a MISSING VALUE clause is specified in theD variable definition), or a null value (if the variable does- not contain a MISSING VALUE clause). < DTR> DECLARE EMPLOYEE PIC X(10) MISSING VALUE 8999.- DTR> FOR X IN EMPLOYEE_MANAGER_TABLE * CON> EMPLOYEE = EMP_ID DTR> PRINT EMPLOYEE  EMPLOYEE 8999( DTR> DECLARE MANAGER PIC X(10).- DTR> FOR X IN EMPLOYEE_MANAGER_TABLE CON> MANAGER = MGR_ID DTR> PRINT MANAGER  MANAGER NULL DTR>  2 Date_Value_ExpressionsC If you define a field or a variable with a USAGE DATE clause,E then you can assign a value with one of the four DEC DATATRIEVE+ date value expressions: > o "TODAY" returns the value of the current system date. E o "NOW" returns the value of the current system date and time. D o "YESTERDAY" returns the value of one day before the current date. B o "TOMORROW" returns the value of one day after the current date. C Note that "NOW" is the only value expression that returns theC time as well as the date. You can use the function FN$DATE t,o5 assign a date field a time that is not current. @ You can add or subtract dates. For example, you might wantB to know how many days you have to complete a project. DefineD variables for today's date and the project date. Then subtract- today's date from the project due date: DTR> DECLARE T USAGE DATE. DTR> T = "TODAY"$ DTR> DECLARE PROJECT_DUE DATE.$ DTR> PROJECT_DUE = "21-AUG-90"" DTR> PRINT (PROJECT_DUE - T) - 112 DTR> C DEC DATATRIEVE indicates that the project is due in 112 days. C To use these value expressions, you must assign the DATE dataE type to the field or variable. Otherwise, DEC DATATRIEVE treats@ the expression as a character string literal. For example:  DTR> PRINT "TODAY" TODAY DTR> A DEC DATATRIEVE returns the value "TODAY" because the quotedB expression is not associated wit.h a variable or field of theF DATE data type. However, if you supply an edit string containingE date edit string characters, DEC DATATRIEVE returns the current; system date in the form specified by the edit string: ( DTR> PRINT "TODAY" USING DD-MMM-YY 18-Jan-90 DTR>  2 Prompting_Value_ExpressionsA If you want DEC DATATRIEVE to prompt you for a value, use aC prompting value expression. This feature is especially usefulC / in a procedure because it allows you to use a different valueG each time you invoke the procedure. DEC DATATRIEVE recognizes twoE types of prompting expressions: the *.prompt and the **.prompt. = The *.prompt value expression has the following format:  *."prompt-name" G The prompt name is a character string literal. If the prompt nameE contains no blanks and conforms to the rules for DEC DATATRIEVEG names, you do not have to enclose th0e literal in quotation marks.E If the prompt name contains blanks or does not conform to those4 rules, you must enclose it in quotation marks.  2 Values_from_a_TableB You can use a value stored in a dictionary table or a domainF table anywhere the syntax of a DEC DATATRIEVE statement allows a value expression. D The format for retrieving a value from a dictionary table or a! domain table is as follows: % value-expression VIA t 1able-name G If the value expression you specify is stored as a code string inF the table you specify, the value of the entire expression is the4 corresponding translation string in the table. G If the table contains an ELSE clause and the value expression youD specify does not match any code string in the table, the valueF of the entire expression is the translation string stored in the ELSE clause of the table. C If the table contain 2s no ELSE clause and the value expressionB you specify does not match any code string in the table, DEC0 DATATRIEVE displays the following message: + Value not found from record or table. D See the DEC DATATRIEVE User's Guide for more information aboutB the creation and use of dictionary tables and domain tables.  2 Statistical_Expressions= Statistical expressions compute values based on a value> expression evaluated for each record i3n a record stream. FormatF To specify the average, maximum, minimum, standard deviation, or total:  { AVERAGE } { MAX }+ { MIN } value-expression [OF rse] { STD_DEV } { } { TOTAL }  To specify the count:  COUNT [OF rse] # To specify the running count:  RUNNING COUNT # To specify the running total: $ RUNNING TOTAL value-expression  4 3 Arguments   value-expression C Is a DEC DATATRIEVE value expression on which the statistical function operates.  OF rse C Is a record selection expression you can use to form a recordF stream of the records to which the statistical function applies. D Values Derived with Statistical Functions shows the operations< performed by the DEC DATATRIEVE statistical functions. 7 Table 1 Values Derived with St 5atistical Functions ' Function Value of Function ? AVERAGE The average value of the value expressionE COUNT The number of records in the CURRENT collectionC or in a specified collection or record stream? MAX The largest value of the value expression@ MIN The smallest value of the value expressionG RUNNING COUNT The running count of the evaluations of the PRINT 6 statementC RUNNING TOTAL The running total of the value expression for< each evaluation of the PRINT statementD STD_DEV The standard deviation of the value expression= TOTAL The total value of the value expression  2 Arithmetic_Expressions@ An arithmetic expression consists of value expressions andF arithmetic operators. The value expressions must all be numeric.G You can use an arithmetic expression a 7nywhere the syntax of a DEC5 DATATRIEVE statement allows a value expression. D DEC DATATRIEVE provides four arithmetic operators. These are +F (addition), - (subtraction or negation), * (multiplication), and / (division). D You do not have to use spaces to separate arithmetic operatorsE from value expressions, except in one case: if a DEC DATATRIEVEG name precedes a minus sign, you must put a space before the minusD sign. Otherwise, DEC D8ATATRIEVE interprets the minus sign as a. hyphen and converts it to an underscore:  DTR> DECLARE X PIC 99. DTR> X = 8 DTR> PRINT X-1/ "X_1" is undefined or used out of context DTR> PRINT 1-X -7 DTR> ? You can use parentheses to control the order in which DEC? DATATRIEVE performs arithmetic operations. DEC DATATRIEVEG follows the normal rules of precedence when evaluating arithmetic expressions: @9 1. DEC DATATRIEVE first evaluates any value expressions in parentheses. C 2. DEC DATATRIEVE then performs multiplications and divisions9 from left to right in the arithmetic expression. D 3. Finally, DEC DATATRIEVE performs additions and subtractions9 from left to right in the arithmetic expression. > The following examples show how DEC DATATRIEVE evaluates arithmetic expressions:  DTR> PRINT (6 * 7) + 5 : 47  DTR> PRINT 6 * (7 + 5) 72  DTR> PRINT 6 + 7 * 5 41  DTR> PRINT 12 - 6 * 2 0 DTR> PRINT 5 + 10 / 2 10 DTR> A DEC DATATRIEVE performs arithmetic operations on relationalD databases null values according to SQL/Services[TM] standards.C For example: an arithmetic or string operation generates null' when one of the operands is null. 8 DTR> FOR X IN EMPLOYEE_MANAG;ER_TABLE PRINT EMP_ID EMP_ID  10 15 30 NULL NULL ? DTR> FOR X IN EMPLOYEE_MANAGER_TABLE PRINT EMP_ID + 1000  1010 1015 1030 NULL NULL DTR>  2 Concatenated_ExpressionsC DEC DATATRIEVE allows you to join value expressions to form aD concatenated expression. You can use a concatenated expression@ anywhe<re the syntax of a DEC DATATRIEVE statement allows a@ character string literal. When DEC DATATRIEVE concatenatesE value expressions, it converts their values to character string literals. F DEC DATATRIEVE provides three types of concatenated expressions: , o value-expression | value-expression - o value-expression || value-expression . o value-expression ||| value expression D In each case, DEC DATATRIEVE converts the valu =es of each valueE expression to a character string literal and joins the literalsE to form a longer literal. The differences among the three formsC of concatenated expression lie in the way they treat trailingB spaces of the first literal, and whether they add any spaces between the literals: C o A single bar leaves the literals as they are. For example: H "ABC"|"DEF" "ABC "|"DEF" "ABC"|" DEF" "ABC "|" DEF"E ABCDEF > ABC DEF ABC DEF ABC DEF E o A double bar suppresses trailing spaces of the first literalF and does nothing to the leading spaces of the second literal. For example: I "ABC"||"DEF" "ABC "||"DEF" "ABC"||" DEF" "ABC "||" DEF"B ABCDEF ABCDEF ABC DEF ABC DEF F o A triple bar suppresses trailing spaces of the first literal,E inserts one space, and does nothing to the ?leading spaces of) the second literal. For example: J "ABC"|||"DEF" "ABC "|||"DEF" "ABC"|||" DEF" "ABC "|||" DEF"C ABC DEF ABC DEF ABC DEF ABC DEF B You can use concatenated expressions for assigning values toC lengthy fields or variables. Concatenated expressions provideG the only method for assigning values to fields or variables whoseC lengths exceed 255 characters. The following example combinesB @ the T edit string, *.prompt value expressions, and characterG string literals to assign a value to a long variable. You can useE similar assignment statements in the USING clauses of the STORE and MODIFY statements: 7 DTR> DECLARE STR PIC X(300) EDIT_STRING IS T(50).) DTR> STR = *.L1|*.L2|*.L3|*.L4|*.L5G Enter L1: This string contains the first part of a long characterF Enter L2: string. This string is so long that you can't use justE Ente Ar L3: one character string literal to assign a value to it.H Enter L4: You need concatenated expressions to increase the lengthB Enter L5: of this string beyond the limit of 255 characters. DTR> PRINT STR STR 3 This string contains the first part of a long7 character string. This string is so long that you4 can't use just one character string literal to2 assign a value to it. You need concatenated7 expression Bs to increase the length of this string) beyond the limit of 255 characters. DTR>  2 Conditional_Value_ExpressionsB The CHOICE and IF-THEN-ELSE value expressions return a valueG based on the evaluation of one or more Boolean expressions. TheseF value expressions are useful when you need to assign values thatE depend on certain conditions. They can be used in any statementG that accepts value expressions, as well as in COMPUTED BY clauseCs) for variables or field definitions.  3 CHOICE_Value_ExpressionF Returns one of a series of values depending on the evaluation of4 a series of conditional (Boolean) expressions. Format CHOICE [OF]1 boolean-expression-1 [THEN] value-13 [boolean-expression-2 [THEN] value-2], . . ., . . ., . . . D ELSE value-n END_CHOICE  4 Arguments  CHOICE 7 Marks the beginning of a CHOICE value expression.   OF 1 Is an optional word used to clarify syntax.   boolean-expression  Is a Boolean expression.   THEN D Is an optional language element you can use to clarify syntax.   value B Is the value returned by DEC DATATRIEVE if the corresponding+ BoEolean expression evaluates to true.   ELSE value-n @ Is the value returned by DEC DATATRIEVE if all the Boolean$ expressions evaluate to false.  3 IF_THEN_ELSE_Value_Expression@ Returns one of two values depending on the evaluation of a' conditional (Boolean) expression. Format7 IF boolean-expression [THEN] value-1 ELSE value-2  4 Arguments   boolean-expression  Is a Boolean expression. F   THEN D Is an optional language element you can use to clarify syntax.  value-1 G Is the value returned by DEC DATATRIEVE if the Boolean expression evaluates to true.   ELSE value-2 G Is the value returned by DEC DATATRIEVE if the Boolean expression evaluates to false.  2 FORMAT_Value_ExpressionG Specifies a value that is formatted according to the default edit- string or the edit strGing you indicate. Format1 FORMAT value-expression [USING edit-string]  3 Arguments   value-expression > Is a field name or other DEC DATATRIEVE value expression@ specifying a value that DEC DATATRIEVE uses when executing statements.   edit-string E Is one or more edit string characters that determines the valueB of the value expression. For more information, see the EDIT_ STRING clause.  H 2 FROM_Value_ExpressionB Allows you to perform complex retrievals of records from oneB or more domains or collections. You can include a FROM valueD expression in the Boolean of the RSE that forms the collectionF or record stream. The optional OTHERWISE clause lets you specifyB an alternative DEC DATATRIEVE value expression if an initialG search of data based on an RSE produces no records. If the numberD of records in a record stream equates to zero, theI alternative4 specified by the OTHERWISE clause is returned. Format< value-expression FROM rse [OTHERWISE value-expression]  3 Arguments   value-expression * Is a DEC DATATRIEVE value expression   rse & Is a record selection expression  wwixX1 Boolean_Expressions= A Boolean expression is the logical representation of aD relationship between value expressions. The value of a B JooleanF expression is either true or false. When dealing with relationalG sources, the value of a Boolean expression is either TRUE, FALSE,A or UNKNOWN according to SQL/Services standards. The UNKNOWNF boolean value may result if either value expression in a Boolean expression is null. E You can use Boolean expressions in the following DEC DATATRIEVE clauses and statements: 5 o WITH clause in a record selection expression * Ko WITH clause in a SELECT statement / o IF clause of an IF-THEN-ELSE statement 6 o IF clause of an IF-THEN-ELSE value expression  o CHOICE statement o CHOICE value expression / o VALID IF clause in a record definition  o WHILE statement G The DEC DATATRIEVE CHOICE and IF-THEN-ELSE value expressions, andF the CHOICE and IF-THEN-ELSE statements can contain an additional7 ELSE clause to support the UNK LNOWN boolean value. B Boolean expressions consist of value expressions, relationalD operators, and Boolean operators. Relational operators controlG the comparison of value expressions. Boolean operators enable youF to join two or more Boolean expressions and to reverse the valueD of a Boolean expression. All Boolean expressions contain valueD expressions and relational operators, and some contain Boolean operators.  2 Relational_OperatorsME Relational operators compare value expressions, check whether aE code string is contained in a table, and check whether a recordF stream is empty or not. Most Boolean expressions contain a field: name, a relational operator, and a value expression. # The relational operators are:  o EQUAL  o NOT EQUAL  o CONTAINING  o NOT CONTAINING  o STARTING WITH  o GREATER THAN  o GNREATER EQUAL  o LESS THAN  o LESS EQUAL  o BETWEEN  o MISSING  o NOT MISSING  o IN table-name  o NOT IN table-name o ANY  o NOT ANY  o AFTER  o BEFORE G The STARTING WITH relational operator is designed to work on textF strings and can give inconsistent results when used with numeric fields. G When handling character stri Ong literals, DEC DATATRIEVE considersG lowercase letters to have a greater value than uppercase letters.A Within each case, however, DEC DATATRIEVE sorts the lettersE alphabetically, and considers the letters near the beginning ofG the alphabet to be smaller than those near the end. Consequently,& "ALBIN" is less than "AMERICAN." D The order and value associated with alphanumeric characters isC determined by the ASCII collating sequence. Lowercase le PttersG have a higher ASCII value than uppercase letters. See the OpenVMSA documentation for more information on the DEC Multinational< Character Set, which includes the ASCII character set. F In Boolean expressions using the relational operator CONTAINING,C the comparison of the value expression and the field value isE case insensitive. The comparison is case insensitive regardless> of whether you enclose a character string literal within quotQation marks. F The following examples show how to use relational operators that0 compare field values to value expressions: + DTR> FIND YACHTS WITH BEAM EQ 9,10,14 [50 records found], DTR> PRINT CURRENT WITH RIG NE "SLOOP" + LENGTH* OVER> MANUFACTURER MODEL RIG ALL WEIGHT BEAM PRICE ? EASTWARD HO MS 24 7,000 09 $15,9006 FRISHER 30 KETCH 30 14,500 09? GRAMPIAN 34 KETCH 33 12,000 10 $29,675 G The last PRINT statement can be written with the value expression@ preceding the field name. DEC DATATRIEVE displays the same records: , DTR> PRINT CURRENT WITH "SLOOP" NE RIG + LENGTH* OVER> MANUFACTURER MODEL RIG ALL WEIGHT BEAM PRICE ? EASTW SARD HO MS 24 7,000 09 $15,9006 FISHER 30 KETCH 30 14,500 09? GRAMPIAN 34 KETCH 33 12,000 10 $29,675  2 Boolean_OperatorsC There are four Boolean operators: AND, OR, NOT, and BUT. WithG AND, OR, and BUT, you can join two or more Boolean expressions toE form a single Boolean expression. NOT allows you to reverse the$ value of a Boolean expression. F The AND and BUT operators perf Torm the same function. If you linkG Boolean expressions with either AND or BUT, the resulting BooleanF expression is true only if all the Boolean operators linked with! either AND or BUT are true. D If you link Boolean expressions with OR, the resulting BooleanE expression is true if any one of the Boolean linked with OR are true. A If you precede a Boolean expression with NOT, the resultingD Boolean expression is true if the Boolean exprUession following NOT is false. ? The following examples show the use of Boolean operators:  DTR> READY YACHTS= DTR> PRINT YACHTS WITH BUILDER = "PEARSON" AND LOA = 30 + LENGTH* OVER> MANUFACTURER MODEL RIG ALL WEIGHT BEAM PRICE 6 PEARSON 30 SLOOP 30 8,320 09 ; DTR> FIND YACHTS WITH BUILDER = "PEARSON" OR LOA = 30 [2V1 records found]  DTR> READY FAMILIES6 DTR> PRINT FAMILIES WITH FATHER NOT EQ "JIM" AND& [Looking for Boolean expression]" CON> ANY KIDS WITH AGE GT 31 ) NUMBER KID1 FATHER MOTHER KIDS NAME AGE 0 JEROME RUTH 4 ERIC 320 CISSY 240 NANCY 220 MICHAEL 200 HAROLD W SARAH 3 CHARLIE 310 HAROLD 350 SARAH 27 DTR> D You can also use parentheses to group Boolean expressions. DECD DATATRIEVE evaluates Boolean expressions in parentheses beforeC evaluating other Boolean expressions. If a Boolean expressionG contains Boolean operators as well as parentheses, DEC DATATRIEVE> evaluates the Boolean expression in the following order:X , 1. Expressions enclosed in parentheses $ 2. Expressions preceded by NOT - 3. Expressions combined with AND or BUT % 4. Expressions combined with OR  wwxX 1 FunctionsC A DEC DATATRIEVE function is a word you define and add to theB DEC DATATRIEVE language. By adding functions, you extend theB capability of DEC DATATRIEVE to efficiently perform specificE tasks. To learn how to define functions for DE YC DATATRIEVE, see> the DEC DATATRIEVE Guide to Programming and Customizing. F The DEC DATATRIEVE installation kit provides some functions. YouG can use them to form value expressions or to set parameters for aE process. These functions can be modified by users at your site.C If they do not work as indicated in the examples, consult theF person at your site responsible for DEC DATATRIEVE for a list of( the functions currently available. 9 DEZC DATATRIEVE functions have the following format: 4 function-name [ (value-expression [,...] ) ]  2 FN$ABS- Calculates the absolute value of input.  3 Input A signed decimal number.  3 Output4 An unsigned decimal number of type G-floating.  3 Example  DTR> PRINT FN$ABS (-128)  FN$ABS  1.2800E+02 DTR>  2 FN$ATAN) Calculates the arctangent of inp[ut.  3 Input( A signed decimal number (radians).  3 Output1 A signed decimal number of type G-floating.  3 Example " DTR> PRINT 4 * (FN$ATAN (1)) 3.1416E+00 DTR>  2 FN$BIT_AND/ Returns the bitwise AND of two longwords.  3 InputA This function takes two parameters as input. Two longwords,7 separated by a comma and enclosed in parentheses.  3 Output An int\eger number.  3 Example + DTR> DECLARE OP1 PIC 99999999 LONG .;+ DTR> DECLARE OP2 PIC 99999999 LONG .; DTR> OP1 = 128+64+32 ; DTR> OP2 = 32+8+4+1 ;% DTR> PRINT FN$BIT_AND(OP1,OP2);  FN$BIT AND  32 DTR>  2 FN$BIT_EXTRACT. Returns the bit field within a longword.  3 InputF This function takes three parameters: the longword, the startingA bit in the] longword, and the length of the bit field in theC longword. The three must be separated by a comma and enclosed in parentheses.  3 Output An integer number.  3 Example . DTR> DECLARE SOURCE PIC 99999999 LONG .; DTR> DECLARE I LONG .; DTR> SOURCE = 7 ; DTR> I = 0; DTR> REPEAT 6 CON> BEGIN/ CON> PRINT FN$BIT_EXTRACT(SOURCE,I,1); CON> I = I+1; CON> END  FN$B$^IT EXTRACT  1 1 1 0 0 0 DTR>  2 FN$BIT_NOT3 Returns the bitwise complement of a longword.  3 Input A longword.  3 Output An integer number.  3 Example + DTR> DECLARE OP1 PIC 99999999 LONG .; DTR> OP1 = 128+64+32 ;! DTR> PRINT FN$BIT_NOT(OP1);  FN$BIT NOT  -225 _ DTR>  2 FN$BIT_OR. Returns the bitwise OR of two longwords.  3 InputG This function takes two arguments: two longwords. The two must be7 separated by a comma and enclosed in parentheses.  3 Output An integer number.  3 Example + DTR> DECLARE OP1 PIC 99999999 LONG .;+ DTR> DECLARE OP2 PIC 99999999 LONG .; DTR> OP1 = 128+64+32 ; DTR> OP2 = 32+8+4+1 ;$ DTR> PRINT FN$BIT_OR(OP1,OP2);`  FN$BIT OR  237 DTR>  2 FN$BIT_XOR8 Returns the bitwise exclusive OR of two longwords.  3 InputG This function takes two arguments: two longwords. The two must be7 separated by a comma and enclosed in parentheses.  3 Output An integer number.  3 Example + DTR> DECLARE OP1 PIC 99999999 LONG .;+ DTR> DECLARE OP2 PIC 99999999 LONG .; DTR> OaP1 = 128+64+32 ; DTR> OP2 = 32+8+4+1 ;% DTR> PRINT FN$BIT_XOR(OP1,OP2);  FN$BIT XOR  205 DTR>  2 FN$COMMAND_KEYBOARDD Returns the current value of the COMMAND_KEYBOARD field in theD data access block (DAB). COMMAND_KEYBOARD is the keyboard used for command input. E This function allows you to add other functions that access theF features of the Screen Management Guidelines (SMG) obf the Screen Management facility. G This function is not available in a DECwindows Motif environment.  3 Input None.  3 Output5 A longword value of the COMMAND_KEYBOARD field.  3 Example ) DTR> DECLARE COMMAND_KEYBOARD LONG.1 DTR> COMMAND_KEYBOARD = FN$COMMAND_KEYBOARD  2 FN$COS% Calculates the cosine of input.  3 Input( A signed decimal number (radians).  3 c Output1 A signed decimal number of type G-floating.  3 Example . DTR> PRINT FN$COS (3.14159) using s9.999 FN$COS -1.000 DTR>  2 FN$CREATE_LOGA Assigns a user mode logical name within the process logicalC name table as a synonym for a physical name. The logical name3 is deleted when you exit from DEC DATATRIEVE.  3 InputA This function takes two parameters as input. The first is daB logical name character string; the second is a physical nameF character string. Each string must be in quotation marks (unlessE you use variables previously declared). The two strings must be7 separated by a comma and enclosed in parentheses.  3 Output None.  3 Example = DTR> FN$CREATE_LOG ("HANK", "DB0:[MORRISON.RW]LOG.RNO") DTR>  3 Usage_NoteC Logical names are defined at execution time (runtime) eand not@ during the compilation phase. If you define a logical nameC within a statement, the logical name is not translated duringF the compilation phase, consequently it is executed without being+ defined, which will lead to an error.  DTR> READY YACHTS DTR> BEGIN [Looking for statement]9 CON> FN$CREATE_LOG("FORM_DIR","DTR$LIBRARY:FORMS"); CON> FOR X IN YACHTS [Looking for statement]& CON> WITH_FORM YACHT IN FORM_DIR-f [Looking for SEND or RECEIVE statement] CON> SEND FROM X TO BOAT; CON> ENDB Error opening DECforms form file DISK:[DALFY]FORM_DIR.EXE; .  2 FN$DATE4 Converts a date string to a 64-bit data value.  3 InputD A complete date string formatted as "dd-MMM-yyyy hh:mm:ss.cc".G Unpredictable results may occur if you supply only a portion of aE date string, such as "21-MAR-1990". The month must be specified in uppercase. g  3 Output? A date data value formatted as "dd-MMM-yyyy hh:mm:ss.cc".  3 Example 2 DTR> DECLARE X USAGE DATE EDIT_STRING X(23).1 DTR> X = FN$DATE("30-AUG-1990 15:20:31.45") DTR> PRINT X  X  30-Aug-1990 15:20:31.45 DTR> 2 DTR> DECLARE Y USAGE DATE EDIT_STRING X(23). DTR> DECLARE Z PIC X(23).( DTR> Z = "20-FEB-1990 14:54:29.83" DTR> Y = FN$DATE (Z) DTR> PRINT Yh  Y  20-Feb-1990 14:54:29.83 DTR>  2 FN$DAYE Extracts the day part of input (dd in dd-MMM-yyyy hh:mm:ss.cc).  3 Input A date.  3 Output' An unsigned integer from 1 to 31.  3 Example 4 DTR> DECLARE CAL USAGE DATE EDIT_STRING X(23).! DTR> CAL = "NOW"; PRINT CAL  CAL  1-Feb-1990 08:51:11.55  DTR> PRINT FN$DAY (CALi)  FN$DAY  1 DTR>  2 FN$DBKEY_LENGTHD Returns the byte length of dbkeys for the relational domain or" table specified as argument.  3 InputD A string expression providing the name of the domain or table.F The string expression must be placed inside quotation marks, and enclosed in parentheses.  3 OutputG The byte length of the dbkey. An error message is returned if theB j domain is unknown, or if the domain is not a relational one.  3 ExampleC It is useful for example as an argument to the FN$STR_EXTRACTC function, which extracts a substring from the input characterA string using a default edit string of 30 characters. In theD following example FN$STR_EXTRACT extracts a substring from theF 100-character long field D. D is the variable, 1 is the startingA character, and FN$DBKEY_LENGTH is the length of the desiredk substring: ! DTR> DECLARE D PIC X(100).; DTR> VAR = 1234567890+ DTR> PRINT FN$DBKEY_LENGTH("NULLS_1")  FN$DBKEY LENGTH  8 @ DTR> PRINT FN$STR_EXTRACT (D,1,FN$DBKEY_LENGTH("NULLS_1"))  FN$STR EXTRACT  12345678  3 Usage_NoteD This function has been implemented for Oracle Rdb dbkeys only.  2 FN$DCL@ Allows you to spawn directlly from your main DEC DATATRIEVE1 process to execute a specified DCL command.  3 InputA Type FN$DCL at the DEC DATATRIEVE prompt. On the same line,D specify the DCL command argument you want to spawn to, such asD the DCL print command. The DCL command argument can be any DCLG command and must be placed inside quotation marks (unless you useB variables previously declared), and enclosed in parentheses.  3 OutputB Your DEC DATATRIEVmE process is suspended and the terminal is> attached to the subprocess. The DCL command is executed.  3 Examples . DTR> FN$DCL ("PRINT REPORTACCOUNTS.RPT")= Job REPORTACCOUNTS (queue SYSTEMPRINT$QUEUE, entry 148) started on PRINTER$LPA0 DTR> B In the above example the message appears indicating that theB job has been added to the print queue. After the command hasD completed or you have exited from the program initiated by thenC command, you see the DTR> prompt. This shows that control has> been returned to the original process in DEC DATATRIEVE. @ The following example shows how you can use variables with FN$DCL: ! DTR> DECLARE ALP PIC X(30). DTR> ALP = "DIR/COL=1" DTR> FN$DCL (ALP)  Directory MY$DISK:[DALFY]  TEST.OBJ;1 ZTEST.FOR;3 F Note that the FN$DCL process inherits attributes from the callerG (that is, the maoin DEC DATATRIEVE process from which it spawned).D Refer to the OpenVMS documentation on OpenVMS Run-Time Library$ routines for more information.  2 FN$DEFINE_KEYG Takes a key definition in DCL DEFINE/KEY syntax, then creates the$ defined key in DEC DATATRIEVE. G This function is not available in a DECwindows Motif environment.  3 InputE A quoted string containing the key definition in DCL DEFINE/KEY command syntax. ?p You must use single quotation marks for the outer pair of@ quotation marks. The inner pair of quotation marks must be double.  3 Output None.  3 Example ) DTR> FN$KEYPAD_MODE ("APPLICATION")D DTR> FN$DEFINE_KEY ('DEFINE/KEY/ECHO/NOTERMINATE KP7 "FIND" ')  3 Usage_NoteA The previous example will not work unless the device is set= to APPLICATION. DEC DATATRIEVE ignores the the terminalF characteriqstics of your device, for this reason you must executeD the FN$KEYPAD_MODE function before executing the FN$DEFINE_KEY function.  2 FN$DELETE_KEY3 Deletes a key definition currently in effect. G This function is not available in a DECwindows Motif environment.  3 Input) This function takes two parameters. D o The first parameter is the name of the key whose definition you want to delete. G o The second rparameter is the state string. You must specify the= state name DEFAULT when there is no alternate state. A Each parameter must be in matching quotation marks. The two= parameters must be separated by a comma and enclosed in parentheses.  3 Output None.  3 Example * DTR> FN$DELETE_KEY ("KP0","DEFAULT")' DTR> FN$DELETE_KEY ("KP0","GOLD")  2 FN$DELETE_LOG/ Deletes the assignment of a logical names.  3 Input* The logical name you want to delete.  3 Output None.  3 Example ! DTR> FN$DELETE_LOG ("HANK")2 DTR> PRINT FN$TRANS_LOG ("HANK") USING X(30)  FN$TRANS LOG DTR>  2 FN$DELETE_LOGICAL5 Deletes a supervisor-mode process logical name.  3 InputC This function takes two parameters as input. The first is theE logical name to bet deleted; the second is the name of the tableC from which the logical name is to be deleted. The two must be7 separated by a comma and enclosed in parentheses.  3 Output None.  3 Example : DTR> FN$DELETE_LOGICAL("MY_LOGICAL", "LNM$PROCESS");- DTR> FN$DCL("SHOW LOGICAL MY_LOGICAL");@ %SHOW-S-NOTRAN, no translation for logical name MY_LOGICAL DTR>  2 FN$DELETE_SYMBOL Deletes a CLI symbol.   u3 Input+ The name of the symbol to be deleted.  3 Output None.  3 Example ) DTR> FN$DELETE_SYMBOL("MY_SYMBOL");, DTR> FN$DCL("SHOW SYMBOL MY_SYMBOL") ;C %DCL-W-UNDSYM, undefined symbol - check validity and spelling DTR>  2 FN$DISABLE_DECFORMS, Disables DECforms from managing forms.3 Input* None. The function has no arguments. 3 Output None. 3 Example1 DTR> SET DICTIvONARY CDD$TOP.DTR$LIB.FORMS ;F DTR> YACHTS uses an FMS/TDMS form, YACHTS_F uses a DECforms form DTR> SHOW YACHTS, YACHTS_F;DOMAIN YACHTS USING CDD$TOP.DTR$LIB.DEMO.YACHT ON YACHT.DAT& FORM IS YACHT IN DTR$LIBRARY:FORMS;DOMAIN YACHTS_F-USING CDD$TOP.DTR$LIB.DEMO.YACHT ON YACHT.DAT0FORM IS YACHTS IN DTR$LIBRARY:YACHT.FORM ;  DTR> FN$DISABLE_DECFORMS ; DTR> READY YACHTS ; DTR> SHOW FORMS ; Loaded forms:4 Form YACHT in SYS$COMMON:[DTR]FORMS.wFLB; ( FMS ) DTR> FN$ENABLE_DECFORMS ; DTR> READY YACHTS_F ; DTR> SHOW FORMS ; Loaded forms:; Form YACHTS in SYS$COMMON:[DTR]YACHT.FORM; ( DECforms )5 Form YACHT in SYS$COMMON:[DTR]FORMS.FLB; ( FMS )2 FN$ENABLE_DECFORMS' Enables DECforms to manage forms.3 Input* None. The function has no arguments. 3 Output None. 3 Example7 See the example for function FN$DISABLE_DECFORMS. 2 FN$EXP5 Calculates the val!xue of e to a specified power.  3 Input A signed decimal number.  3 Output1 A signed decimal number of type G-floating.  3 Example  DTR> PRINT FN$EXP (2)  FN$EXP  7.3891E+00 DTR>  2 FN$FLOORE Truncates the decimal part of positive input or rounds negative input.  3 Input A signed decimal number.  3 Output1 A signed decimyal number of type G-floating.  3 Example ! DTR> PRINT FN$FLOOR (59.99)  FN$FLOOR  5.9000E+01 " DTR> PRINT FN$FLOOR (-59.99)  FN$FLOOR  -6.0000E+01  2 FN$FORMAT_DBKEYD Returns a character string containing the dbkey of the readied( relational domain, table, or view.  3 Input9 A string containing the dbkey in its binary format.  3 OutputG The charac zter string of the dbkey. This function assumes that theE dbkey is internally structured as an array of elementary dbkeys5 and that each elementary dbkey is 8 bytes long.  3 ExampleC In the following example the variable VAR prints the dbkey ofF each record in the relational view C in their string format. TheC length of the dbkeys in this view is 16 bytes (8 bytes by the$ number of tables in the view). " DTR> DECLARE VAR PIC X(80).; { DTR> FOR C BEGIN' CON> VAR = FN$LASTREC_DBKEY("C"); CON> PRINT -F CON> FN$FORMAT_DBKEY(FN$STR_EXTRACT(VAR,1,FN$DBKEY_LENGTH("C"))) CON> END;  FN$FORMAT DBKEY  39:512:0 40:518:0 39:512:1 40:518:0 39:512:2 40:518:0 39:512:3 40:518:0 DTR>  3 Usage_NoteD This function has been implemented for Oracle Rdb dbkeys only.  2 FN$GET_SYMBOL( Returns the value |of a DCL symbol.  3 Input9 A character string that represents the symbol name.  3 Output The value of a DCL symbol.  3 Example 8 DTR> PRINT FN$GET_SYMBOL("DTR$INVOKE") USING X(45)  FN$GET SYMBOL ' RUN DTR$DISK:[DTR.TESTS]DTRV4.EXE DTR>  2 FN$HEX5 Calculates the hexadecimal equivalent of input.  3 InputE A signed int}eger no larger than (2 ** 31) -1 (the maximum value/ that can be stored in a signed longword).  3 Output% A hexadecimal character string.  3 Example  DTR> PRINT FN$HEX(183) FN$HEX  B7 DTR>  2 FN$HEX_TO_DEC? Calculates the integer equivalent of a hexadecimal value.  3 InputF A string expression containing the hexadecimal character string.F The string expressio~n must be placed inside quotation marks, and enclosed in parentheses.  3 Output= A longword integer equivalent to the hexadecimal value.  3 ExamplesA The following example returns the integer equivalent to the hexadecimal value FF. % DTR> PRINT FN$HEX_TO_DEC ("FF")  FN$HEX TO DEC  255 DTR> G The following example shows how the FN$HEX_TO_DEC function can beE used to calculate the numeric value of the address of the first@ free page at the end of the program region of the process. @ DTR> PRINT FN$HEX_TO_DEC (FN$PROCESS_INFO ("FREP0VA" VIA - CON> JPI_CODES))  FN$HEX TO DEC  7991296 DTR>  2 FN$HOURF Extracts the hour part of input (hh in dd-MMM-yyyy hh:mm:ss.cc).  3 Input A date.  3 Output' An unsigne d integer from 1 to 24.  3 Example 4 DTR> DECLARE CAL USAGE DATE EDIT_STRING X(23).! DTR> CAL = "NOW"; PRINT CAL  CAL  1-Feb-1990 08:51:11.55  DTR> PRINT FN$HOUR (CAL)  FN$HOUR  8 DTR>  2 FN$HUNDREDTHE Extracts hundredth-of-a-second part of input (cc in dd-MMM-yyyy hh:mm:ss.cc).  3 Input A date.  3 Output' An unsigned integer from 0 to 99.  3 Example 4 DTR> DECLARE CAL USAGE DATE EDIT_STRING X(23).! DTR> CAL = "NOW"; PRINT CAL  CAL  1-Feb-1990 08:51:11.55 # DTR> PRINT FN$HUNDREDTH (CAL)  FN$HUNDREDTH  55 DTR>  2 FN$ICHARC It converts the first character of a string to an 8-bit ASCII% integer extended to a longword.  3 Input  The string expression.  3 Output The 8-bit ASCII integer.  3 Example # DTR> DECLARE VAR PIC X(80) .; DTR> DECLARE CH PIC X . ; DTR> DECLARE I INTEGER .; DTR> VAR = "GRZ-ALE" ; DTR> i = 1 ;, DTR> REPEAT FN$STR_LENGTH( VAR || "" ) CON> BEGIN3 CON> CH = FN$STR_EXTRACT(VAR, i, 1 );? CON> PRINT CH("CHARACTER"), FN$ICHAR(CH)("CODE"); CON> I = I+1 ; CON>  END ;  CHARACTER CODE  G 71 R 82 Z 90 - 45 A 65 L 76 E 69 DTR>  2 FN$INIT_TIMER& Initializes a timer and counter.  3 Input None.  3 Output None.  3 Example  DTR> SHOW TIME_READY PROCEDURE TIME_READY FN$INIT_TIMER READY OWNERS FN$SHOW_TIMER END_PROCEDURE  DTR> :TIME_READY ? ELAPSED: 0 00:00:04.24 CPU: 0:00:00.61 BUFIO: 1 DIRIO: 42E FAULTS: 64 DTR>  2 FN$JULIAN* Calculates the Julian date of input. @ (A Julian date is based on days of the year being numberedC beginning with January 1st. The Julian date of January 6th is; 6. The Julian date of February 2nd is 33, and so on.)  3 Input A date.  3 OutputF An unsigned integer from 1 to 366. (There are 366 days in a leap year.)  3 Example 4 DTR> DECLARE CAL USAGE DATE EDIT_STRING X(23).! DTR> CAL = "NOW"; PRINT CAL  CAL  1-Feb-1990 08:51:11.55 DTR> PRINT FN$JULIAN (CAL)  FN$JULIAN  32 DTR>  2 FN$KEYPAD_MODED Lets you specify the terminal mode from within DEC DATATRIEVE. G This function duplicates the ability of the SET [NO] APPLICATION_C KEYPAD command. The function form of FN$KEYPAD_MODE, however,F allows you to change the keypad mode inside compound statements. G This function is not available in a DECwindows Motif environment.  3 Input- You must specify one of two parameters: 7 o APPLICATION specifies application keypad mode. / o NUMERIC specifies numeric keypad mode. F This function is not case sensitive; you can type APPLICATION orD NUMERIC in either uppercase or lowercase. The words must be inG either single or double quotation marks, and the spelling must be exact.  3 Output None.  3 Example ) DTR> FN$KEYPAD_MODE ("APPLICATION")% DTR> FN$KEYPAD_MODE ("NUMERIC")  2 FN$KEYTABLE_IDF Returns the value of the KEYTABLE_ID field currently in the data access block (DAB). B FN$KEYTABLE_ID allows you to add other functions that accessE other capabilities of the Screen Management Guidelines (SMG) of% the Screen Management facility. G This function is not available in a DECwindows Motif environment.  3 Input None.  3 Output0 A longword value of the KEYTABLE_ID field.  3 Example ! DTR> DECLARE KEYTABLE LONG.$ DTR> KEYTABLE = FN$KEYTABLE_ID  2 FN$LASTREC_DBKEYF Returns the dbkey of the last record read in a currently readied! relational domain or table.  3 InputD A string expression providing the name of the domain or table.  3 Output( The record dbkey as a byte string.  3 ExampleG In the following example the FN$FORMAT_DBKEY function returns theF dbkey of the last record read from CITY_CODE_T ABLE in its string format. E DTR> PRINT FN$FORMAT_DBKEY(FN$LASTREC_DBKEY("CITY_CODE_TABLE")) FN$FORMAT DBKEY  11:149:26 DTR>  2 FN$LN* Calculates the natural log of input.  3 Input A signed number.  3 Output) A signed number of type G-floating.  3 Example  DTR> PRINT FN$LN (36) FN$LN  3.5835E+00  DTR>  2 FN$LOAD_KEYDEFSE Lets you define multiple keypad keys from a file containing DCLD DEFINE/KEY commands. This way you do not have to make multiple* calls to the FN$DEFINE_KEY function. G This function is not available in a DECwindows Motif environment.  3 InputG A quoted string with a DCL file specification indicating the file- containing the DCL DEFINE/KEY commands.  3 Output None.  3 Exa#mple ) DTR> FN$LOAD_KEYDEFS ("APPL1.KEYS")  2 FN$LOG10* Calculates the base 10 log of input.  3 Input A signed number.  3 Output) A signed number of type G-floating.  3 Example  DTR> PRINT FN$LOG10 (36)  FN$LOG10  1.5563E+00 DTR>  2 FN$MINUTE: Extracts the minute part of input (mm in dd-MMM-yyyy hh:mm:ss.cc).  3 Input A date.  3 Output' An unsigned integer from 0 to 59.  3 Example 4 DTR> DECLARE CAL USAGE DATE EDIT_STRING X(23).! DTR> CAL = "NOW"; PRINT CAL  CAL  1-Feb-1990 08:51:11.55 DTR> PRINT FN$MINUTE (CAL)  FN$MINUTE  51 DTR>  2 FN$MODE Calculates the value of input according to a specified modulus,- using double precision floating values.  3 Input? This function takes two parameters: a signed number and aC modulus. The two must be separated by a comma and enclosed in parentheses.  3 Output' A real number of type G-floating.  3 Example  DTR> PRINT FN$MOD (31,7)  FN$MOD  3.0000E+00 DTR>  2 FN$MODIE Calculates the value of input according to a specified modulus, using integer values.  3 Input? This function takes two parameters: a signed number and aC modulus. The two must be separated by a comma and enclosed in parentheses.  3 Output An integer number.  3 Example  DTR> PRINT FN$MODI(13,4);  FN$MODI  1 DTR> PRINT FN$MODI(-13,4);  FN$MODI  -1 DTR>  2 FN$MONTH: Extracts the mon th part of input (MMM in dd-MMM-yyyy hh:mm:ss.cc).  3 Input A date.  3 Output' An unsigned integer from 1 to 12.  3 Example 4 DTR> DECLARE CAL USAGE DATE EDIT_STRING X(23).! DTR> CAL = "NOW"; PRINT CAL  CAL  1-Feb-1990 08:51:11.55  DTR> PRINT FN$MONTH (CAL)  FN$MONTH  2 DTR>  2 FN$NINT. Calculates the i'nteger nearest to input.  3 Input A signed number.  3 Output A signed longword.  3 Example DTR> PRINT FN$NINT (59.99)  FN$NINT  60 DTR>  2 FN$OPENS_LEFT= Calculates the number of additional files you can open.  3 Input None.  3 Output An signed longword.  3 Example  DTR> PRINT FN$OPENS_LEFT   FN$OPENS LEFT  3 DTR>  2 FN$PROCESS_INFO1 Returns information on the current process.  3 InputB An integer value specifying the item of information that theE FN$PROCESS_INFO function is to return; the integer value is one7 of the values used by the $GETJPI system service. E DEC DATATRIEVE supplies a table associating symbolic strings toD values of the $GETJPI system service. The table is called JPI_G CODES, located in CDD$TOP.DTR$LIB. If you use the JPI_CODES table( with this function, the syntax is: G FN$PROCESS_INFO ("symbolic-string" VIA CDD$TOP.DTR$LIB.JPI_CODES) F Where symbolic-string is a text string defined in JPI_CODES. The8 text string must be placed inside quotation marks. C For a complete description of the item codes, see the $GETJPIA service documented in the OpenVMS System Services Reference Manual.  3 OutputE A text string containing the information requested by the item- code.  3 ExamplesC The following examples shows how the FN$PROCESS_INFO functionG returns information about the username; the first example uses anA integer value, the second example uses the JPI_CODES table. & DTR> PRINT FN$PROCESS_INFO (514)  FN$PROCESS INFO DALFY DTR> DTR> PRINT -E CON> FN$PROCESS_INFO ("USERNAME" VIA CDD$TOP.DTR$LIB.JPI_CODES)  FN$PROCESS INFO DALFY DTR>  2 FN$PROMPT_KEYBOARDE Returns the value of the PROMPT_KEYBOARD field currently in theF data access block (DAB). PROMPT_KEYBOARD is the keyboard ID used for prompting. F FN$PROMPT_KEYBOARD allows you to add other functions that accessE other capabilities of the Screen Management Guidelines (SMG) of% the Screen Management facility. G This function is not available in a DECwindows Motif environment.  3 Input None.  3 Output4 A longword value of the PROMPT_KEYBOARD field.  3 Example ( DTR> DECLARE PROMPT_KEYBOARD LONG./ DTR> PROMPT_KEYBOARD = FN$PROMPT_KEYBOARD  2 FN$SECOND: Extracts the second part of input (ss in dd-MMM-yyyy hh:mm:ss.cc).  3 Input A date.  3 Output' An unsigned integer from 0 to 59.  3 Example 4 DTR> DECLARE CAL USAGE DATE EDIT_STRING X(23).! DTR> CAL = "NOW"; PRINT CAL  CAL  1-Feb-1990 08:51:11.55 DTR> PRINT FN$SECOND (CAL)  FN$SECOND  11 DTR>  2 FN$SETDEFF Allows you to change the default disk directory for the process.  3 InputD A string expression containing the new default disk directory.F The string expression must be placed inside quotation marks, and enclosed in parentheses.  3 Output None.  3 ExampleE The following example shows how to change the default directoryD from within your DEC DATATRIEVE process and how to restore theE old default directory to its original status before exiting DEC DATATRIEVE.  $ SHOW DEFAULT  DISK:[SMITH]$ DTR> DECLARE OLDDIR PIC X(80). DTR> OLDDIR = FN$SHOWDEF DTR> PRINT OLDDIR " OLDDIR [SMITH]% DTR> FN$SETDEF ("[SMITH.WORK]") DTR> PRINT FN$SHOWDEF  FN$SHOWDEF  [SMITH.WORK] DTR> . . . DTR> FN$SETDEF (OLDDIR) DTR> PRINT FN$SHOWDEF  FN$SHOWDEF [SMITH]  DTR> EXIT $ SHOW DEFAULT DISK:[SMITH] $  2 FN$SETDEFPROTG Allows you to change the default file protection for the process.  3 InputD A string expression containing the new default file protection> specification. The format is the standard OpenVMS formatA (e.g. "SYSTEM:RWED,OWNER:RWED,GROUP:R,WORLD:R"). The stringD expression must be placed inside quotation marks, and enclosed in parentheses.  3 Output None.  3 Example@ The following example shows how to change the default fileC protection from within your DEC DATATRIEVE process and how toD restore the old default file protection to its original status$ before exiting DEC DATATRIEVE. 2 DTR> PRINT FORMAT FN$SHOWDEFPROT USING X(80). SYSTEM:RWED,OWNER:RWED,GROUP:RWED,WORLD: % DTR> DECLARE OLDPROT PIC X(80).# DTR> OLDPROT = FN$SHOWDEFPROT DTR> PRINT OLDPROT 1 OLDPROT . SYSTEM:RWED,OWNER:RWED,GROUP:RWED,WORLD:* DTR> FN$SETDEFPROT ("S:RWED,O:RWED")2 DTR> PRINT FORMAT FN$SHOWDEFPROT USING X(80)* SYSTEM:RWED,OWNER:RWED,GROUP:,WORLD: 0 DTR> DEFINE DOMAIN H USING H_REC ON H.DAT;$ DTR> DEFINE RECORD H_REC USING DFN> 01 H_REC. DFN> 03 F1 PIC X(7). DFN> 03 F2 PIC X(10). ; DTR> DEFINE FILE FOR H;$ DTR> FN$DCL ("DIR/PROT *.DAT") $  Directory DISK:[DALFY.NEWUSER] E EMPLOYEES.DAT;1 10-FEB-1993 11:06:03.39 (RWED,RWED,RWED,)E FAMILY.DAT;108 25-MAR-1992 21:44:53.30 (RWED,RWED,RWED,)E FAMS.DAT;1 6-AUG-1992 15:33:51.24 (RWED,RWED,RWED,)A H.DAT;1 24-MAR-1993 09:47:39.31 (RWED,RWED,,)  Total of 4 files." DTR> FN$SETDEFPROT (OLDPROT)2 DTR> PRINT FORMAT FN$SHOWDEFPROT USING X(80) . SYSTEM:RWED,OWNER:RWED,GROUP:RWED,WORLD:  DTR> EXIT $ SHOW PROTECTION< SYSTEM=RWED, OWNER=RWED, GROUP=RWED, WORLD=NO ACCESS $ 2 FN$SET_FORM_TABLE_ADDRD Notifies the DATATRIEVE interpreter that the DECforms forms toF be used are linked with the application rather than being storedK in external files (default case) and provides an address to get them.3 Alternatively, it can reset the default case.F It is relevant only for applications calling the DATATRIEVE API. Syntax:< FN$SET_FORM_TABLE_ADDR (form_table_addr, enable_flag).3 Input2 This function takes two parameters as input.7 The first one (form_table_addr) is the address of FORMS$AR_FORM_TABLE,9 if linked forms are to be used (enable_flag is 1 ).E The second one (enable_form) must be 1, if form files are to beH ignored and linked forms (via FORMS$AR_FORM_TABLE) are to be used.@ It must be 0, if form files are to be used (default case). 3 Output  None. 3 Example (C code) .... { #pragma nostandard5 globalref unsigned long FORMS$AR_FORM_TABLE ; #pragma standard+ unsigned long *ar_form_table_ptr ; char com[80];2 ar_form_table_ptr = &FORMS$AR_FORM_TABLE ;D /* DECforms Forms linked with the application must be used */7 sprintf(com, "FN$SET_FORM_TABLE_ADDR(%1d,%1d)",H ar_form_table_ptr, 1 ) ;# tdesc.dsc$a_pointer = com ;* tdesc.dsc$w_length = strlen(com) ;, status = dtr$command(&dab, &tdesc ); } 2 FN$SET_LOGICALB Defines or redefines a supervisor-mode process logical name.  3 InputE This function takes three parameters as input. The first is theF logical name to be defined or redefined; the second is the valueC to be given to the logical name; the third is the name of the0 table in which to create the logical name.  3 Output None.  3 Example G DTR> FN$SET_LOGICAL("MY_LOGICAL","ITS_EQUIVALENT","LNM$PROCESS");, DTR> PRINT FN$TRANS_LOG("MY_LOGICAL");  FN$TRANS LOG  ITS_EQUIVALENT DTR>  2 FN$SET_SYMBOLG Defines or redefines a CLI (Command Language Interpreter) symbol.  3 InputC This function takes two parameters as input. The first is theE symbol name; the second is the value to be given to the symbol.  3 Output None.  3 Example 1 DTR> FN$SET_SYMBOL("MY_SYMBOL","ITS_VALUE"), DTR> PRINT FN$GET_SYMBOL("MY_SYMBOL");  FN$GET SYMBOL  ITS_VALUE DTR>  2 FN$SHOW_KEY. Displays the definition of a keypad key. G This function is not available in a DECwindows Motif environment.  3 Input) This function takes two parameters: ; o The first parameter specifies the keypad key name. G o The second parameter is the state string. You must specify the= state name DEFAULT when there is no alternate state. A Each parameter must be in matching quotation marks. The twoD quoted parameters must be separated by a comma and enclosed in parentheses.  3 Output* The definition of the specified key.   3 Example ( DTR> FN$SHOW_KEY ("KP7","DEFAULT")  KP7 = "SHOW ALL", (echo,terminate,noerase,nolock)  2 FN$SHOW_KEYDEFSF Displays the key definitions in all of the states. This function? duplicates the ability of the DEC DATATRIEVE SHOW KEYDEFS command. C The function form of FN$SHOW_KEYDEFS lets you show all keypad- definitions inside compound statements. G This function is not available in a DECwindows Motif environment.  3 Input None.  3 Output. The definitions of all the defined keys.  3 Example  DTR> FN$SHOW_KEYDEFS $ BLUE state keypad definitions: KP1 = "SHOW KEYDEFS"/ (noecho,terminate,noerase,nolock)' DEFAULT state keypad definitions: PF1 = " "> (echo,noterminate,noerase,nolock,set_state=GOLD) PF4 = " "> (echo,noterminat e,noerase,nolock,set_state=BLUE) KP0 = "SHOW KEYDEFS"- (echo,terminate,noerase,nolock) KP1 = "READY "/ (echo,noterminate,noerase,nolock) KP7 = "SHOW ALL"- (echo,terminate,noerase,nolock) KP8 = "SHOW DOMAINS"- (echo,terminate,noerase,nolock) KP9 = "SHOW RECORDS"- (echo,terminate,noerase,nolock)* ENTER = "SET APPLICATION_KEYPAD"- (echo,terminate,noerase,nolock)$ GOLD state keypad definitions:- ENTER = "SET NO APPLICATION_KEYPAD"- (echo,terminate,noerase,nolock) KP1 = "SHOW KEYDEFS"/ (noecho,terminate,noerase,nolock)  2 FN$SHOW_TIMER> Shows elapsed time since the timer was last initialized. ? Note that DEC DATATRIEVE does not include the informationD displayed by FN$SHOW_TIMER in a log file created with the OPEN command.  3 Input  None.  3 Output/ Displays the elapsed time in this format:  D HH:MM:SS.SS  3 Example  DTR> SHOW TIME_READY PROCEDURE TIME_READY FN$INIT_TIMER READY OWNERS FN$SHOW_TIMER END_PROCEDURE  DTR> :TIME_READY? ELAPSED: 0 00:00:04.24 CPU: 0:00:00.61 BUFIO: 1 DIRIO: 42E FAULTS: 64 DTR> A At the end of a 24-hour period, the timer begins displayingC time in the number of days rather than the accumulated number of hours.  2 FN$SHOWDEF: Displays the current disk directory for the process.  3 Input None.  3 OutputF A text string containing the name of the current disk directory.  3 ExampleD The following example shows how to display the current working$ directory from DEC DATATRIEVE.  $ SHOW DEFAULT DISK:[SMITH.WORK] $ DATATRIEVE' DTR> PRINT FN$SHOWDEF USING X(80) 4 FN$SHOWDEF  [SMITH.WORK] DTR>  2 FN$SHOWDEFPROT; Displays the current file protection for the process.  3 Input None.  3 OutputC A text string containing the current default file protection.  3 ExampleD The following example shows how to display the current default file protection. + DTR> PRINT FN$SHOWDEFPROT USING X(80) 5 FN$SHOWDEFPROT . SYSTEM:RWED,OWNER:RWED,GROUP:RWED,WORLD: DTR>  2 FN$SIGN% Indicates the sign of a number.  3 Input A signed number.  3 Output8 1, -1, or 0 (depending on the sign of the number).  3 Example  DTR> PRINT FN$SIGN (-4)  FN$SIGN  -1" DTR>  2 FN$SIN# Calculates the sine of input.  3 Input( A signed decimal number (radians).  3 Output1 A signed decimal number of type G-floating.  3 Example # DTR> PRINT FN$SIN (3.14159/2) FN$SIN 1.000 DTR>  2 FN$SPAWNB Creates a subprocess by calling the OpenVMS Run-Time Library routine LIB$SPAWN.  3 Input@ Type FN$SP AWN at the DTR> prompt to create the subprocess.  3 OutputA Your default DCL prompt appears on the screen. You can then) invoke utilities or enter commands. A Type LOGOUT after the DCL prompt to return to your originalC process in DEC DATATRIEVE. A message is printed on the screen@ indicating that you have logged out of the subprocess. DECD DATATRIEVE generates the DTR> prompt, showing that control has> been returned to the original process in DEC DATATRIEVE.  3 Example  DTR> FN$SPAWN $ MAIL . . . MAIL> EXIT $ LOGOUTC Process PROCESSNAME_1 logged out at 25-FEB-1990 09:47:09:27 DTR>  2 FN$SQRT5 Calculates the square root of the input number.  3 Input( Zero or a positive decimal number.  3 Output; Zero or a positive decimal number of type G-floating.  3 Example   DTR> PRINT FN$SQRT (196)  FN$SQRT  1.4000E+01 DTR>  2 FN$STR_CHARN> It returns a string containing n duplicates of the input character.  3 InputE This function takes two input arguments separated by a comma: a number and a character.  3 OutputB A string containing the selected number of input characters.  3 Example . DTR> READY CDD$TOP.DTR$LIB.DEMO.YACHTS ;7 DTR> FOR FIRST 3 YACHTS SORTED BY PRICE ASCENDINGW CON> PRINT BUILDER, MODEL, FN$STR_CHARN(300,FN$ICHAR("_"))("NOTES") USING T(30) ; / MANUFACTURER MODEL NOTES < BUCCANEER 270 ______________________________< ______________________________< ______________________________< ______________________________< ____________________ __________< ______________________________< ______________________________< ______________________________< ______________________________< ______________________________< PEARSON 26W ______________________________< ______________________________< ______________________________ < ______________________________< ______________________________< ______________________________< ______________________________< ______________________________< ______________________________< ______________________________< BUCCANEER 320 ______________________________< ______________________________< ______________________________< ______________________________< ______________________________< ______________________________< ______________________________< ______________________________< ______________________________<  ______________________________ DTR>  2 FN$STR_EXTRACTB Extracts a substring from the input character string using a+ default edit string of 30 characters.  3 Input+ This function takes three parameters:  o A character string D o An ordinal number of starting character (numerical position within string) ( o The length of desired substring  3 Output A substring.  3 Example $ DTR> DECLARE WOMBAT PIC X(25)./ DTR> WOMBAT = "Wombats have sharp claws.", DTR> PRINT FN$STR_EXTRACT (WOMBAT,9,4)  FN$STR EXTRACT have DTR>  2 FN$STR_LENGTH& Returns the length of a string..  3 Input/ This functions takes a string expression.  3 Output The length of the string.  3 Example  DTR> READY YACHTS DTR> FOR FIRST 1 YACHTS CON> BEGINI CON> PRINT "BUILDER is", FN$STR_LENGTH(BUILDER)," Characters long";I CON> PRINT "The record is", FN$STR_LENGTH(BOAT)," Characters long"; CON> END;  FN$STR LENGTH - BUILDER is 10 Characters long  FN$STR LENGTH 0 The record is 41 Characters long  2 FN$STR_LOCD Calculates the starting position of the specified substring in! the input character string.  3 InputC This functions takes two parameters: a character string and a substring.  3 OutputA An unsigned integer. If the string is undefined, FN$STR_LOC returns the value 0.  3 Example # DTR> DECLARE WOMBAT PIC X(25)/ DTR> WOMBAT = "Wombats have sharp claws.", DTR> PRINT FN$STR_LOC (WOMBAT,"claws")  FN$STR LOC  20 DTR>  2 FN$STR_TOKENF Searches a string for the next token delimited by user-specified delimiters. @ When the function is called for the first time for a givenB string the init_flag must be 1 and the first token delimitedE by characters in delimiters is returned. In the following callsG to get the other tokens in the same string, the init_flag must beG 0. The string argument is now ignored because an internal copy isE now used. The delimiters string may be different from that usedF in the first call. When no more tokens exist, an empty string is returned.  3 InputA This function takes three parameters as input, separated by commas: . o The string expression to be searched. % o The delimiters of the token. F o The initial flag for a given string: 1 for the first call and6 0 for the following calls to the same string.  3 Output& The token within the delimiters.  3 Example B The following example shows you how to split a sentence into9 lines (the separators are spaces, commas, or dots).  DTR> SHOW D1% DOMAIN D1 USING R1 ON LOG_NAM ; : DTR> FN$CREATE_LOG("LOG_NAM","FN_STR_TOKEN_01.DAT"); DTR> READY D1 ;% DTR> DECLARE TOKEN PIC X(80) .; DTR> FOR D1 CON> BEGIN5 CON> TOKEN = FN$STR_TOKEN(F," ,.", 1) ;) CON> WHILE TOKEN NOT EQ " " CON> BEGIN( CON> PRINT TOKEN ;< CON> TOKEN = FN$STR_TOKEN(F," ,.", 0); CON> END ; CON> END ; 0 TOKEN DEC DATATRIEVE for OpenVMS AXP systems is a query report an%d data management tool for the OpenVMS Operating System DTR>  2 FN$TAN1 Calculates the tangent of the input number.  3 Input( A signed decimal number (radians).  3 Output1 A signed decimal number of type G-floating.  3 Example # DTR> PRINT FN$TAN (3.14159/4)  FN$TAN  1.0000E+00 DTR>  2 FN$TI MEA Extracts the time part of input (hh:mm:ss.cc in dd-MMM-yyyy hh:mm:ss.cc).  3 Input A date.  3 Output! The time in OpenVMS format.  3 Example 4 DTR> DECLARE CAL USAGE DATE EDIT_STRING X(23).! DTR> CAL = "NOW"; PRINT CAL  CAL  1-Feb-1990 08:51:11.55  DTR> PRINT FN$TIME (CAL)  FN$TIME  08:51:11.5 DTR>  2 FN$TRANS_LOG Translates a logical name.  3 Input@ A character string containing the logical name you want to translate.  3 Output A character string.  3 Example = DTR> FN$CREATE_LOG ("HANK", "DB0:[MORRISON.RW]LOG.RNO")2 DTR> PRINT FN$TRANS_LOG ("HANK") USING X(30)  FN$TRANS LOG  DB0:[MORRISON.RW]LOG.RNO DTR>  2 FN$UPCASE6 Changes the characters in a string to uppercase.  3 Input A character string.  3 Output3 The input character string, all in uppercase.  3 Example $ DTR> DECLARE WOMBAT PIC X(25)./ DTR> WOMBAT = "Wombats have sharp claws."# DTR> PRINT FN$UPCASE (WOMBAT)  FN$UPCASE  WOMBATS HAVE SHARP CLAWS. DTR>  2 FN$USERNAME/ Displays the text string of the username.  3  Input None.  3 Output; The text string of the username passed by descriptor.  3 Example  DTR> PRINT FN$USERNAME  DALFY DTR>  2 FN$WAITC Places the current process into hibernation for the number of( seconds specified in its argument.  3 InputE The number of seconds to wait. You can also specify a prompting value expression.  3 OutputB A pause determined by the seconds specified in the argument.  3 Examples  DTR> BEGIN" CON> REPEAT 3 PRINT "HALLO", CON> FN$WAIT(2) CON> END  FN$WAIT  HALLO 0 HALLO 0 HALLO 0 DTR> > The following example uses a prompting value expression.  DTR> BEGIN" CON> REPEAT 3 PRINT "HALLO", CON> FN$WAIT(**.'Seconds') CON> END   FN$WAIT  Enter Seconds: 3  HALLO 0 HALLO 0 HALLO 0 DTR>  2 FN$WEEK6 Calculates the week number for a date you enter. C (The week number is an integer from 1 to 52. A week number isB assigned sequentially to each week, beginning with the firstG week of the year. The first week of January is week number 1, the: second week of January is week number 2, and so on#.)  3 Input A date.  3 Output' An unsigned integer from 1 to 52.  3 Example 4 DTR> DECLARE CAL USAGE DATE EDIT_STRING X(23).! DTR> CAL = "NOW"; PRINT CAL  CAL  1-Feb-1983 08:51:11.55  DTR> PRINT FN$WEEK (CAL)  FN$WEEK  5 DTR>  2 FN$WIDTH2 Changes the character width of the terminal.  3 Input An integer.  3 Output None.  3 Example ! DTR> SET COLUMNS_PAGE = 132 DTR> FN$WIDTH (132) C FN$WIDTH (132) sets the terminal's width at 132 characters orC columns. The SET COLUMNS_PAGE command ensures that any outputB produced by REPORT, PRINT, SUM, or LIST statements is spaced across the 132 columns.  2 FN$YEAR: Extracts the year part of input (yyyy in dd-Mmm-yyyy hh:mm:ss.cc).  3 Input A date.  3 Output1 An unsigned integer for years 1858 to 9999.  3 Example 4 DTR> DECLARE CAL USAGE DATE EDIT_STRING X(23).! DTR> CAL = "NOW"; PRINT CAL  CAL  1-Feb-1990 08:51:11.55  DTR> PRINT FN$YEAR (CAL)  FN$YEAR  1990 DTR>  wwrxX1 Commands_Statements_ClausesG These topics describe all DEC DATATRIEVE commands, statements and clauses. D Only formats, arguments and examples are provided in Help. For@ full descriptions see the DEC DATATRIEVE Reference Manual.  2 :_(EXECUTE)) Invokes a DEC DATATRIEVE procedure. Format  { : }# { } procedure-name { EXECUTE } { }  3 Argument   procedure-name ? Is the given name, full dictionary path name, or relativeC dictionary path name of the DEC DATATRIEVE procedure you want to invoke.  3 ExamplesG The following example invokes a procedure to find the employee inF PERSONNEL with the largest salary. It uses EXECUTE to invoke theF procedure from the DIGITAL Command Language (DCL) level. In thisD example, DTR is the global symbol for invoking DEC DATATRIEVE.  DTR> SHOW MAX_SALARY PROCEDURE MAX_SALARY READY PERSONNEL;  PRINT PERSONNEL WITH SALARY = MAX SALARY OF PERSONNEL END_PROCEDURE  DTR> EXIT $ DTR EXECUTE MAX_SALARY C FIRST LAST START SUPB ID STATUS NAME NAME DEPT DATE SALARY ID D 00012 EXPERIENCED CARLA SPIVA TOP 12-Sep-1972 $75,892 00012  $ @ The following example invokes a procedure three times. TheF procedure displays employees in a given department with salaries greater than $40,000.  DTR> SHOW BIG_SALARY PROCEDURE BIG_SALARY3 FOR PERSONNEL WITH DEPT = *."the department" BEGIN IF SALARY GT 400004 THEN PRINT ID, NAME, DEPT,START_DATE, SALARY END END_PROCEDURE  DTR> REPEAT 3 CON> BEGIN CON> :BIG_SALARY CON> END Enter the department: F11 / FIRST LAST START9 ID NAME NAME DEPT DATE SALARY : 00891 FRED HOWL F11 9-Apr-1976 $59,594: 78923 LYDIA HARRISON F11 19-Jun-1979 $40,747  Enter the department: T32 : 38462 BILL SWAY T32 5-May-1980 $54,000: 83764 JIM MEADER T32 4-Apr-1980 $41,029  Enter the department: TOP : 00012 CHARLOTTE SPIVA TOP 12-Sep-1972 $75,892 DTR> B The following example invokes a procedure to specify an edit# string clause for a variable:  DTR> DEFINE PROCEDURE E_S# DFN> EDIT_STRING IS $$,$$$.99 DFN> END_PROCEDURE; DTR> DECLARE PRICE_PER_FT COMPUTED BY PRICE/LOA :E_S.5 DTR> PRINT TYPE, PRICE_PER_FT OF FIRST 5 YACHTS % PRICE$ PER# MANUFACTURER MODEL FT ' ALBERG 37 MK II $998.68' ALBIN 79 $688.46' ALBIN BALLAD  $916.67' ALBIN VEGA $688.89' AMERICAN 26 $380.58 DTR>  2 @_(Invoke_Command_File) Invokes a command file. Format  @ file-spec  3 Argument  file-spec C Is the file specification for the file you want to execute. A; complete file specification has the following format: 9 node-spec::device:[directory]file-name.type;version  3  ExampleE The following example invokes a command file, BUILDER.COM, from? DCL to produce a report on yachts by a specified builder.  $ DATATRIEVE "@BUILDER" READY YACHTS, REPORT YACHTS WITH BUILDER = *.BUILDER SET COLUMNS_PAGE = 70 PRINT BOAT END_REPORT Enter BUILDER: ALBIN C 11-Oct-1982> Page 1 *  LENGTH) OVER? MANUFACTURER MODEL RIG ALL WEIGHT BEAM PRICE @ ALBIN 79 SLOOP 26 4,200 10 $17,900@ ALBIN BALLAD SLOOP 30 7,276 10 $27,500@ ALBIN VEGA SLOOP 27 5,070 08 $18,600  $  2 ABORT_StatementE Stops the execution of a single statement, an entire procedure, or a command file. Format ! ABORT [value-expression]  3 Argument   value-expression F Is a DEC DATATRIEVE value expression, usually a character string literal.  3 ExamplesE The following example shows how to store a record in the YACHTSC domain. If the value of the BEAM field is 0, the operation is) aborted and a message is displayed. $ DTR> STORE YACHTS VERIFY USING [Looking for statement]7 DTR> IF BEAM EQ 0 THEN ABORT "Bad value for BEAM"" Enter MANUFACTURER: AMERICAN Enter MODEL: 1980 Enter RIG: SLOOP Enter LENGTH_OVER_ALL: 25 Enter DISPLACEMENT: 7500 Enter BEAM: 0 Enter PRICE: 10000 ABORT: Bad value for BEAM DTR> F The following example shows how to define a procedure to write aE report on the current collection and abort the entire procedure5 if there is no current collection to report on. ( DTR> DEFINE PROCEDURE YACHT_REPORT DFN> SET ABORT= DFN> PRINT "HAVE YOU ESTABLISHED A CURRENT COLLECTION?"/ DFN> IF *."YES or NO" CONTAINING "N" THEN7 DFN> ABORT "SORRY-NO COLLECTION, NO REPORT." DFN> REPORT DFN> PRINT BOAT7 DFN> AT BOTTOM OF REPORT PRINT COUNT, TOTAL PRICE DFN> END_REPORT DFN> END_PROCEDURE DTR> :YACHT_REPORT 0 HAVE YOU ESTABLISHED A CURRENT COLLECTION? Enter YES or NO: NO- ABORT: SOR RY--NO COLLECTION, NO REPORT. DTR> D In the following example, a procedure is defined to update theA OWNERS domain after the sale of a boat. The boat is checkedB against the inventory in the YACHTS domain and the procedureF is aborted if the boat is not in YACHTS. Then, the OWNERS domainB is checked for a record of the boat. If a record exists, theG owner's name is changed and the boat name is updated, if desired.G If no record exists, a new rec ord is stored in the OWNERS domain.E The procedure requires MODIFY or WRITE access to OWNERS for theF update and EXTEND or WRITE access for the entry of a new record. A The example aborts because there is no YACHTS record for anF ALBERG 42. The value expression specified in the ABORT statement) includes the variables BLD and MOD.  DTR> SHOW SALE_BOAT PROCEDURE SALE_BOAT READY YACHTS, OWNERS WRITE SET ABORT DECLARE BLD PIC X(10). DECLARE MOD PIC X(10). BLD = *."BUILDER'S NAME" MOD = *."MODEL"/ IF NOT ANY YACHTS WITH (BUILDER = BLD AND MODEL = MOD) THEN BEGIN? PRINT SKIP, "RECORD NOT FOUND IN YACHTS.", SKIPA ABORT "POSSIBLE INVENTORY ERROR FOR--"||BLD|||MOD END ELSE= PRINT SKIP, "YACHTS RECORD FOUND FOR "|BLD|||MOD+ IF ANY OWNERS WITH (BUILDER = BLD AND MODEL = MOD) THEN BEGIN2 FOR OWNERS WITH (BUILDER = BLD AND MODEL = MOD) MODIFY USING BEGIN. PRINT COL 10, NAME, SKIP1 NAME = *."NEW OWNER'S NAME"3 PRINT COL 10, BOAT_NAME, SKIP2 IF *."CHANGE BOAT NAME? Y/N"< CONTAINING "Y" THEN PRINT SKIP THEN6 BOAT_NAME = *."NEW BOAT NAME" END END ELSE  STORE OWNERS USING BEGIN+ NAME = *."NEW OWNER'S NAME") BOAT_NAME = *."BOAT NAME" BUILDER = BLD MODEL = MOD END END_PROCEDURE DTR> :SALE_BOAT" Enter BUILDER'S NAME: ALBERG Enter MODEL: 42! RECORD NOT FOUND IN YACHTS.4 ABORT: POSSIBLE INVENTORY ERROR FOR--ALBERG 42 DTR>  2 ADT_CommandC Invokes the Application Design Tool (ADT), an interactive aidD that helps you define a domain, its associated record, and its data file. Format ADT  3 Arguments None.  3 Example) Invoke the Application Design Tool:  DTR> ADT1 Do you want detailed prompts? (YES or NO) : D See the Computer Based Training Package (CBT) for a sample ADT session.  2 ALLOCATION_ClauseB Specifies the type of word boundary alignment DEC DATATRIEVEG uses when storing records in a data file associated with a recordC definition. It also controls the way DEC DATATRIEVE retrievesD data from files created by user programs or other applications software. Format 0 { MAJOR_MINOR }0 ALLOCATION [IS] { ALIGNED_MAJOR_MINOR }0 { LEFT_RIGHT }0 {  }  3 Arguments   MAJOR_MINOR E Causes DEC DATATRIEVE to use MAJOR_MINOR alignment when storing@ or retrieving data in a data file. MAJOR_MINOR forces wordG boundary alignments according to data types for elementary fieldsB defined with the SYNCHRONIZED clause and forces group fieldsE to the maximum alignment of the elementary fields they contain.4 MAJOR_MINOR is the default for DEC DATATRIEVE.   ALIGNED_MAJOR_MINOR E Causes DEC DATATRIEVE to use ALIGNED_MAJOR_MINOR alignment whenD storing or retrieving data in a data file. ALIGNED_MAJOR_MINORE forces word boundary alignments according to data types for allE elementary fields in the record and group fields to the maximum6 alignment of the elementary fields they contain.  LEFT_RIGHT G Causes DEC DATATRIEVE to use LEFT_RIGHT alignment when storing orE retrieving data in a data file. LEFT_RIGHT forces word boundaryF alignment for elementary fields defined as COMP, COMP_1, COMP_2, and DATE.  3 ExampleG The following example shows the use of the ALLOCATION clause with the YACHT record:  DELETE YACHT;$ REDEFINE RECORD YACHT OPTIMIZE ALLOCATION IS LEFT_RIGHT 01 BOAT. 03 TYPE.$ 06 MANUFACTURER PIC X(10)$ QUERY_NAME IS BUILDER. 06 MODEL PIC X(10). 03 SPECIFICATIONS  QUERY_NAME SPECS. 06 RIG PIC X(6)< VALID IF RIG CONT "SLOOP","KETCH","MS","YAWL".% 06 LENGTH_OVER_ALL PIC XXX, VALID IF LOA BETWEEN 15 AND 50 QUERY_NAME IS LOA.$ 06 DISPLACEMENT PIC 99999& QUERY_HEADER IS "WEIGHT"# EDIT_STRING IS ZZ,ZZ9! QUERY_NAME IS DISP.- 06 BEAM PIC 99 MISSING VALUE IS 0. 06 PRICE PIC 99999 MISSING VALUE IS 03  VALID IF PRICE>DISP*1.3 OR PRICE EQ 0% EDIT_STRING IS $$$,$$$. ;  2 Assignment_StatementsG An Assignment statement assigns a value to an elementary field, a! group field, or a variable. = To assign a value to an elementary field the format is:# field-name = value-expression 7 To assign a value to a group field the format is:- group-field-name-1 = group-field-name-2 4 To assign a value to a v ariable the format is:& variable-name = value-expression  2 AT_Clauses_/ AT clauses can be used in FOR loops only. > An AT TOP clause specifies that when a group starts, the> statement in the AT TOP clause has to be executed beforeB executing the main code in the FOR loop. An AT BOTTOM clauseG specifies that an action has to be executed after the last recordF of a group has been processed and before the first record in the next group. Format 1 AT BOTTOM OF field-name [,...] statement . AT TOP OF field-name [,...] statement  3 Arguments  field-name A Is a field from the record definition for the loop's record stream.  statement Is a DATATRIEVE statement.  3 ExampleD In the following example the first AT BOTTOM clause is ignored1 because it is contained in an IF statement.  DTR> DECLARE VAR PIC 9. ;. DTR> READY CDD$TOP.DTR$LIB.DEMO.YACHTS ; DTR> VAR = 0 ; DTR> FOR FIRST 2 YACHTS CON> BEGIN CON> IF VAR EQ 0 THEN CON> BEGIN> CON> AT BOTTOM OF MODEL PRINT "Model change"; CON> END ;; CON> AT BOTTOM OF BUILDER PRINT "Builder change"; CON> IF VAR GT 0 THEN CON> BEGIN: CON> AT TOP OF MODEL PRINT "start model"; CON>  END ;& CON> PRINT MODEL , BUILDER ; CON> END ;  MODEL MANUFACTURER  37 MK II ALBERG Builder change 79 ALBIN Builder change DTR>  2 AT_Statements_(Report_Writer)F The Report Writer AT statements display header and summary linesG at the top and bottom of the report, and at the top and bottom ofF pages and control groups (groups of sorted records with the same# value in one or more fields). F The AT TOP statement summarizes information for the entire groupB of records in the current collection, not the records of the? page, group, or report that you specify in the statement. F The AT BOTTOM statement calculates the summary information basedF on the records of the page, group, or report that you specify in the statement. A With the two forms of the AT statement, you can specify theD value, position, and format of the print objects in the header and summary lines: C The AT statements accept the same types of print objects as a PRINT statement. Format $ { REPORT }B AT BOTTOM OF { PAGE } PRINT summary-element [, ...]$ { field-name }$ { } ? { REPORT } { header-element }G AT TOP OF { PAGE } PRINT { } [, ...]? { field-name } { summary-element }! { }  3 Arguments  field-name C Is a field from the record definition for the report's record stream or a variable.   header-element > Specifies the value, position, and format of the fields.  3 ExamplesF The following example shows the use of both the AT BOTTOM and AT TOP statements:   DTR> SHOW SALARY_REPORT  PROCEDURE SALARY_REPORTC REPORT PERSONNEL WITH DEPT = "D98","E46","T32" SORTED BY DEPT' SET REPORT_NAME = "SALARY REPORT" SET COLUMNS_PAGE = 60 AT TOP OF DEPT PRINT DEPT7 PRINT ID, FIRST_NAME|||LAST_NAME ("NAME"), SALARY# AT BOTTOM OF DEPT PRINT SKIP,$ COL 36, DEPT|||"TOTAL:",6 TOTAL SALARY USING $$$$,$$$, SKIP, COL 13,2 "***********************************",3 SKIP, COL 32, "OVERALL TOTAL:", COL 50,= RUNNING TOTAL (TOTAL SALARY) USING $$$$,$$$, SKIP END_REPORT END_PROCEDURE E See the DEC DATATRIEVE User's Guide for more examples of the AT TOP statement.  2 BEGIN_END_StatementG Groups DEC DATATRIEVE statements into a single compound statement called a BEGIN-END block. Format BEGIN  statement-1  [statement-2] . . . END  3 Arguments   BEGIN / Marks the beginning of a BEGIN-END block.  statement D Is a DEC DATATRIEVE statement. Within the BEGIN-END block, end9 each statement with a semicolon, a RETURN, or both.   END + Marks the end of the BEGIN-END block.  3 ExamplesB The following example shows how to store five records in t heC domain PHONES, each having LOCATION MB1-H2 and DEPARTMENT CE.D The SET NO PROMPT command suppresses the "[Looking for . . .]"E prompts preceding each CON> prompt. This example also shows howG DEC DATATRIEVE responds to CTRL/C and CTRL/Z when it is prompting you for input.  DTR> READY PHONES WRITE DTR> SET NO PROMPT& DTR> REPEAT 5 STORE PHONES USING DTR> BEGIN" CON> NAME= *.NAME$ CON> NUMBER= *.NUMBER$ CON> LOCATION= "MB1-H2" CON> DEPARTMENT= "CE" CON> END Enter NAME: FRED Enter NUMBER: 555-1234 Enter NAME: GERRY Enter NUMBER:  ^C Enter NUMBER: & Execution terminated by operator DTR> E The following example shows how to use a BEGIN-END block to putG three statements in the USING clause of a MODIFY statement, printD a YACHTS record, modify the price, and print the result of the modification:  DTR> READY YACHTS WRITE DTR> SET NO PROMPT$ DTR> FOR YACHTS WITH PRICE = 0 CON> MODIFY USING CON> BEGIN CON> PRINT) CON> PRICE = *."NEW PRICE" CON> PRINT CON> END * LENGTH) OVER= MANUFACTURER MODEL RIG ALL WEIGHT BEAM PRICE 6 BLOCK I. 40 SLOOP 39 18,500 12 Enter NEW PRICE: 30000 * LENGTH) OVER= MANUFACTURER MODEL RIG ALL WEIGHT BEAM PRICE ? BLOCK I. 40 SLOOP 39 18,500 12 $30,0006 BUCCANEER 270 SLOOP 27 5,000 08 Enter NEW PRICE: & Execution terminated by operator DTR> G The following example shows how a BEGIN-END block is treated as a single statement: ( DTR> DEFINE PROCEDURE LOOP_EXAMPLE9 DFN> PRINT "SHOW HOW A BEGIN-END WORKS WITH REPEAT". DFN> PRINT "AND MORE THAN ONE STATEMENT" DFN> END_PROCEDURE DTR>! DTR> REPEAT 2 :LOOP_EXAMPLE, SHOW HOW A BEGIN-END WORKS WITH REPEAT, SHOW HOW A BEGIN-END WORKS WITH REPEAT! AND MORE THAN ONE STATEMENT , DTR> REPEAT 2 BEGIN :LOOP_EXAMPLE; END, SHOW HOW A BEGIN-END WORKS WITH REPEAT! AND MORE THAN ONE STATEMENT, SHOW HOW A BEGIN-END WORKS WITH REPEAT! AND MORE THAN ONE STATEMENT DTR>  2 CDO_CommandC Passes a command line to the Common Dictionary Operator (CDO) utility. Format  CDO cdo-command-line  3 Argument   cdo-command-line 0 Is a command line to be passed to the CDO.  3 ExampleA In the following example, a change in field definition FLD_B A causes a message to be displayed when you READY MY_DB. TheG message is displayed and cleared and the CLEAR NOTICES command is% verified using the CDO command. ! DTR> CDO SHOW NOTICES MY_DBG USR$DISK:[RICK.TEST]GLOBAL.MY_DB;1 is possibly invalid, triggered< by CDD$DATA_ELEMENT USR$DISK:[RICK.TEST]GLOBAL.FLD_A;1 " DTR> CDO CLEAR NOTICES MY_DB! DTR> CDO SHOW NOTICES MY_DBJ %CDO-I-NOMESSAGES, USR$DISK:[RICK.TEST]GLOBAL.MY_DB;1 has no notices DTR>  2 CHOICE_StatementD Causes DEC DATATRIEVE to execute one of a series of statementsE or compound statements, depending on the evaluation of a seriesE of conditional (Boolean) expressions. The CHOICE statement is a? convenient substitute for nested IF-THEN-ELSE statements. Format  CHOICE [OF] 4 boolean-expression-1 [THEN] statement-16 [boolean-expression-2 [THEN] statement-2]* . . .* . . .* . . . [ELSE statement-n]  END_CHOICE  3 Arguments  CHOICE 0 Marks the beginning of a CHOICE statement.   OF D Is an optional language element you can use to clarify syntax.   boolean-expression  Is a Boolean expression.   THEN D Is an optional language element you can use to clarify syntax.  statement B Is a simple or compound statement you want DEC DATATRIEVE toB execute if the corresponding Boolean expression evaluates to true.   ELSE statement-n G Specifies the statement you want DEC DATATRIEVE to execute if all: the preceding Boolean expressions evaluate to false.  END_CHOICE , Marks the end of the CHOICE statement.  3 ExamplesC The followin g example shows how to define a procedure MODIFY_D YACHTS, prompt the user to identify a record by specifying theC BUILDER and MODEL of a yacht, and print the record, promptingG the user to modify a field from YACHTS. This process is continuedE until the user replies to a prompt that no further changes need to be made.  DTR> SHOW MODIFY_YACHTS PROCEDURE MODIFY_YACHTS READY YACHTS WRITE3 FOR YACHTS WITH BUILDER = *."the builder" AND! MODEL = *."the model" BEGIN PRINT PRINT SKIPF PRINT "The fields you can modify are: RIG,LOA,DISP,BEAM,PRICE" MODIFY USING9 WHILE *."Y to modify a field, N to exit" CONT "Y" BEGIN! DECLARE FLD PIC X(5).% FLD = *."field to modify" CHOICE- FLD = "RIG" THEN RIG = *.RIG- FLD = "LOA" THEN LOA = *.LOA0 FLD = "DISP" THEN DISP = *.DISP0  FLD = "BEAM" THEN BEAM = *.BEAM3 FLD = "PRICE" THEN PRICE = *.PRICE; ELSE PRINT "That's not a field in YACHTS." END_CHOICE PRINT PRINT SKIP END& PRINT SKIP, "No more changes." END END_PROCEDURE  DTR> :MODIFY_YACHTS Enter the builder: ALBIN Enter the model: 79 + LENGTH* OVER> MANUFACTURER MODEL RIG ALL WEIGHT BEAM PRICE ? ALBIN 79 SLOOP 26 4,200 10 $17,900 @ The fields you can modify are: RIG, LOA, DISP, BEAM, PRICE- Enter Y to modify a field, N to exit: Y Enter field to modify: RIG Enter RIG: KETCH + LENGTH* OVER> MANUFACTURER MODEL RIG ALL WEIGHT BEAM PRICE ? ALBIN 79  KETCH 26 4,200 10 $17,900 - Enter Y to modify a field, N to exit: Y Enter field to modify: RUG# That's not a field in YACHTS.? ALBIN 79 KETCH 26 4,200 10 $17,900 - Enter Y to modify a field, N to exit: N  No more changes. DTR> D The following example shows how to print the TYPE and PRICE ofB the yachts by ALBERG and ALBIN, indicating whether the price@ is inexpensive, moderate, or expensive. Column headers are suppressed:  DTR> READY YACHTSB DTR> FOR YACHTS WITH BUILDER = "ALBERG" OR BUILDER = "ALBIN" CON> CHOICEC CON> PRICE LT 20000 THEN PRINT TYPE(-),PRICE(-),"INEXPENSIVE"@ CON> PRICE LT 30000 THEN PRINT TYPE(-),PRICE(-),"MODERATE"4 CON> ELSE PRINT TYPE(-), PRICE(-), "EXPENSIVE" CON> END_CHOICE - ALBERG 37 MK II $36,951 EXPENSIVE/ ALBIN 79 $17,900 INEXPENSIVE, ALBIN BALLAD $27,500 MODERATE/ ALBIN VEGA $18,600 INEXPENSIVE DTR>  2 CLOSE_CommandD Closes a Record Management System (RMS) trace file you createdF with an OPEN command as a log for your interactive dialogue with DEC DATATRIEVE. Format CLOSE  3 Arguments   None.  3 Example2 The following example shows a CLOSE command:  DTR> CLOSE   2 COMMIT_StatementG Makes permanent all the changes you made to relational and OracleE CODASYL DBMS databases since the most recent COMMIT or ROLLBACKC statement or, if you have not performed a COMMIT or ROLLBACK,- since the first database READY command. C The COMMIT statement does not affect collections; collectionsC are maintained. For Oracle CODASYL DBMS databases, the COMMITF statement performs a COMMIT RETAINING. For relational databases,D  the COMMIT statement starts a new transaction that gives you a new look at the database. E When you have both relational and Oracle CODASYL DBMS databasesG readied, the COMMIT statement commits all Oracle CODASYL DBMS andF relational databases, regardless of whether you made any changes to their data. ? Domains based on RMS files are not affected by the COMMIT statement. Format  COMMIT  3 Arguments   None.  3 ExamplesD The following Oracle CODASYL DBMS example connects an employeeF named Hill to a part LA36 in the RESPONSIBLE_FOR set. The COMMIT, statement makes this change permanent. : DTR> FIND E IN EMPLOYEES WITH EMP_LAST_NAME = "HILL" DTR> SELECT 10 DTR> FOR P IN PART WITH PART_DESC = "LA36"+ CON> CONNECT P TO E.RESPONSIBLE_FOR DTR> COMMIT DTR> B The following relational database example stores a record inF the relation DEPARTMENTS. The COMMIT statement makes this change permanent: ; DTR> READY DATABASE PERSONNEL USING DEPARTMENTS WRITE DTR> STORE DEPARTMENTS! Enter DEPARTMENT_CODE: SENG1 Enter DEPARTMENT_NAME: SOFTWARE ENGINEERING Enter MANAGER_ID: 87215 DTR> COMMIT DTR>  2 COMPUTED_BY_Clause$ Describes a COMPUTED BY field. Format % COMPUTED BY value-expression  3 Argument   value-expression + Is a DEC DATATRIEVE value expression.  3 ExamplesA In the following example, the price per pound of a yacht is@ computed as the price divided by the displacement. In thisD case, both the PRICE and DISP fields are defined in the record definition.  06 PRICE_PER_POUND EDIT_STRING $$$,$$9.99 COMPUTED BY PRICE/DISP. G When the PRICE_PER_POUND f ield is used in a command or statement,E DEC DATATRIEVE divides the value of the record's PRICE field byG the value of its DISP field. The result of the computation is the) value of the PRICE_PER_POUND field. @ In the following example, the discount price of a yacht isC computed. The amount of the discount varies with the price ofF a yacht. The field PRICE is defined in the record definition for YACHTS: % 06 DISCOUNT_PRICE COMPUTED BY  CHOICE3 PRICE LT 20000 THEN (PRICE * .9)3 PRICE LT 30000 THEN (PRICE * .8)3 PRICE LT 40000 THEN (PRICE * .7)$ ELSE (PRICE * .6) END_CHOICE' EDIT_STRING IS $$$,$$$. @ When DISCOUNT_PRICE is used in a command or statement, DECE DATATRIEVE evaluates each Boolean expression in order until oneG evaluates to true. Then it performs the corresponding computation on PRICE. D In the following example, the value of the SALESFORCE field isB derived from a dictionary or domain table named SALES_TABLE:  06 SALESFORCE EDIT_STRING IS X(20)2 COMPUTED BY MANUFACTURER VIA SALES_TABLE. ; In this example, DEC DATATRIEVE uses the value of theG MANUFACTURER field in the current record to search the dictionary@ or domain table SALES_TABLE for a matching code. If one isD found, DEC DATATRIEVE uses its translation as the value of the SALESFORCE field.  2 CONNECT_Statement@ Makes explicit connections between a record and the OracleG CODASYL DBMS sets you specify in the TO list. Before establishingF the connections, DEC DATATRIEVE sets up a currency indicator for( each set specified in the TO list. Format  CONNECT context-name-1 ; [TO] {[context-name-2.] set-name-1} [,...]   3 Arguments   context-name-1 > Is the name of a valid context variable or the name of aB collection with a selected record. It must identify a recordD occurrence of a domain with a record type that participates inE the specified set type. That record must not be a member of theB sets specified by the TO list, but its record type must be a3 valid member type in the specified set types.   context-name-2 > Is the name of a valid context variable or the name of aG collection with a selected record. It must identify a record thatD participates in the specified set. If the SYSTEM owns the set,G you do not need to establish a context for the set. If the set isF not owned by the SYSTEM and the context name is not present, DECG DATATRIEVE uses the most recent single record context of a domainE with a record type that participates in the specified set type.  set-name Is the name of a set type.  3 ExampleE The following example connects an employee named Hill to a partG LA36 in the RESPONSIBLE_FOR set. P and E in the following exampleA are context names. E refers to a collection with a selectedD record and P to a record stream. The records in these contexts9 are all owner records or member records in the set. : DTR> FIND E IN EMPLOYEES WITH EMP_LAST_NAME = "HILL" DTR> SELECT 10 DTR> FOR P IN PART WITH PART_DESC = "LA36"+ CON> CONNECT P TO E.RESPONSIBLE_FOR DTR>  2 CROSS_Clause > You use the CROSS clause to perform the following tasks: 6 o Compare records from one domain or collection @ o Combine records from two or more domains or collections F o Flatten hierarchical domains to ease access to the list items Format 0 CROSS [context-variable IN] rse-source '  [OVER field-name] [...]  3 Arguments   context-variable F Is the name of a valid context variable. A context variable is aG temporary name that identifies a record stream to DEC DATATRIEVE.  rse-source B Is the record selection expression (RSE) that identifies the$ records you want to work with.  field-name E Is a field whose values form the basis for the cross operation.  3 ExampleD The following query uses one RSE that includes five out of theC six optional elements of an RSE. DEC DATATRIEVE processes the: query far faster than if nested FOR loops were used: DTR> DEFINE PROCEDURE CROS DFN> READY YACHTS' DFN> PRINT BUILDER, RIG, A.RIG OF7 DFN> A IN YACHTS CROSS YACHTS OVER BUILDER WITH8 DFN> RIG GT A.RIG REDUCED TO BUILDER, RIG, A.RIG DFN> END_PROCEDURE  DTR> :CROS  MANUFACTURER  RIG RIG  AMERICAN SLOOP MS CHALLENGER SLOOP KETCH GRAMPIAN SLOOP KETCH IRWIN SLOOP KETCH ISLANDER SLOOP KETCH NORTHERN SLOOP KETCH PEARSON SLOOP KETCH DTR>  2 DATATRIEVE_CommandF The DCL command DATATRIEVE starts a DEC DATATRIEVE session. ThisG DCL command lets you specify several optional qualifiers that let0 you customize your DEC DATATRIEVE session.   Format 6 [ {DECWINDOWS } ]6 [ /INTERFACE= { } ]E DATATRIEVE [ {CHARACTER_CELL } ] ["DATATRIEVE"]6 [ /[NO]DEBUG ]6 [ /VARIANT=image-suffix ]6 [ ]  3 Arguments  " /INTERFACE = { DECWINDOWS }" { CHARACTER_CELL } C Specifies the display interface to be used by DEC DATATRIEVE.E If your default environment is the command line interface, thenG CHARACTER_CELL is the default. If your system is properly definedE to invoke the DECwindows Motif interface, then DECwindows MotifG is the default. This qualifier overrides the setting specified by the DTR$NOWINDOWS logical.  /[NO]DEBUG C Specifies whether DEC DATATRIEVE should display special debug' messages. The de fault is NODEBUG.   /VARIANT = image-suffix > Indicates the 1- to 26-character suffix applied to a DECB DATATRIEVE image upon installation to uniquely identify that> image. This qualifier is needed only if you invoke a DECD DATATRIEVE image that was not selected as the default image atF installation time. If the default image you are running includesC a suffix and you want to run an image that does not include aC suffix, use the /VARIANT q ualifier alone, as in the following example:  $ DATATRIEVE/VARIANT   "DATATRIEVE" C Specifies a DEC DATATRIEVE command or statement that is to beE executed by DEC DATATRIEVE. It allows the user to execute a DECB DATATRIEVE command, statement, or procedure without entering@ interactive DEC DATATRIEVE. If the DEC DATATRIEVE argumentA contains more than one word, it must be placed in quotation marks.  3 ExampleC The following example shows how to execute the DEC DATATRIEVE> SHOW DICTIONARY command without entering interactive DEC DATATRIEVE. = $ DATATRIEVE/INTERFACE=CHARACTER_CELL "SHOW DICTIONARY" 4 The default directory is _CDD$TOP.DTR$LIB.DEMO  $2 DECLARE_DATABASE_CommandE Creates a temporary database object that specifies a relationalD database (Format 1) or a Oracle CODASYL DBMS database instance (Format 2). Format 1@ DECLARE DATABASE rdb-database-name ON root-file-spec; Format 2, DECLARE DATABASE dbms-database-name1 [USING] [SUBSCHEMA] subschema-name- [OF] [SCHEMA] schema-path-name ON root-file-spec; 3 Arguments rdb-database-nameA Is the name of the relational database you want to declare. It must be a simple name. root-file-specF Is the name of the database root file. For relational databases,A the default file type is .RDB; for Oracle CODASYL DBMS, theB default file type is .ROO. A complete file specification has the following format:9 node-spec::device:[directory]file-name.type;version dbms-database-nameA Is the name you choose for the Oracle CODASYL DBMS database instance. It must be a simple name. subschema-name: Is the name of a subschema for the specified schema. schema-path-nameB  Is the dictionary path name of a Oracle CODASYL DBMS schema. ;(semicolon)( Ends the DECLARE DATABASE command. 3 Examples+ Declare a relational database object:@ DTR> DECLARE DATABASE MY_DB ON DTR$LIBRARY:PERSONNEL.RDB ; DTR>A Declare a Oracle CODASYL DBMS database instance. The Oracle/ CDD/Repository path name of the schema is0 CDD$COMPATIBILITY.DTR$LIB.DEMO.DBMS.PARTS.1 The name of the subschema is DTR_SUBSCHEMA,5 an d the root file is DTR$LIBRARY:DTRPARTDB.ROO:E DTR> DECLARE DATABASE MY_PARTS_DB USING SUBSCHEMA DTR_SUBSCHEMA> DFN> OF SCHEMA CDD$COMPATIBILITY.DTR$LIB.DEMO.DBMS.PARTS) DFN> ON DTR$LIBRARY:DTRPARTDB.ROO ;2 DECLARE_DOMAIN_Command> Creates the temporary definition of a DATATRIEVE domain.? The following sections explain how to declare domains forB CDD$DATABASE objects, Oracle CODASYL DBMS databases, networkB domains based on domains residing at other DECnet[TM] nodes,D domains based on relational databases, domains based on single8 RMS files, and views based on one or more domains. FormatC To declare a CDD$DATABASE domain, use the following syntax:; DECLARE DOMAIN domain-name [USING] database-nameE [FORM [IS] form-name [IN] file-name [USING exchange-rec]]# [WITH] RELATIONSHIPS ;B To declare a Oracle CODASYL DBMS domain, use the following syntax:9  DECLARE DOMAIN domain-name [USING] record-name0 [OF] [DATABASE] database-path-nameG [FORM [IS] form-name [IN] file-name [USING exchange-rec]] ;> To declare a network domain, use the following syntax:? DECLARE DOMAIN domain-name [USING] remote-path-name AT node-specH [FORM [IS] form-name [IN] file-name [USING exchange-rec]]$ [[WITH] RELATIONSHIPS] ;A To declare a relational domain, use the following syntax:9 DECLARE DOMAIN domain-name [USING] relation-name0 [OF] [DATABASE] database-path-nameE [FORM [IS] form-name [IN] file-name [USING exchange-rec]]$ [[WITH] RELATIONSHIPS] ;B To declare a domain based on a RMS file, use the following syntax:? DECLARE DOMAIN domain-name [USING] record-path-name ON file-specE [FORM [IS] form-name [IN] file-name [USING exchange-rec]]% [[WITH] RELATIONSHIPS] ;9 To declare a view domain, use the following syntax:= DECLARE DOMAIN view-name OF domain-name-1 [,...][BY ] [USING]; level-number-1 field-name-1 OCCURS FOR rse-1.E level-number-2 field-name-2 { OCCURS FOR rse-n } ." { FROM domain-name-n }+ . . .+ . . .+ . . .C [FORM [IS] form-name [IN] file-name [USING exchange-rec]]" [[WITH] RELATIONSHIPS] ; 3 Arguments domain-name2 Is the name of the domain you are declaring. It must be a simple name. database-nameE Is the name of a CDD$DATABASE object, defined through CDO usingD the DEFINE DATABASE command, that points to a CDD$RMS_DATABASEG object. Refer to the Oracle CDD/Repository documentation for more. information on CDD$RMS_DATABASE objects. record-nameB Is the name of a record type contained in a subschema of the- specified Oracle CODASYL DBMS database. database-path-name@ Is the DEC DATATRIEVE definition of the database instance." It is a dictionary pathname. remote-path-name? Is the given name, full dictionary path name, or relativeA dictionary path name of a domain definition at another nodeB in a network of computers linked by DECnet. That domain, theE associated record definition, and the associated data file mustD already exist in the data dictionary at the remote node before' you can ready the network domain." It is a dictionary pathname. node-spec$ Specifies the network address.@ If the login procedure used by the remote process does notB supply the necessary login information (user name, password,D and, optionally, account name), either the person readying theF network domain or the network domain definition must supply this information.E You can use any of the following formats to specify the networkG address and to provide the best level of access security for your installation:5 node-name"username password [account-name]")% Examples of this format are:) BIGVAX"WARTON KNOCKKNOCK DEPT32" ELEVEN"LINTE LETMEIN"F When you specify the network address using this format, usersB  do not have to supply login information when readying the network domain.J node-name"*.username-prompt *.password-prompt [*.account-prompt]"% Examples of this format are:0 WINKEN"*.USERNAME *.PASSWORD *.ACCOUNT"+ VAXTWO"*.'user name' *.'password'"+ PDPTWO"*.'user name' *.'password'"F When you specify the network address using this format, usersG are prompted for login information when they ready the network8 domain. This method provides the best security. node-name) Two examples of this format are: BIGVAX DEC:.zko.starD Note that Poor Man's Routing is not accepted in AT clauses.? When you specify the network address with this format,B the account used by the remote process must provide login# information automatically.@ If you prefer, you can combine elements from the first twoD formats. For example, you can explicitly specify the user name@ and specify a prompting value expression for the password: SNOOPY"CLARK *.PASSWORD" relation-name@ Is the name assigned to the relation when the database was created. record-name? Is the given name, full dictionary path name, or relativeD dictionary path name of the record definition to be associated@ with the domain. You must enter the permanent or temporaryF definition of this record (with the DEFINE RECORD or the DECLARE7 RECORD commands) before you can ready the domain. file-specB Is the OpenVMS file specification of the RMS file containingF the data for the domain. This file must exist when you ready theE domain. A complete file specification has the following format:9 node-spec::device:[directory]file-name.type;version view-name, Is the name of the view being defined. It must be a simple name. domain-name-1F Is either the given name, full dictionary path name, or relative? dictionary path name of a domain containing records to beE included in the view. If the domain name is a domain path name,D it cannot duplicate the name of the view. When specifying moreG than one domain path name, use a comma to separate each name from the next. level-number= Is the level number for a field in the view definition. field-nameE Is  the name of a field in the view definition. If field-name isF followed by an OCCURS FOR clause, field-name has no relationshipA to any field in the domain or domains specified in the RSE.B Whether or not field-name is the same as the names of any ofB those fields does not matter. If field-name is followed by aE FROM clause, field-name must be the name of a field in a domain6 specified in the OF domain-name-1 [,...] clause. OCCURS FOR rseG Indica !tes that the associated field is to be included in the viewG only for those records specified by the RSE. The RSE must containE a reference to one of the domains, relations, or Oracle CODASYL+ DBMS records listed in the OF clause. FROM domain-name> Indicates that the definition of the associated field isD identical to that of the field of the same name in the domain,G relation, or Oracle CODASYL DBMS record specified by domain-name-F n. The arg"ument domain-name must be the same as that used in the" preceding OCCURS FOR clause. . (period) Ends a field definition. form-name Is a form name. file-nameA For VAX TDMS and DEC FMS[TM] forms it is the name of a form? library. For DECforms[TM] forms it is the form file name,A which can either be a .FORM or a .EXE file. A complete file- specification has the following format:9 node-spec::device:[directory]file-name#.type;version exchange-rec@ Is the path name of a record used to send and receive data with DECforms. RELATIONSHIPS? It is ignored except in the declaration of a CDD$DATABASE@ domain where it is required to specify the characteristics of the related object. ; (semicolon)! Ends the domain definition. 3 Examples9 Declare the DATATRIEVE domain D0 as pointing to the+ CDD$DATABASE database D_CDD$DATABASE.F DT $R> DECLARE DOMAIN D0 USING D_CDD$DATABASE WITH RELATIONSHIPS ;@ Declare the Oracle CODASYL DBMS domain D2. The name of theE record-type is VENDOR, and the name of the database instance is) CDD$TOP.DTR$LIB.DEMO.DBMS.PARTS_DB.5 The domain definition includes the FORM clause. DTR> DECLARE DOMAIN D2J DFN> USING VENDOR OF DATABASE CDD$TOP.DTR$LIB.DEMO.DBMS.PARTS_DB1 DFN> FORM IS EMPFOR IN FORMS:PARTS.FLB; DTR>4 Declare a network doma%in called REMOTE_YACHTS:- DTR> DECLARE DOMAIN REMOTE_YACHTS USING, DFN> CDD$TOP.DTR$LIB.DEMO.YACHTS AT= DFN> VAX32"SMITH ADRIENNE" FORM IS YACHT1 IN DTRFRM; DTR>A The following example declares a DEC DATATRIEVE domain thatH automatically uses a form. The domain is declared for the relation EMPLOYEES.# DTR> DECLARE DOMAIN EMPLOYEES4 DFN> USING EMPLOYEES OF DATABASE PERSONNEL* DFN> FORM IS EMPFOR IN FORMSLIB; DT&R>D Declare the domain PHONES. Use the record definition PHONE_RECD that is cataloged in the directory CDD$TOP.DEPARTMENT. Specify! PHONE.DAT as the data file:& DTR> DECLARE DOMAIN PHONES USING5 DFN> CDD$TOP.DEPARTMENT.PHONE_REC ON PHONE.DAT; DTR>4 Declare a view of yacht and owner information:; DTR> DECLARE DOMAIN BOAT_VIEW OF YACHTS, OWNERS USING% 01 BOAT_INFO OCCURS FOR YACHTS. 03 TYPE FROM YACHTS.> 03 SKIPPERS O'CCURS FOR OWNERS WITH TYPE EQ BOAT.TYPE. 05 NAME FROM OWNERS.% 05 BOAT_NAME FROM OWNERS. ; DTR> READY BOAT_VIEW" DTR> PRINT FIRST 4 BOAT_VIEW3 BOAT3 MANUFACTURER MODEL NAME NAME ALBERG 37 MK II ALBIN 79 ALBIN BALLAD4 ALBIN VEGA STEVE DELIVERANCE0 HUGH IMPULSE DTR>A( You can use a view domain such as BOAT_VIEW as a source for5 modifying data in a domain based on a RMS file.2 DECLARE_PORT_Command> Creates a temporary definition of a DEC DATATRIEVE port.@ It has a different syntax than the DECLARE PORT statement.< The DECLARE PORT command can be used only as top level> phrase; it only creates the temporary definition without readying the port. Format7 DECLARE PORT port-name [USING] record-nam)e ; 3 Arguments port-name, Is the name of the port being defined. It must be a simple name. record-name? Is the name of a DECLARED record, or the full or relative? dictionary path of the record definition to be associated with the port. ; (semicolon) Ends the port definition. 3 ExampleC The following example defines a port for transferring records; between the YACHTS domain and an application program: *B DTR> DECLARE PORT MY_YPORT USING CDD$TOP.DTR$LIB.DEMO.YACHT; DTR>2 DECLARE_PROCEDURE_Command6 Creates the temporary definition of a procedure. Format) DECLARE PROCEDURE procedure-name . . . END_PROCEDURE 3 Arguments procedure-name7 Is the name of the procedure you want to declare. It must be a simple name. END_PROCEDURE$ Ends the procedure def+inition. 3 Examples! DTR> DECLARE PROCEDURE GRZ1- DFN> PRINT "I am Alessandra's mother" ; DFN> :ALE1 ; DFN> END_PROCEDURE ; DTR>! DTR> DECLARE PROCEDURE ALE1+ DFN> PRINT "I am Grazia's daughter" ; DFN> END_PROCEDURE ; DTR> DTR> :GRZ1 I am Alessandra's mother I am Grazia's daughterA The following example shows how to declare a procedure thatC displays a group of boats with a price less than a fig ,ure you% supply when the procedure runs:' DTR> DECLARE PROCEDURE PRICE_LIST4 DFN> READY CDD$TOP.DTR$LIB.DEMO.YACHTS& DFN> PRINT SKIP, COL 20,9 DFN> '*** Price List of YACHTS ***', SKIP ;9 DFN> FOR FIRST 5 YACHTS WITH PRICE NE 0 AND9 DFN> PRICE LE *.'the ceiling price'- DFN> PRINT BOATB DFN> PRINT SKIP, COL 10, 'See anything interesting?' DFN> END_PROCEDU-RE ; DTR> DTR> :PRICE_LIST ;5 *** Price List of YACHTS ***# Enter the ceiling price: 4500% LENGTH$ OVER> MANUFACTURER MODEL RIG ALL WEIGHT BEAM PRICE? CAPE DORY TYPHOON SLOOP 19 1,900 06 $4,295? VENTURE 21 SLOOP 21 1,500 07 $2,823? VENTURE 222 SLOOP 22 2,000 07 $3,564? WINDPOWER IMP.ULSE SLOOP 16 650 07 $3,500) See anything interesting? DTR>2 DECLARE_RECORD_Command1 Creates a temporary definition of a record. Format8 DECLARE RECORD record-name [USING] [OPTIMIZE]1 [ {MAJOR-MINOR } ]1 [ ALLOCATION IS {ALIGNED-MAJOR-MINOR } ]1 [ {LEFT-RIGHT } ]1 [ { } ] definition [,...]/ ; 3 Arguments record-name/ Is the name of the record being declared. [USING] OPTIMIZE This clause is ignored.( { MAJOR-MINOR }( ALLOCATION IS { ALIGNED-MAJOR-MINOR }( { LEFT-RIGHT }G Specifies the type of word-boundary alignment DEC DATATRIEVE usesE when storing records in the data file. It also controls the wayC DEC DATATRIEVE retrieves data from data files created by use0rD programs or other application software. The default allocationG is no alignment. See the DEC COBOL[TM] documentation set for moreC information on word-boundary alignment and allocation of fill bytes. definitionE Is the description of the fields in the record. Each definition' has one of the following formats:% level-number-1 field-name-1.9 level-number-2 field-name-2 field-definition-2.; [level-number-n field-name-1n field-definition-n.]! . . .! . . .! . . . or( {FIELD }4 level-number-n FROM {GROUP } path-name.( { } level-numberD Is the level number for the field in the record definition. ItD indicates the relationship of the field to the other fields in the record definition. field-nameA 2 Is the name of the field. Every field must have a name. TheD keyword FILLER is a special field name that can be repeated at. the same level in the record definition. field-definitionF Is a field definition. A record definition must contain at leastD one field definition. Elementary fields must have at least oneC field definition clause, but group fields are not required to( have any field definition clauses.7 Each field definition must end wit3h a period (.). FROMB Allows you to create a definition using fields imported from* dictionary field/record definitions. FIELD; Specifies that you are referencing an existing field.E If the field-pathname points to a Oracle CDD/Repository object,A this must be a CDO field. Otherwise it identifies the first6 field of a DECLAREd or a text-definition record. GROUPA Specifies that you are referencing an existing group field.E 4 If the field-pathname points to a Oracle CDD/Repository object,< this must be a CDO record. Otherwise it may point to a+ DECLAREd or a text-definition record. path-nameD Specifies the path name of the field or record referenced by aB FROM field. It can be a simple name (for DECLAREd object) or1 a relative or absolute dictionary pathname. ; (semicolon)! Ends the record definition. 3 Examples9 The following example defines the record5 PHONE_REC:) DTR> DECLARE RECORD PHONE_REC USING DFN> 01 PHONE. DFN> 02 NAME PIC X(20).6 DFN> 02 NUMBER PIC 9(7) EDIT_STRING IS XXX-XXXX. DFN> 02 LOCATION PIC X(9). DFN> 02 DEPARTMENT PIC XX. DFN> ; [Record is 38 bytes long.]6 The following example defines the record FAMILY:& DTR> DECLARE RECORD FAMILY USING DFN> 01 FAMILY. DFN> 03 PARENTS.& DFN> 06 FATHER PIC X(10).& DFN> 06 MOTHER 6PIC X(10).6 DFN> 03 NUMBER_KIDS PIC 99 EDIT_STRING IS Z9.D DFN> 03 KIDS OCCURS 0 TO 10 TIMES DEPENDING ON NUMBER_KIDS. DFN> 06 EACH_KID.> DFN> 09 KID_NAME PIC X(10) QUERY_NAME IS KID.6 DFN> 09 AGE PIC 99 EDIT_STRING IS Z9. DFN> ;! [Record is 142 bytes long.] DTR>9 The following example declares the record YACHT_REC& using fields from other records.* DTR> DECLARE RECORD VERSION_ID USING$ 7DFN> 01 VERSION_ID PIC x(16) . DFN> ; [Record is 16 bytes long.] DTR>+ DTR> DECLARE RECORD SUPER_YACHT USING DFN> 01 SUPER_BOAT .5 DFN> 10 FROM GROUP CDD$TOP.DTR$LIB.DEMO.YACHT . DFN> 10 SPEED REAL .% DFN> 10 FROM FIELD VERSION_ID . DFN> ; DTR>8 DTR> DECLARE DOMAIN SUPER_YACHTS USING SUPER_YACHT' DFN> ON NDS_DECLARE_HELP_02.DAT ; DTR> DTR> SET NO CDD ;) DTR> DEFINE FILE FOR SUPER_YACHTS ; DT8R> READY SUPER_YACHTS ;) DTR> SHOW FIELDS FOR SUPER_YACHTS ; SUPER_YACHTS SUPER_BOAT BOAT TYPE@ MANUFACTURER (BUILDER) 0 MODEL % SPECIFICATIONS (SPECS)( RIG @ LENGTH_OVER_ALL (LOA) . DISPLACEMENT (DISP) & BEAM & 9 PRICE  SPEED 0 VERSION_ID 2 DECLARE_TABLE_CommandG Creates the temporary definition of a dictionary or domain table.E list (ACL) for the table. The following sections explain how to+ declare dictionary and domain tables. Format? To declare a dictionary table use the following syntax: DECLARE TABLE table-name3 [QUERY_HEADER [IS] "header-segmen:t"[/...]]' [EDIT_STRING [IS] edit-string]3 [USING] code-field : translation-field [,]* {"code-1" } { "translation-1" }- {code-1 }: { translation-1 }[,]* { } { }. [ {"code-2" } {"translation-2" } ]1 [ {code-2 }: {translation-2 } ][,]. [ { } { } ] . . . . . .% [ ; { "translation-n" } ]% [ ELSE {translation-n } ]% [ { } ] END_TABLE; To declare a domain table use the following syntax:; DECLARE TABLE table-name FROM [DOMAIN] domain-name3 [QUERY_HEADER [IS] "header-segment"[/...]]' [EDIT_STRING [IS] edit-string]3 [USING] code-field : translation-field [,]* [ { "translation-string" } ]* [ ELSE {translation-string } ]* < [ { } ] END_TABLE 3 Arguments table-name8 Is the name of the dictionary table being defined. It must be a simple name. "code" : "translation"F Is a code-and-translation pair. You must separate each pair withD a colon. The comma after each pair is optional. If the code orF translation conforms to the rules for DEC DATATRIEVE names givenG in the DEC DATATRIEVE User's Guide, you do not have to enclose= itG in quotation marks. However, DEC DATATRIEVE converts to uppercase? any lowercase letters in an unquoted code or translation.F If the code or translation does not conform to the rules for DECD DATATRIEVE names (especially if it contains any spaces), or ifG you want to preserve lowercase letters, you must enclose the codeF or translation in quotation marks (" ") and follow the rules for character string literals. ELSE "translation"= >Is the translation to be used if you specify a code not? defined in the dictionary table. The rules for specifyingA this translation string are the same as those for codes and translations. END_TABLE+ Ends the dictionary table definition. 3 ExamplesD The following example declares a table of department codes andA specifies a query header for the translations of the table:# DTR> DECLARE TABLE DEPT_TABLE5 DFN> QUERY_HEADER IS "Resp?onsible"/"Department"( DFN> CE : "Commercial Engineering"# DFN> PE : "Plant Engineering"" DFN> CS : "Customer Support"* DFN> RD : "Research and Development"" DFN> SD : "Sales Department"$ DFN> ELSE "UNKNOWN DEPARTMENT" DFN> END_TABLE DTR>? DTR> print "John belongs to " | ( "RD" via DEPT_TABLE ) ;. John belongs to Research and DevelopmentH The following example declares a table with a translation for eachE possible rig and i@ncludes an edit string in the definition that= displays the translation in a 10 character wide column: DTR> DECLARE TABLE RIGGING DFN> EDIT_STRING IS T(10)+ DFN> QUERY_HEADER "TYPE OF"/"RIGGING" DFN> SLOOP : "ONE MAST"0 DFN> KETCH : "TWO MASTS, BIG ONE IN FRONT"% DFN> YAWL : "SIMILAR TO KETCH"* DFN> MS : "SAILS AND A BIG MOTOR"# DFN> ELSE "SOMETHING ELSE" DFN> END_TABLE$ DTR> PRINT "KETCH" VIA RIGGING TYPE AOF RIGGING TWO MASTS, BIG ONE IN FRONT DTR>D The following example shows how to declare a domain table thatE returns the price of a yacht when you enter a value for LENGTH_G OVER_ALL. The example specifies a query header and an edit string for the translation field:( DTR> DECLARE TABLE LOA_PRICE_TABLE/ DFN> FROM CDD$TOP.DTR$LIB.DEMO.YACHTS/ DFN> QUERY_HEADER IS "SAMPLE"/"PRICE"% DFN> EDIT_STRIBNG IS $$$,$$$ DFN> USING LOA : PRICE6 DFN> ELSE "NO BOATS IN STOCK WITH THAT LOA." DFN> END_TABLE' DTR> PRINT 26 VIA LOA_PRICE_TABLE SAMPLE PRICE $17,900 DTR>  2 DECLARE_Statement+ Defines a global or a local variable. Format 5 DECLARE variable-name variable-definition .  3 Arguments   variable-name F Is the name of the variable being defined. TChe name must conformG to the rules for names listed in the DEC DATATRIEVE User's Guide.   variable-definition @ Is the definition of the variable, which consists of fieldC definition clauses. If you include more than one such clause,E separate them with spaces, tab characters, or carriage returns.F Refer to the chapter on record definitions in the DEC DATATRIEVE? User's Guide for information on field definition clauses.  . (periDod) ! Ends the DECLARE statement.  3 ExamplesE Declare the global variable NEW_BEAM as a 2-digit numeric field! with a DEFAULT value of 10: 7 DTR> DECLARE NEW_BEAM PIC 99 DEFAULT VALUE IS 10. DTR> PRINT NEW_BEAM NEW BEAM 10 DTR> C Declare the global variable X as a single-precision floating-/ point number, with a MISSING VALUE of 36: . DTR> DECLARE X REAL MISSING EVALUE IS 36. DTR> PRINT X X  36.0000000  DTR> SHOW VARIABLES Global variables X 1 Declared as: X REAL MISSING VALUE IS 36.  DTR> RELEASE X DTR> SHOW FIELDS4 No ready sources or global variables declared. DTR> D Declare the variable DUE as a date. Assign today's date to DUE; and suppress the header with a hyphen in parentheses: % DTR> DECLARE DUE USAGE IS FDATE. DTR> DUE = "TODAY" DTR> PRINT DUE (-)  22-Sep-90 DTR>  (2 DECLARE_ATT_Statement_(Report_Writer)C Specifies text control elements (font family, character size,G weight, slant, underline) overriding or complementing the defaultG attributes for the ATT argument used by the Report Writer's PRINT and SET statements. Format 5 { FAMILY= font-option }5 G { SIZE= point-size }5 { {BOLD } }= DECLARE_ATT att-name { { } } [,...]5 { [NO] {ITALIC } }5 { {UNDERLINE } }5 { {REVERSE } }5 { }  3 Arguments  att-name G Is the user-defined name of the attribute list. This name is useHd= by the ATT clause in the Report Writer Print statement. A DECLARE_ATT Print Attributes shows the options which can be. controlled by the DECLARE_ATT statement. , Table 1-1 DECLARE_ATT Print Attributes ! Header3 AttributOptions default Body default 0 Family HELVETICA HELVETICA HELVETICA TIMES COURIER AVANTGARDE SYMBOL LUBAILIN_ GRAPH NC_ SCHOOLBOOK SOUVENIR) Point 8 10 12 14 14 10 Size 18 24 36 48 72 96. Bold BOLD BOLD NO BOLD NO BOLD0 Italic ITALIC NO ITALIC NO ITALIC NO ITALIC3 UnderlinUNDERLINE NO NO UNDERLINE$ NO UNDERLINE UNDERLINE1 Reverse REVERSE NO NO REVERSJE" NO REVERSE REVERSE   font-option @ Is the font family chosen. Available options are listed in# DECLARE_ATT Print Attributes.  point-size E Is the point size for the chosen font family. Available options1 are listed in DECLARE_ATT Print Attributes.  3 ExampleE The following example shows a number of DECLARE_ATT statements: 8 DTR> REPORT PAYABLES WITH INVOICE_DUE NOT MISSING -= RW> K SORTED BY AGE ON AGING_REPORT.PS FORMAT PS RW>I RW> DECLARE_ATT TITLE FAMILY = TIMES, SIZE = 24, BOLD, NOITALICI RW> DECLARE_ATT DATE_PAGE FAMILY = TIMES, SIZE = 14, NOBOLD, ITALICG RW> DECLARE_ATT COL_HDR FAMILY = TIMES, SIZE = 12, BOLD, ITALICA RW> DECLARE_ATT DETAIL FAMILY = NC_SCHOOLBOOK, SIZE = 10E RW> DECLARE_ATT TOT_ACCNTS FAMILY = HELVETICA, SIZE = 12, NOBOLDC RW> DECLARE_ATT TOTAL FAMILY = HELVETICA, SIZE = 14, BOLD) R LW> DECLARE_ATT ULINE UNDERLINE+ RW> DECLARE_ATT NO_ULINE NOUNDERLINE? RW> DECLARE_ATT GRAND_TOTAL FAMILY = HELVETICA, SIZE = 14,? BOLD, ITALIC  2 DECLARE_PORT_StatementG Creates a temporary DEC DATATRIEVE port with the name you specifyD and readies the port for WRITE access. DEC DATATRIEVE does notF enter a definition of the port in the Oracle CDD/Repository data dictionary. FoMrmat % DECLARE PORT port-name USING 0 level-number-1 field-definition-1. 2 [level-number-2 field-definition-2.]! . .! . .! . .2 [level-number-n field-definition-n.] ;  3 Arguments  port-name C Is the name of the port. It cannot duplicate a DEC DATATRIEVEE keyword or the given name of any dNomain you may bring into your workspace.   level-number C Is the level number for the field in the port declaration. ItD indicates the relationship of the field to the other fields of the port.   field-definition F Is a field definition. A port declaration must have at least oneA field definition. Each field definition ends with a period.   ; (semicolon) Ends the port declaration.  O3 ExampleG The following example shows a port declared for YACHTS records in a DEC Fortran program: 9 CALL DTR$COMMAND (DAB,'DECLARE PORT BOAT_PORT USING 1 01 YACHT. 2 03 BOAT." 3 06 BUILDER PIC X(9).! 4 06 MODEL PIC X(10). 5 06 RIG PIC X(6). 6 06 LOA PIC X(3). 7 06 DISP PIC X(5). 8 06 BEAM PIC XX.# 9 06 PRICE PIC X(5).;')  2 DECLARE_SYNONYM_Command5 P Defines a synonym for a DEC DATATRIEVE keyword. Format < DECLARE SYNONYM { synonym [FOR] keyword } [,...]  3 Arguments  synonym E Is the name of the synonym being defined. The name must conformG to the rules for names listed in the DEC DATATRIEVE User's Guide.   FOR , Is an optional word to clarify syntax.  keyword D Is the name of a DEC DATATRIEVE keyword for which a syQnonym is being defined.  3 ExamplesG Define synonyms for the keywords FIND and PRINT. Use the synonymsF to form a collection of the first two yachts, and then print the collection.  DTR> READY YACHTS4 DTR> DECLARE SYNONYM FD FOR FIND, PT FOR PRINT( DTR> FD FIRST 2 YACHTS; PT CURRENT + LENGTH* OVER> MANUFACTURER MODEL RIG ALL WEIGHT BEAM PRRICE ? ALBERG 37 MK II KETCH 37 20,000 12 $36,951? ALBIN 79 SLOOP 26 4,200 10 $17,900 DTR> C Calculate the price per foot and per pound for the first fiveA yachts. To save typing, define synonyms for COMPUTED, EDIT_ STRING, and PRINT.  DTR> SET NO PROMPT* DTR> DECLARE SYNONYM CD FOR COMPUTED0 CON> E_S FOR EDIT_STRING, PT FOR PRINT8 DTR> DECLARE PER_FT CD BY (PRICE/LOA) E_S S$$$$.99.7 DTR> DECLARE PER_LB CD BY (PRICE/DISP) E_S $$.99. DTR> FOR FIRST 5 YACHTS- CON> PT TYPE, PRICE, PER_FT, PER_LB 4 PER PER3 MANUFACTURER MODEL PRICE FT LB 6 ALBERG 37 MK II $36,951 $998.68 $1.856 ALBIN 79 $17,900 $688.46 $4.266 ALBIN BALLAD $27,500 $916.67 $3.786 ALBIN VEGA $18,600 $688.89 $3.676 AMERICATN 26 $9,895 $380.58 $2.47 DTR>  2 DEFAULT_VALUE_ClauseA Specifies a default value for initializing a field to whichA you do not make a direct assignment in STORE or Restructure statements. Format ' DEFAULT [VALUE] [IS] literal  3 Argument  VALUE IS D Are optional keywords you can use to clarify the syntax of the clause.  literal 6 Is eUither a numeric or character string literal.  3 ExamplesF Define a field in a student record that sets a default value for# tuition owed at registration. ! 09 TUITION_DUE PIC Z(4)9.99" EDIT_STRING IS $$$,$$$.99 DEFAULT VALUE IS 4800. E Define a date field with the default value of the day you store the record: , 03 DATE_IN USAGE DATE DEFAULT "TODAY".  2 DEFINE_DATABASE_CommandC Defines a path nVame for a relational database (Format 1) or aG path name for a Oracle CODASYL DBMS database instance (Format 2).  Format 1 ? DEFINE DATABASE rdb-database-path ON root-file-spec;  Format 2 + DEFINE DATABASE dbms-database-path 1 [USING] [SUBSCHEMA] subschema-name - [OF] [SCHEMA] schema-path-name ON root-file-spec;  3 Arguments   rdb-database-path WG Is the Oracle CDD/Repository path name of the relational databaseD you want to define. The path name can be either a DMU or a CDO style path name.   root-file-spec F Is the name of the database root file. For relational databases,A the default file type is .RDB; for Oracle CODASYL DBMS, theB default file type is .ROO. A complete file specification has the following format: 9 node-spec::device:[directory]file-name.type;versXion   dbms-database-path F Is the Oracle CDD/Repository path name you choose for the OracleG CODASYL DBMS database instance. The path name can be either a DMUG or a CDO style path name. Although a DMU style path name is still; accepted, you are recommended to use a CDO path name.   subschema-name : Is the name of a subschema for the specified schema.   schema-path-name ; Is the CDO path name of a OracleY CODASYL DBMS schema.   ;(semicolon) ' Ends the DEFINE DATABASE command.  3 Examples- Define a relational database path name: 6 DTR> DEFINE DATABASE CDD$TOP.DEPT29.PERSONNEL ON7 DFN> DBA2:[D29.DAT]PERSONNEL.RDB; DTR> @ Define a Oracle CODASYL DBMS database instance. The Oracle/ CDD/Repository path name of the schema isB SYS$COMMON:[CDDPLUS]DBMS.PARTS. The name of the subschema is> PAZRTSS1, and the root file is DB0:[BULGAKOV]PARTSDB.ROO: # DTR> DEFINE DATABASE PARTS_DB DFN> USING PARTSS10 DFN> OF SYS$COMMON:[CDDPLUS]DBMS.PARTS, DFN> ON DB0:[BULGAKOV]PARTSDB.ROO; DTR>  2 DEFINE_DICTIONARY_CommandF Creates a dictionary directory in the Oracle CDD/Repository data dictionary system. Format $ DEFINE DICTIONARY path-name  3 Argument  path-name E [Is the given name, the full dictionary path name, or a relativeD dictionary path name of the dictionary you want to create. TheC DEFINE DICTIONARY command accepts both DMU and CDO style pathE names. A complete CDO style path name has the following format: 9 node-spec::device:[directory]file-name.type;version  3 ExamplesG Use a given name to define a dictionary directory named TEST when1 CDD$TOP.RESEARCH is your default directory:  D\TR> SHOW DICTIONARY, The default directory is CDD$TOP.RESEARCH DTR> DEFINE DICTIONARY TEST DTR> SHOW DICTIONARIES Dictionaries: DEMO TEST DTR> SET DICTIONARY TEST DTR> SHOW DICTIONARY2 The default dictionary is CDD$TOP.RESEARCH.TEST DTR> SHOW PRIVILEGES' Privileges for CDD$TOP.RESEARCH.TEST? R (DTR_READ) - may ready for READ, use SHOW and EXTRACTC W (DTR_WRITE) - may ready for READ, WRITE, MODIFY, or EXTEND1 M (DTR_MOD ]IFY) - may ready for READ, MODIFYN E (DTR_EXTEND/EXECUTE) - may ready to EXTEND, or access table or procedureA C (CONTROL) - may issue DEFINEP, SHOWP, DELETEP commands5 D (LOCAL_DELETE) - may delete a dictionary object1 F (FORWARD) - may create a subdictionary? H (HISTORY) - may add entries to object's history listL P (PASS_THRU) - may use given name of directory or object in pathname0 S (SEE) - may see (read) dictionary3 U (UPDATE) ^ - may update dictionary objectF X (extend) - may create directory or object within directory  DTR> @ Use a relative dictionary path name to define a dictionary; directory in the CDD$TOP.MANUFACTURING directory when0 CDD$TOP.DTR$LIB is your default directory:  DTR> SHOW DICTIONARY. The default directory is CDD$TOP.DTR$LIB DTR> DEFINE DICTIONARY DFN> -.MANUFACTURING.TEST) DTR> SET DICTIONARY -.MANUFACTURING DT_R> SHOW DICTIONARIES" INVENTORY TEST DTR> SHOWP TEST& 1: [*,*], Username: "JONES"8 Grant - CDHPSX, Deny - None, Banish - none DTR> F Use a full name to define a CDO dictionary directory named TEST.8 DISK1:[SWANSON.DTRWORK] is your default directory:  DTR> SHOW DICTIONARY6 The default directory is DISK1:[SWANSON.DTRWORK]8 DTR> DEFINE DICTIONARY DISK1:[SWANSON.DTRWORK]TEST DTR> SHOW DICTIONA`RIES Dictionaries:$ MYDICT TEST DTR>  2 DEFINE_DOMAIN_CommandB Stores a domain definition in the Oracle CDD/Repository data dictionary system. > The following sections explain how to define domains forB CDD$DATABASE objects, Oracle CODASYL DBMS databases, networkB domains based on domains residing at other DECnet[TM] nodes,D domains based on relational databases, domains based on single8 RMS fileas, and views based on one or more domains. Format B To define a CDD$DATABASE domain, use the following syntax: : DEFINE DOMAIN domain-name [USING] database-name E [FORM [IS] form-name [IN] file-name [USING exchange-rec]] # [WITH] RELATIONSHIPS ; A To define a Oracle CODASYL DBMS domain, use the following syntax: 8 DEFINE DOMAIN domain-name [USING] record-name 0 [OF] b[DATABASE] database-path-name G [FORM [IS] form-name [IN] file-name [USING exchange-rec]] ; = To define a network domain, use the following syntax: > DEFINE DOMAIN domain-name [USING] remote-path-name AT node-spec H [FORM [IS] form-name [IN] file-name [USING exchange-rec]] $ [[WITH] RELATIONSHIPS] ; @ To define a relational domain, use the following syntax: 8 DEFINE DOMcAIN domain-name [USING] relation-name 0 [OF] [DATABASE] database-path-name E [FORM [IS] form-name [IN] file-name [USING exchange-rec]] $ [[WITH] RELATIONSHIPS] ; A To define a domain based on a RMS file, use the following syntax: A DEFINE DOMAIN path-name [USING] record-name ON file-spec E [FORM [IS] form-name [IN] file-name [USING exchange-rec]] % [[WITH] RELATIONSHIPS] ;d 8 To define a view domain, use the following syntax: A DEFINE DOMAIN view-path-name OF domain-name-1 [,...][BY ] [USING] ; level-number-1 field-name-1 OCCURS FOR rse-1. E level-number-2 field-name-2 { OCCURS FOR rse-n } ." { FROM domain-name-n } + . . .+ . . .+ . . . C e[FORM [IS] form-name [IN] file-name [USING exchange-rec]] " [[WITH] RELATIONSHIPS] ;  3 Arguments   domain-name E Is the Oracle CDD/Repository dictionary path name of the domainB you are defining. The domain-name can be either a DMU or CDO style path name.   database-name E Is the name of a CDD$DATABASE object, defined through CDO usingD the DEFINE DATABASE command, that points to a CDD$RMS_DATABASEG f object. Refer to the Oracle CDD/Repository documentation for more. information on CDD$RMS_DATABASE objects.   record-name B Is the name of a record type contained in a subschema of the- specified Oracle CODASYL DBMS database.   database-path-name D Is the DEC DATATRIEVE definition of the database instance. TheA database-path-name can be both DMU and CDO style path name.   remote-path-name ? Is the giv gen name, full dictionary path name, or relativeA dictionary path name of a domain definition at another nodeB in a network of computers linked by DECnet. That domain, theE associated record definition, and the associated data file mustD already exist in the data dictionary at the remote node beforeG you can ready the network domain. The domain-name can be either a! DMU or CDO style path name.  node-spec $ Specifies the network address. h @ If the login procedure used by the remote process does notB supply the necessary login information (user name, password,D and, optionally, account name), either the person readying theF network domain or the network domain definition must supply this information. E You can use any of the following formats to specify the networkG address and to provide the best level of access security for your installation: 6 node-name"usiername password [account-name]") % Examples of this format are: ) BIGVAX"WARTON KNOCKKNOCK DEPT32"  ELEVEN"LINTE LETMEIN" F When you specify the network address using this format, usersB do not have to supply login information when readying the network domain. K node-name"*.username-prompt *.password-prompt [*.account-prompt]" % Examples of this format are: 0 WINKEN"*.USERNAME *.PjASSWORD *.ACCOUNT" + VAXTWO"*.'user name' *.'password'" + PDPTWO"*.'user name' *.'password'" F When you specify the network address using this format, usersG are prompted for login information when they ready the network8 domain. This method provides the best security.  node-name ) Two examples of this format are:  BIGVAX  DEC:.zko.star D Note that Poor Man's Routking is not accepted in AT clauses. ? When you specify the network address with this format,B the account used by the remote process must provide login# information automatically. @ If you prefer, you can combine elements from the first twoD formats. For example, you can explicitly specify the user name@ and specify a prompting value expression for the password:  SNOOPY"CLARK *.PASSWORD"   relation-name @ Is tlhe name assigned to the relation when the database was created.  path-name ? Is the given name, full dictionary path name, or relativeE dictionary path name of the domain being defined. The path nameB cannot resolve to the full dictionary path name of any otherF object or directory in the data dictionary system. The path-name1 can be either a DMU or CDO style path name.   record-name ? Is the given name, full dictiona mry path name, or relativeD dictionary path name of the record definition to be associatedC with the domain. You must enter this record definition in theE data dictionary (with the DEFINE RECORD command) before you canE ready the domain. The dictionary path name of the record cannotE resolve to the full dictionary path name of any other directoryG or object in the data dictionary. The record-name can be either a! DMU or CDO style path name.  n file-spec B Is the OpenVMS file specification of the RMS file containingF the data for the domain. This file must exist when you ready theE domain. A complete file specification has the following format: 9 node-spec::device:[directory]file-name.type;version   view-path-name ? Is the given name, full dictionary path name, or relativeC dictionary path name of the view being defined. The path nameB cannot resolve to the full d oictionary path name of any otherD object or directory in the data dictionary. The view-path-name1 may be either a DMU or CDO style path name.   domain-name-1 F Is either the given name, full dictionary path name, or relative? dictionary path name of a domain containing records to beE included in the view. If the domain name is a domain path name,D it cannot duplicate the name of the view. When specifying moreG than one domain path name, upse a comma to separate each name fromE the next. The domain-name may be either a DMU or CDO style path name.   level-number = Is the level number for a field in the view definition.  field-name E Is the name of a field in the view definition. If field-name isF followed by an OCCURS FOR clause, field-name has no relationshipA to any field in the domain or domains specified in the RSE.B Whether or not field-name is q the same as the names of any ofB those fields does not matter. If field-name is followed by aE FROM clause, field-name must be the name of a field in a domain6 specified in the OF domain-name-1 [,...] clause.   OCCURS FOR rse G Indicates that the associated field is to be included in the viewG only for those records specified by the RSE. The RSE must containE a reference to one of the domains, relations, or Oracle CODASYL+ DBMS recordsr listed in the OF clause.   FROM domain-name > Indicates that the definition of the associated field isD identical to that of the field of the same name in the domain,G relation, or Oracle CODASYL DBMS record specified by domain-name-F n. The argument domain-name must be the same as that used in the" preceding OCCURS FOR clause.  . (period)  Ends a field definition.  form-name  Is a form name.s  file-name A For VAX TDMS and DEC FMS[TM] forms it is the name of a form? library. For DECforms[TM] forms it is the form file name,A which can either be a .FORM or a .EXE file. A complete file- specification has the following format: 9 node-spec::device:[directory]file-name.type;version   exchange-rec E Is the Oracle CDD/Repository path name (either DMU or CDO) of a9 record used to send and receive data with DEtCforms.   RELATIONSHIPS @ Causes relationships to be set up between the domain being- defined and one of the following items: o The CDD$DATABASE object 0 o The domain specified on the remote node  o The record definition + o The objects referenced by the view   ; (semicolon) ! Ends the domain definition.  3 ExamplesG Define the CDD$DATABASE domain NEWYACHTS. Use the alreaduy defined CDD$DATABASE YACHTS. 2 DTR> DEFINE DOMAIN NEWYACHTS USING YACHTS_DB DFN> WITH RELATIONSHIPS; F Define the Oracle CODASYL DBMS domain EMPLOYEES. The name of theG record-type is EMPLOYEE, and the name of the database instance is? PARTS_DB. The domain definition includes the FORM clause. " DTR> DEFINE DOMAIN EMPLOYEES2 DFN> USING EMPLOYEE OF DATABASE PARTS_DB1 DFN> FORM IS EMPFOR IN FORMS:PARTS.FLB; DTR>v 3 Define a network domain called REMOTE_YACHTS: , DTR> DEFINE DOMAIN REMOTE_YACHTS USING, DFN> CDD$TOP.DTR$LIB.DEMO.YACHTS AT= DFN> VAX32"SMITH ADRIENNE" FORM IS YACHT1 IN DTRFRM; DTR> @ The following example defines a DEC DATATRIEVE domain thatG automatically uses a form. The domain is defined for the relation EMPLOYEES. " DTR> DEFINE DOMAIN EMPLOYEES4 DFN> USING EMPLOYEES OF DATABASE PERSONNEL* DFN> w FORM IS EMPFOR IN FORMSLIB; DTR> C Define the domain PHONES. Use the record definition PHONE_RECD that is cataloged in the directory CDD$TOP.DEPARTMENT. Specify! PHONE.DAT as the data file: % DTR> DEFINE DOMAIN PHONES USING5 DFN> CDD$TOP.DEPARTMENT.PHONE_REC ON PHONE.DAT; DTR> 3 Define a view of yacht and owner information:  DTR> SHOW BOAT_VIEW. DOMAIN BOAT_VIEW OF YACHTS, OWNERS USING% 01 BOAT_INFO OCCURxS FOR YACHTS. 03 TYPE FROM YACHTS.> 03 SKIPPERS OCCURS FOR OWNERS WITH TYPE EQ BOAT.TYPE. 05 NAME FROM OWNERS.% 05 BOAT_NAME FROM OWNERS. ;  DTR> READY BOAT_VIEW" DTR> PRINT FIRST 4 BOAT_VIEW 3 BOAT3 MANUFACTURER MODEL NAME NAME  ALBERG 37 MK II ALBIN 79 ALBIN BALLAD4 ALBIN VEGA STEVE y DELIVERANCE0 HUGH IMPULSE DTR> A You can use a view domain such as BOAT_VIEW as a source for5 modifying data in a domain based on a RMS file.  2 DEFINE_FILE_CommandG Creates an RMS sequential or indexed sequential data file for theF DEC DATATRIEVE RMS domain specified by the dictionary path name. + Format for Defining a Sequential File % DEFINE FILE [FOR] path-name  z [ ALLOCATION = n ]" [ SUPERSEDE ] [,...] [ MAX ] [ ] ) Format for Defining an Indexed File % DEFINE FILE [FOR] path-name  [ ALLOCATION = n ]" [ SUPERSEDE ] [,...] [ MAX ] [ ] D { KEY = field-name-1 [ ( [NO]CHANGE[,] [NO]DUP) ] } [,...] 6 Format for Defining an RMS File Using a FDL File = DEFINE FILE [FOR]{ domain-name USING fdl-file-spec  3 Arguments  path-name G Is the dictionary path name of the DEC DATATRIEVE domain based on: a RMS file for which you want to create a data file.   domain-name D Is the name of the DEC DATATRIEVE domain for which you want to create a data file.   ALLOCATION = n F Specifies an unsigned nonzero integer that determines the numberB of disk blocks initially all |ocated for the data file. If youF omit this argument, zero blocks are allocated for the file. WhenE you store records into the data file, RMS automatically extendsE the data file according to the cluster size established by your system manager.  SUPERSEDE A Causes DEC DATATRIEVE to delete any existing data file thatD exactly matches the complete file specification, including theE version number, in your RMS domain definition. The new f }ile youB are defining replaces the existing data file. If your domainE based on a RMS file does not include a file version number, theD old file is not deleted, and the new file is assigned the next higher version number.   MAX C Causes DEC DATATRIEVE to create a fixed-length RMS file for aG domain whose record definition contains an OCCURS . . . DEPENDINGA clause. The length of every record in the data file has theB maximum poss ~ible size, as determined by the value of the MAX4 argument in the OCCURS . . . DEPENDING clause: 5 OCCURS min TO max TIMES DEPENDING ON field-name C Each record can then store the maximum number of items in the8 list defined by the OCCURS . . . DEPENDING clause. A If you omit this argument, DEC DATATRIEVE does not create aB file with fixed-length records of the maximum possible size.F The size of each record is determined when you store the r ecord.G If the file is defined as a sequential file, a record size cannotC be increased to include more list items after it is initially stored.   KEY = field-name G Causes DEC DATATRIEVE to create an RMS indexed file and specifiesF a field in the domain's record definition to be used as an indexF key for the domain's data file. The first key field specified inD the DEFINE FILE command is the primary key, and all subsequentG ones are alternate keys. If you specify more than one KEY clause,C use a comma (,) to separate each clause from the next. If youG are defining a file for a hierarchical record, do not make a list field the primary key. G If you omit this clause, DEC DATATRIEVE creates an RMS sequential file.  CHANGE A Determines whether or not you can modify the content of theC associated key field. The default is NOCHANGE for the primary@ key field and CHANGE for alternate key fields. See AllowedG Combinations of Key Field Attributes for the allowed combinations of key field attributes.   DUP D Determines whether or not you can assign the same value to theD specified key fields of two or more records. The default is NOE DUP for the primary key field and DUP for alternate key fields.F See Allowed Combinations of Key Field Attributes for the allowed+ combinations of key field attributes. < Table 1-2 Allowed Combinations of Key Field Attributes 5 Key Field Attributes # CHANGE NO4 Key CHANGE + NO CHANGE NO CHANGE3 Type + DUP DUP + DUP + NO DUP 2 Primary Not Not Allowed Allowed Allowed Allowed2 AlternatAllowed Allowed Allowed Allowed   USING fdl-file-spec C Specifies the FDL file to be used in creating the RMS file. A; complete file specification has the following format: 9 node-spec::device:[directory]file-name.type;version  3 ExamplesG The following example shows how to define an indexed file for theF domain PAYABLES using the field NAME as the primary key and TYPED as the alternate key, and allowing no changes to the alternate key: D DTR> DEFINE FILE FOR PHONES KEY=NAME(DUP), KEY=TYPE(NO CHANGE)  DTR> D The following example defines a sequential file for the domain FAMILIES: # DTR> DEFINE FILE FOR FAMILIES DTR> F The following example shows how to define a new indexed file forF the domain YACHTS using the group field TYPE as the primary key,G allowing duplicate values for this key. This command replaces the# previous data file for YACHT. ; DTR> DEFINE FILE FOR YACHTS SUPERSEDE, KEY=TYPE (DUP) DTR>  D The following example defines a new file for the YACHTS domainE using the specifications included in YACHTS.FDL, a file created outside of DEC DATATRIEVE: 2 DTR> DEFINE FILE FOR YACHTS USING YACHTS.FDL DTR>  2 DEFINE_PORT_CommandE Enters the definition of a DEC DATATRIEVE port in the specifiedG or implied directory of the Oracle CDD/Repository data dictionaryC system and creates an access control list (ACL) for the port.  Format 6 DEFINE PORT path-name [USING] record-name ;  3 Arguments  path-name ? Is the given name, full dictionary path name, or relativeC dictionary path name of the port being defined. The path nameB cannot resolve to the full dictionary path name of any otherD object or directory in the data dictionary system. DEFINE PORT4 will accept both DMU and CDO style path names.   record-name ? Is the given name, full dictionary path name, or relativeD dictionary path name of the record definition to be associatedB with the port. The dictionary path name of the record cannotE resolve to the full dictionary path name of any other object orF directory in the data dictionary system. DEFINE PORT will accept( both DMU and CDO style path names.   ; (semicolon)  Ends the port definition.  3 ExampleC The following example defines a port for transferring records; between the YACHTS domain and an application program: > DTR> DEFINE PORT YPORT USING CDD$TOP.DTR$LIB.DEMO.YACHT; DTR>  2 DEFINE_PROCEDURE_CommandG Enters a procedure definition into the Oracle CDD/Repository dataD dictionary system and creates an access control list (ACL) for the procedure. Format ( DEFINE PROCEDURE procedure-name  . .  .  END_PROCEDURE  3 Arguments   procedure-name ? Is the given name, full dictionary path name, or relativeC dictionary path name of the procedure you want to define. TheF path name cannot resolve to the full dictionary path name of anyF other object or directory in the data dictionary. Procedures can5 be defined in either the DMU or CDO dictionary.   END_PROCEDURE $ Ends the procedure definition.  3 ExamplesB The following example shows how to define a procedure to setF your default directory to the DEMO directory, which contains the? sample data for the YACHTS, OWNERS, and FAMILIES domains: DTR> DEFINE PROCEDURE DEMO. DFN> SET DICTIONARY CDD$TOP.DTR$LIB.DEMO DFN> SHOW DICTIONARY DFN> END_PROCEDURE DTR> :DEMO3 The default directory is CDD$TOP.DTR$LIB.DEMO DTR> @ The following exampl e shows how to define a procedure thatC displays a group of boats with a price less than a figure you% supply when the procedure runs: & DTR> DEFINE PROCEDURE PRICE_LIST DFN> READY YACHTS" DFN> PRINT SKIP, COL 20,9 DFN> '*** Price List of YACHTS ***', SKIP- DFN> FOR YACHTS WITH PRICE NE 0 AND1 DFN> PRICE LE *.'the ceiling price' DFN> PRINT BOAT> DFN> PRINT SKIP, COL 10, 'See anything interesting?' DFN> END_PROCEDURE DTR> :PRICE_LIST 5 *** Price List of YACHTS *** $ Enter the ceiling price: 5,000 + LENGTH* OVERD MANUFACTURER MODEL RIG ALL DISPLACEMENT BEAM PRICE E CAPE DORY TYPHOON SLOOP 19 1,900 06 $4,295E VENTURE 21 SLOOP 21 1,500 07 $2,823E VENTURE 222 SLOOP 22 2,000 07 $3,564E WINDPOWER IMPULSE SLOOP 16 650 07 $3,500 ( See anything interesting? DTR> F The following example shows how to use a OpenVMS command line to8 invoke the procedure created in the first example:  $ DTR32 EXECUTE DEMO3 The default directory is CDD$TOP.DTR$LIB.DEMO  $  2 DEFINE_RECORD_CommandB Enters a record definition in the Oracle CDD/Repository dataA dictionary and creates an access control list (ACL) for the record. Format 7 DEFINE RECORD record-name [USING] [OPTIMIZE] 1 [ {MAJOR-MINOR } ]1 [ ALLOCATION IS {ALIGNED-MAJOR-MINOR } ]1 [ {LEFT-RIGHT } ]1 [ { } ]  definition [,...] ;  3 Arguments   r ecord-name ? Is the given name, full dictionary path name, or relativeB dictionary path name of the record being defined. The recordF path name cannot resolve to the full dictionary path name of anyE other object or directory in the data dictionary system. DEFINE; RECORD will accept both DMU and CDO style path names.   [USING] OPTIMIZE E Allows you to optimize record definitions, reducing the central> processing unit (CPU) time nee ded to ready a domain thatC refers to the record. See the Usage Notes section for special considerations.  ( { MAJOR-MINOR }( ALLOCATION IS { ALIGNED-MAJOR-MINOR }( { LEFT-RIGHT } G Specifies the type of word-boundary alignment DEC DATATRIEVE usesE when storing records in the data file. It also controls the wayC DEC DATATRIEVE retrieves data from data files created by userD programs or other application software. The default allocationG is no alignment. See the DEC COBOL[TM] documentation set for moreC information on word-boundary alignment and allocation of fill bytes.  definition E Is the description of the fields in the record. Each definition' has one of the following formats: % level-number-1 field-name-1.9 level-number-2 field-name-2 field-definition-2.; [level-number-n field-name-n field-definition-n.]! . . .! . . .! . . .  or ( {FIELD }4 level-number-n FROM {GROUP } path-name.( { }   level-number D Is the level number for the field in the record definition. ItD indicates the relationship of the field to the other fields in the record definition.  field-name A Is the name of the field. Every field must have a name. TheD keyword FILLER is a special field name that can be repeated at. the same level in the record definition.   field-definition F Is a field definition. A record definition must contain at leastD one field definition. Elementary fields must have at least oneC field definition clause, but group fields are not required to( have any field definition clauses. 7  Each field definition must end with a period (.).   FROM F Allows you to create a definition using fields imported from CDO field/record definitions.   FIELD ? Specifies that you are referencing an existing CDO field.   GROUP E Specifies that you are referencing an existing CDO group field.  path-name D Specifies the path name of the field or record referenced by aF FROM field. The record or field specified by this path name must( reside in a CDO format dictionary.   ; (semicolon) ! Ends the record definition.  3 Examples9 The following example defines the record PHONE_REC: ( DTR> DEFINE RECORD PHONE_REC USING DFN> 01 PHONE. DFN> 02 NAME PIC X(20).9 DFN> 02 NUMBER PIC 9(7) EDIT_STRING IS XXX-XXXX.# DFN> 02 LOCATION PIC X(9).# DFN> 02 DEPARTMENT PIC XX. DFN> ;  [Record is 38 bytes long.] DTR> 6 The following example defines the record FAMILY: % DTR> DEFINE RECORD FAMILY USING DFN> 01 FAMILY. DFN> 03 PARENTS.& DFN> 06 FATHER PIC X(10).& DFN> 06 MOTHER PIC X(10).6 DFN> 03 NUMBER_KIDS PIC 99 EDIT_STRING IS Z9.D DFN> 03 KIDS OCCURS 0 TO 10 TIMES DEPENDING ON NUMBER_KIDS. DFN> 06 EACH_KID.> DFN> 09 KID_NAME PIC X(10) QUERY_NAME IS KID.6 DFN> 09 AGE PIC 99 EDIT_STRING IS Z9. DFN> ;! [Record is 142 bytes long.] DTR> B The following example defines the record ACCOUNT_BALANCE_RECA using the OPTIMIZE qualifier. Note that the USING clause is optional. ; DTR> DEFINE RECORD ACCOUNT_BALANCE_REC USING OPTIMIZE . . . DFN> ; DTR> C The following example defines the record YACHT_REC in the CDOE format dic tionary using fields from a CDO dictionary. Note thatC you can mix fields from an existing CDO dictionary and fieldsD private to DEC DATATRIEVE in the same record definition. FieldD BEAM uses CDD$DEFAULT.BEAM as a path. Fields LOA and PRICE are# defined only for this record. ( DTR> DEFINE RECORD YACHT_REC USING DFN> 01 BOAT.; DFN> 03 FROM GROUP SYS$COMMON:[CDDPLUS]DTR32.TYPE. DFN> 03 SPECIFICATIONS. DFN> 06 LOA PIC 99.%  DFN> 06 FROM FIELD BEAM.& DFN> 06 PRICE PIC 999999. DFN> ; DTR>  2 DEFINE_TABLE_CommandG Enters the definition of a dictionary or domain table in the dataF dictionary (Oracle CDD/Repository) and creates an access controlE list (ACL) for the table. The following sections explain how to* define dictionary and domain tables. Format > To define a dictionary table use the following syntax:   DEFINE TABLE path-name 3 [QUERY_HEADER [IS] "header-segment"[/...]] ' [EDIT_STRING [IS] edit-string] 3 [USING] code-field : translation-field [,]* {"code-1" } { "translation-1" }- {code-1 }: { translation-1 }[,]* { } { } . [ {"code-2" } {"translation-2" } ]1 [ {code-2 }: {translation-2 } ][,]. [ { } { } ]  .  . . . . . % [ { "translation-n" } ]% [ ELSE {translation-n } ]% [ { } ]  END_TABLE : To define a domain table use the following syntax: 9 DEFINE TABLE path-name FROM [DOMAIN] domain-name 3 [QUERY_HEADER [IS] "header-segment"[/...]] ' [EDIT_STRING [IS] edit-string] 3 [USING] code-field : translation-field [,]* [ { "translation-string" } ]* [ ELSE {translation-string } ]* [ { } ]  END_TABLE  3 Arguments  path-name ? Is the given name, full dictionary path name, or relativeE dictionary path name of the dictionary table being defined. TheG full dictionary path name of the table cannot resolve to the fullG dictionary path name of any other object or director y in the dataE dictionary system. The DEFINE TABLE command accepts both DMU or CDO style path names.   "code" : "translation" F Is a code-and-translation pair. You must separate each pair withD a colon. The comma after each pair is optional. If the code orF translation conforms to the rules for DEC DATATRIEVE names givenG in the DEC DATATRIEVE User's Guide, you do not have to enclose itG in quotation marks. However, DEC DATATRIEVE conv erts to uppercase? any lowercase letters in an unquoted code or translation. F If the code or translation does not conform to the rules for DECD DATATRIEVE names (especially if it contains any spaces), or ifG you want to preserve lowercase letters, you must enclose the codeF or translation in quotation marks (" ") and follow the rules for character string literals.   ELSE "translation" = Is the translation to be used if you specify a code not? defined in the dictionary table. The rules for specifyingA this translation string are the same as those for codes and translations.  END_TABLE + Ends the dictionary table definition.  3 ExamplesC The following example defines a table of department codes andA specifies a query header for the translations of the table: " DTR> DEFINE TABLE DEPT_TABLE5 DFN> QUERY_HEADER IS "Responsible"/"Department"( DFN> CE : "Commercial Engineering"# DFN> PE : "Plant Engineering"" DFN> CS : "Customer Support"* DFN> RD : "Research and Development"" DFN> SD : "Sales Department"$ DFN> ELSE "UNKNOWN DEPARTMENT" DFN> END_TABLE DTR> G The following example defines a table with a translation for eachE possible rig and includes an edit string in the definition that= displays the translation in a 10 character wide column:  DTR> DEFINE TABLE RIGGING DFN> EDIT_STRING IS T(10)+ DFN> QUERY_HEADER "TYPE OF"/"RIGGING" DFN> SLOOP : "ONE MAST"0 DFN> KETCH : "TWO MASTS, BIG ONE IN FRONT"% DFN> YAWL : "SIMILAR TO KETCH"* DFN> MS : "SAILS AND A BIG MOTOR"# DFN> ELSE "SOMETHING ELSE" DFN> END_TABLE$ DTR> PRINT "KETCH" VIA RIGGING  TYPE OF RIGGING  TWO MASTS, BIG ONE IN FRONT DTR> C The following ex ample shows how to define a domain table thatE returns the price of a yacht when you enter a value for LENGTH_G OVER_ALL. The example specifies a query header and an edit string for the translation field: ' DTR> DEFINE TABLE LOA_PRICE_TABLE DFN> FROM YACHTS/ DFN> QUERY_HEADER IS "SAMPLE"/"PRICE"% DFN> EDIT_STRING IS $$$,$$$ DFN> USING LOA : PRICE6 DFN> ELSE "NO BOATS IN STOCK WITH THAT LOA." DFN> END_TABLE' DTR> PRINT 26 VIA LOA_PRICE_TABLE SAMPLE PRICE $17,900 DTR>  2 DEFINEP_CommandE Adds an entry to the access control list (ACL) for a dictionary% object or dictionary directory. Format 4 DEFINEP [FOR] path-name sequence-number [,] # { PW = password }# { UIC = [uic-spec] }# { USER = username }# { }# { TTnn: }. { { } } [,...] {,}# { {LOCAL } }# { TERMINAL = {NONLOCAL } }# { {BATCH } }# { { } }# { {NETWORK } } * { {GRANT } {privilege-list } }1 { {DENY } = { } } [,...]* { {BANISH } {ALL } }* { { } }  3 Arguments  path-name ? Is the given name, full dictionary path name, or relativeA dictionary path name of the dictionary object or dictionaryB directory whose ACL list you want to change. DEFINEP accepts( both DMU and CDO style path names.   sequence-number F Is the sequence number of the entry to be added to the ACL. This2 number must be an unsigned, nonzero integer.   PW = password B Specifies a password to be appended to the given  name of theD dictionary object or dictionary directory when used alone in aF command or statement or as part of a full or relative dictionary@ path name. You can specify a password in an ACL entry on a@ directory or object either in the DMU or in the CDO format dictionary.   UIC = [uic-spec] E Specifies the UIC or group of UICs to which the added ACL entry? applies. The UIC specification must be enclosed in squareC brackets and m ust conform to the OpenVMS rules for specifying? UICs (see the OpenVMS documentation set). You can specifyE numeric and alphanumeric UICs and rights identifiers. (A rightsB identifier is a single text string enclosed in brackets. TheE system manager defines a rights identifier in the system rightsD database. The identifier indicates all members of a particular group.)   USER = username B Specifies the OpenVMS user name to which the added ACL entryC applies. Do not put the user name in parentheses or brackets.    LOCAL TERMINAL = NONLOCAL BATCH NETWORK D Specifies a particular terminal or a type of terminal to which" the added ACL entry applies. E o TTnn: is the number of a specific terminal line to which theG added ACL entry applies. You can specify a particular terminal: only in ACL entries in the DMU format  dictionary. @ o LOCAL specifies that the added ACL entry applies to all3 terminals hard-wired to your local system. C o NONLOCAL specifies that the added ACL entry applies to theD local system's dial-up terminal lines, to batch jobs on theB local system, to remote terminals logged in to the systemB by DECnet, and to processes initiated by a DEC DATATRIEVEG Distributed Data Manipulation Facility (DDMF) on a remote node+ in a network of Digital computers. F o BATCH specifies that the added ACL entry applies to all batch& jobs run on the local system. B o NETWORK specifies that the added ACL entry applies to allA processes initiated by a DEC DATATRIEVE Distributed DataC Manipulation Facility (DDMF) on a remote node in a network of Digital computers.  , (comma) : Separates user identification criteria and privilege specifications.   GRANT > Specifies the privileges granted by the added ACL entry.   DENY = Specifies the privileges denied by the added ACL entry.  BANISH D Specifies, for a dictionary directory and all its descendants,D the access privileges that the entry denies and the privilegesA that no ACL of any of the descendants can grant. The BANISHD clause is valid in ACL entries either in the DMU or in the CDO format dictionary.   privilege-list @ Is a letter or string of letters, each one of which is the? abbreviation for the access privilege granted, denied, or& banished by the added ACL entry.  3 ExampleA The following example defines an ACL entry for a DMU format@ dictionary directory that uses all the user identification4 criteria and all the privilege specifications: B DTR> DEFINEP FOR MONTHLY_DATA 1 PW = "SECRET", USER = JONES,+ [Looking for define privilege option]B CON> UIC = [240,240], TERMINAL = NETWORK, GRANT = PSRWME,+ [Looking for define privilege option]' CON> DENY = CDUXH, BANISH = FG DTR>  2 DELETE_CommandE Deletes one or more dictionary objects and their access controlB lists from the Oracle CDD/Repository data dictionary system. Format % DELETE path-name-1 [,...] ;  3 Arguments  path-name D Is the given name, full dictionary path name, or relative path? name of the dictionary object you want to remove from theC data dictionary system. DELETE accepts both DMU and CDO styleD path names. If you specify more than one dictionary path name,9 separate each path name from the next with a comma.   ; (semicolon)  Ends the DELETE command.  3 ExamplesC The following example shows how to delete two domain versions# from your default dictionary:  DTR> SHOW DOMAINS Domains:6 * YACHTS;4 * YACHTS;3 * YACHTS;2 * YACHTS;1 E The following example does not specify a version number, so DEC7 DATATRIEVE deletes the highest version, YACHTS;4.  DTR> DELETE YACHTS; DTR> SHOW DOMAINS Domains:* * YACHTS;3 * YACHTS;2 * YACHTS;1  DTR> DELETE YACHTS;2; DTR> SHOW DOMAINS Domains: * YACHTS;3 * YACHTS;1  2 DELETEP_CommandF Deletes an entry from the access control list (ACL) of an object1 or directory in the data dictionary system. Format + DELETEP path-name sequence-number  3 Arguments  path-name F Is the dictionary path name of the object or directory whose ACLE you want to change. DELETEP accepts both DMU and CDO style path names.   sequence-number F Is a nonzero integer indicating the entry's position in the ACL.  3 ExampleF The following example shows the ACL of the DMU YACHTS domain and deletes an entry from it:  DTR> SHOWP YACHTS( 1: [*,*], Username: "STARKEY"? Grant - CDEFGHMPRSUWX, Deny - none, Banish - none' 2: [*,*], Username: "DUNCAN"; Grant - EHMPRSUW, Deny - CDFGX, Banish - none) 3: [*,*], Username: "HARRISON"? Grant - CDEFGHMPRSUWX, Deny - none, Banish - none 4: [*,*]@ Grant - none, Deny - CDEFGHMPRSUWX, Banish - none  DTR> DELETEP YACHTS 2 DTR> SHOWP YACHTS( 1: [*,*], Username: "STARKEY"? Grant - CDEFGHMPRSUWX, Deny - none, Banish - none) 2: [*,*], Username: "HARRISON"? Grant - CDEFGHMPRSUWX, Deny - none, Banish - none 3: [*,*]@ Grant - none, Deny - CDEFGHMPRSUWX, Banish - none DTR> C See the chapter on ACL in the DEC DATATRIEVE User's Guide for* other examples of working with ACLs.  2 DISCONNECT_StatementE Removes records from the sets you specify in the TO list of theF CONNECT statement. The DISCONNECT statement can be used only for> sets in which Oracle CODASYL DBMS retention is optional. Format > DISCONNECT context-name-1 [FROM] set-name-1 [,...]  3 Arguments   context-name-1 > Is the name of a valid context variable or the name of aD collection with a selected record. The target record must be a# member of the specified sets.  set-name / Is the name of a Oracle CODASYL DBMS set.  3 ExamplesC The following example removes a part with a specified PART_ID6 from its membership in the set ALL_PARTS_ACTIVE: 2 DTR> FOR P IN PART WITH PART_ID = "TU4722AS"1 CON> DISCONNECT P FROM ALL_PARTS_ACTIVE DTR> E The following example removes the group named PLANT ENGINEERING from the set MANAGES: < DTR> FIND GROUPS WITH GROUP_NAME = "PLANT ENGINEERING" DTR> SELECT* DTR> DISCONNECT CURRENT FROM MANAGES DTR>  2 DISPLAY_StatementE Displays the value of a single DEC DATATRIEVE value expression.= The value displayed is not formatted by any edit string+ associated with the value expression. Format ! DISPLAY value-expression  3 Argument   value-expression + Is a DEC DATATRIEVE value expression.  3 ExamplesC The following example shows how to declare a numeric variableG with a money edit string, give it a value, and use both the PRINT@ statement and the DISPLAY statement to display that value: = DTR> DECLARE SALARY PIC Z(5)9V99 EDIT_STRING $$$$$$.99. DTR> SALARY = 15753.67 DTR> PRINT SALARY SALARY  $15753.67  DTR> DISPLAY SALARY DISPLAY: 15753.67 DTR> > The following example redeclares the above variable as aG character variable, assigns a new value, and displays that value: $ DTR> DECLARE SALARY PIC X(15)." DTR> SALARY = "MUCH TOO LOW" DTR> PRINT SALARY  SALARY  MUCH TOO LOW  DTR> DISPLAY SALARY DISPLAY: MUCH TOO LOW D The following example displays the group fields TYPE and SPECS from the domain YACHTS:  DTR> READY YACHTS DTR> FIND FIRST 1 YACHTS [1 Record found] DTR> SELECT; PRINT + LENGTH* OVER> MANUFACTURER MODEL RIG ALL WEIGHT BEAM PRICE ? ALBERG 37 MK II KETCH 37 20,000 12 $36,951  DTR> DISPLAY TYPE! DISPLAY: ALBERG 37 MK II DTR> DISPLAY SPECS$ DISPLAY: KETCH 37 200001236951 DTR>  2 DISPLAY_FORM_StatementF Lets you display data on a form and collect data from a VAX TDMS or DEC FMS form. Format . DISPLAY_FORM form-name IN file-name ! [USING statement-1] - [RETRIEVE [USING] statement-2]  3 Arguments  form-name E Is the name of the VAX TDMS or DEC FMS form to be used with the domain.  file-name C Is the file specification of the form library file containingC the form. File-name can be a VAX TDMS request library file orB an DEC FMS forms library. The default file type for VAX TDMSF request library files is .RLB; the default file type for DEC FMSC form libraries is .FLB. A complete file specification has the following format: 9 node-spec::device:[directory]file-name.type;version   statement-1 D Is a DEC DATATRIEVE statement or a series of statements withinE a BEGIN-END block. Statement-1 can include one or more PUT_FORME assignment statements for assigning values to fields on a form. 6 The PUT_FORM statement has the following format: , PUT_FORM form-field = value-expression  form-field ' Is the name of a field in a form.   value-expression - Is any DEC DATATRIEVE value expression.   statement-2 D Is a DEC DATATRIEVE statement or a series of statements within? a BEGIN-END block. Statement-2 can include GET_FORM valueB expressions for assigning values on a form to DEC DATATRIEVE fields or variables. = The GET_FORM value expression has the following format:  GET_FORM form-field  form-field ' Is the name of a field in a form.  3 ExamplesA  The following example shows that you can display a form for? a domain even if the form was not specified in the domain definition: + DTR> DISPLAY_FORM YACHTF IN FORMSLIB; F The following example displays the MANUFACTURER and MODEL fields5 on a form for the first five records of YACHTS:  DTR> FOR FIRST 5 YACHTS5 CON> DISPLAY_FORM YACHTF IN FORMSLIB USING CON> BEGIN5 CON> PUT_FORM MANUFA = MANUFACTURER- CON> PUT_FORM MODEL = MODEL CON> END; F The following example displays the MANUFACTURER and MODEL fieldsE on a form for the first record of YACHTS and assigns the values+ to two variables, BUILT and MODELLER: # DTR> DECLARE BUILT PIC X(10).& DTR> DECLARE MODELLER PIC X(10). DTR> FOR FIRST 1 YACHTS8 CON> DISPLAY_FORM BOATS IN [MORRIS]DTR32.FLB USING CON> BEGIN/ CON> PUT_FORM MANUFA = MANUFACTURER' CON> PUT_FORM MODEL = MODEL" CON> END RETRIEVE USING CON> BEGIN+ CON> BUILT = GET_FORM MANUFA- CON> MODELLER = GET_FORM MODEL CON> END DTR> PRINT BUILT BUILT ALBERG  DTR> PRINT MODELLER  MODELLER  37 MK II DTR> @ You can use a form to store and modify values for selectedE fields. You can also associate more than one form with a singleA domain. See the DEC DATATRIEVE Guide to Interfaces for more examples.  2 DROP_StatementA Removes the selected record from a collection, but does not@ remove that record from the data file in which it resides. Format  DROP [collection-name]  3 Argument   collection-name A Is the name of a collection. If the DROP statement does not? contain this argument, it affects the CURRENT collection.  3 Example@ In the following example, a record is stored in YACHTS and> a series of collections is formed. The DROP statement isE illustrated using the SELECT, DROP, ERASE, and PRINT statements+ and the SHOW collection-name command:  DTR> READY YACHTS WRITE2 DTR> STORE YACHTS USING BUILDER = "HINKLEY",/ DTR> FIND YACHTS WITH BUILDER = "HINKLEY" [1 record found] DTR> FIND A IN CURRENT [1 record found] DTR> FIND B IN YACHTS [114 records found]! DTR> SELECT B; PRINT B.BOAT + LENGTH* OVER> MANUFACTURER MODEL RIG ALL WEIGHT BEAM PRICE ? ALBERG 37 MK II KETCH 37 20,000 12 $36,951  DTR> FIND C IN YACHTS [114 records found] DTR> SELECT LAST; PRINT + LENGTH* OVER> MANUFACTURER MODEL RIG ALL WEIGHT BEAM PRICE ? WRIGHT SEAWIND II SLOOP 32 14,900 00 $34,480  DTR> SHOW C Collection C Domain: YACHTS Number of Records: 114 Selected Record: 114 DTR> DROP DTR> SHOW C Collection C Domain: YACHTS Number of Records: 114( Selected Record: 114 (Dropped) DTR> PRINT +  LENGTH* OVER> MANUFACTURER MODEL RIG ALL WEIGHT BEAM PRICE ? ALBERG 37 MK II KETCH 37 20,000 12 $36,951  DTR> DROP - Target record has already been dropped. DTR> SHOW B Collection B Domain: YACHTS Number of Records: 114 Selected Record: 1 DTR> DROP B DTR> SHOW B Collection B Domain: YACHTS Number of Records: 114& Selected Record: 1 (Dropped) DTR> RELEASE C DTR> DROP- Target record has already been dropped. DTR> ERASE! No target record for ERASE. DTR> RELEASE B DTR> PRINT3 No record selected, printing whole collection + LENGTH* OVER> MANUFACTURER MODEL RIG ALL WEIGHT BEAM PRICE 6 HINKLEY  0 00  DTR> DROP2 No collection with selected record for DROP. DTR> SHOW CURRENT Collection A Domain: YACHTS Number of Records: 1 No Selected Record& DTR> SELECT; ERASE; SHOW CURRENT Collection A Domain: YACHTS Number of Records: 1% Selected Record: 1 (Erased) DTR> DROP2 No collection with selected record for DROP. DTR>  2 EDI T_CommandF Invokes an editor to edit the previous command or statement, oneC or more types of object definitions, or the dictionary object, specified by the dictionary path name. Format = [ {DOMAINS } ]= [ {PLOTS } ]= [ { } ]= [ [ALL] {PROCEDURES } [,...] [RECOVER] ]= [  {RECORDS } ]= EDIT [ {TABLES } ]= [ ]= [ ]= [ ALL [RECOVER] ]= [ ]= [ [path-name] [RECOVER] ]= [ ]  3 Arguments   ALL B Places all the objects in your Oracle CDD/Repository defaultF directory in an editing buffer. The keyword ALL is optional whenF used with the object types, but required when used alone or with only RECOVER.  path-name D Is the given name, full dictionary path name, or relative pathB name of a DEC DATATRIEVE domain, record, procedure, or tableF definition you want to edit. EDIT accepts both DMU and CDO style path names.  DOMAINS F You can specify one or more types of object definitions with theC EDIT command. This allows you to edit all the domains, plots,E procedures, records, or tables from your current default Oracle CDD/Repository directory.  RECOVER 4 Allows recovery for edited dictionary objects.  3 ExampleD The following example shows how to edit the definition for the record YACHT:  DTR> EDIT YACHT! REDEFINE RECORD YACHT USING 01 BOAT. 03 TYPE.$ 06 MANUFACTURER PIC X(10)$ QUERY_NAME IS BUILDER. 06 MODEL PIC X(10). 03 SPECIFICATIONS QUERY_NAME SPECS. 06 RIG PIC X(6): VALID IF RIG EQ "SLOOP","KETCH","MS","YAWL".% 06 LENGTH_OVER_ALL PIC XXX, VALID IF LOA BETWEEN 15 AND 50 QUERY_NAME IS LOA.$ 06 DISPLACEMENT PIC 99999 & QUERY_HEADER IS "WEIGHT"# EDIT_STRING IS ZZ,ZZ9! QUERY_NAME IS DISP.- 06 BEAM PIC 99 MISSING VALUE IS 0. 06 PRICE PIC 99999 MISSING VALUE IS 03 VALID IF PRICE>DISP*1.3 OR PRICE EQ 0% EDIT_STRING IS $$$,$$$. ; [Record is 41 bytes long.] F You can now edit the record definition. If SET EDIT_BACKUP is inD effect, the old version of the YACHT record is retained in the/ data dictionary when you exit the editor.  2 EDIT_STRING_Clause3 Specifies the output format of a field value. Format & EDIT_STRING [IS] edit-string  3 Argument   edit-string A Is one or more edit string characters describing the output format of the field value.  '2 END_REPORT_Statement_(Report_Writer)$ Ends the report specification. Format  END_REPORT  3 Example@ For examples of report specifications, see the chapters on9 writing reports in the DEC DATATRIEVE User's Guide.  2 ERASE_StatementB Permanently removes one or more data records from an indexedA or relative data file, a Oracle CODASYL DBMS database, or a relational database. Format  ERASE [ALL [OF rse] ]  3 Arguments   ALL D Causes DEC DATATRIEVE to permanently remove from the data file- every record in the current collection.  ALL OF rse D Causes DEC DATATRIEVE to permanently remove from the data fileA every record identified by the record selection expression.  3 ExamplesF The following example shows how to erase all the yachts built by Albin: . DTR> FIND YACHTS WITH BUILDER EQ "ALBIN" [3 records found] DTR> ERASE ALL B In the following example, a procedure is defined that erases selected yachts: % DTR> DEFINE PROCEDURE SELL_BOAT8 DFN> FIND YACHTS WITH BUILDER EQ *.BUILDER AND# DFN> MODEL = *.MODEL DFN> PRINT ALL< DFN> IF *."Y IF BOAT SOLD" CONT "Y" THEN ERASE ALL DFN> END_PROCEDURE DTR>  2 EXIT_Command$ Ends a DEC DATATRIEVE session. Format  { EXIT } { CTRL/Z} { }  3 Parameters   None.  3 ExamplesF The following example shows how to end a DEC DATATRIEVE session:  DTR> EXIT $ F The following example shows the result of entering CTRL/Z to the( Enter prompt of a STORE statement:  DTR> READY YACHTS WRITE DTR> STORE YACHTS" Enter MANUFACTURER: & Execution terminated by operator DTR>  2 EXTRACT_CommandD Copies the Oracle CDD/Repository data di ctionary definition ofF one or more dictionary objects or types of object definitions to a command file. Format E { {DOMAINS } }E { {PLOTS } }E { [ALL] {PROCEDURES } [,...] [ON] file-spec }E { { } }E { {RECORDS } }E { {TABLES } }E EXTRACT { }E { ALL [ON] file-spec }E { }E { }E { [ON] file-spec path-name [,...] }E { }E  { }E { path-name [,...] [ON] file-spec }  3 Arguments   ALL C Causes DEC DATATRIEVE to copy into the specified command fileG the definitions of one or more dictionary objects in your default dictionary directory. D The keyword ALL is optional when used with the types of object+ definitions such as PLOTS or DOMAINS. F The keyword ALL is required, however, when used with the EXTRACT ALL [ON] file-spec syntax.  DOMAINS ? Allows you to extract all the domains, plots, procedures,9 records, or tables from your current default Oracle CDD/Repository directory.  file-spec A Is the OpenVMS specification of the RMS file to contain theB definitions. A complete file specification has the following format: 9 node-spec::device:[directory]file-name.type;version  path-name D Is the given name, full dictionary path name, or relative pathF name of the dictionary object whose definition you want to copy.G If you specify more than one dictionary path name, use a comma toG separate each one from the next. EXTRACT accepts both DMU and CDO style path names.  3 ExampleG Extract all the definitions in a dictionary directory to create a backup file:  DTR> EXTRACT ALL ON BAKUP1 DTR>  2 FIND_Statement> Establishes a collection of records from a domain, view,> collection, or list. The collection formed with the FIND/ statement becomes the current collection. Format  FIND rse  3 Argument   rse C Is a record selection expression specifying the records to be! included in the collection.  3 ExamplesG The following example forms a collection of yachts longer than 306 feet and gives the collection the name BIG-ONES: 1 DTR> FIND BIG-ONES IN YACHTS WITH LOA GT 30 [57 records found] DTR> G The following example forms a collection of the 10 most expensive yachts: 4 DTR> FIND FIRST 10 YACHTS SORTED BY DESC PRICE [10 records found] DTR>  2 FINISH_Command@ Ends your access to domains, domain tables, relations, andC Oracle  CODASYL DBMS records. The FINISH command also releases2 any collections associated with the domains. G For Oracle CODASYL DBMS, when the last Oracle CODASYL DBMS domainB or record is finished, collections are purged, a commit withD no retention is performed, and databases are unbound. The lastC FINISH commits all Oracle CODASYL DBMS databases. A commit isF not done until you finish the last Oracle CODASYL DBMS record or domain. A For relational sources, when the last domain or relation isF finished, a commit is performed and no collections are retained. Format 2 [ ALL ]2 [ [ domain-name ] ]2 FINISH [ [ ] [,...] ]2 [ [ dbms-record-name ] ]2 [ [ rdb-relation-name ] ]2 [ ]  3 Arguments   ALL C Ends your control over all readied domains, relations, OracleF CODASYL DBMS records, and all domain or dictionary tables loaded in your workspace.   domain-name D Is the given name of a readied domain or domain table you wantD to finish. If you specify the names of more than one domain orA domain table, separate each from the next with a comma (,).   rdb-relation-name D Is the given name of a readied relation you want to finish. IfD you specify the names of more than one relation, separate each% from the next with a comma (,).   dbms-record-name D Is the given name of a Oracle CODASYL DBMS record readied withG the READY database command. If you specify the names of more than? one record, separate each from the next with a comma (,).  3 ExampleB The following example releases control of the domain YACHTS:  DTR> SHOW READY Ready sources:5 YACHTS: Domain, RMS indexed, protected read0  No loaded tables.  DTR> FINISH YACHTS DTR> SHOW READY No ready sources. No loaded tables. DTR>  2 FOR_Statement> Causes DEC DATATRIEVE to execute a statement or group ofD statements once for each record in the record stream formed byE a record selection expression (RSE). The FOR statement provides4 repeating loops for DEC DATATRIEVE operations. Format  FOR rse statement  3 Arguments   rse C Is a record selection expression that forms the record stream? that controls the number of times DEC DATATRIEVE executesB the statement and controls the single-record context for the statement.  statement = Is either a simple or a compound statement you want DEC> DATATRIEVE to execute once for each record in the recordD stream formed by the RSE. You can form compound DEC DATATRIEVEG statements with the BEGIN-END, IF-THEN-ELSE, and THEN statements,* which are described in this chapter.  3 ExamplesB The following example assigns a value to the field PRICE for- three yachts with prices equal to zero:  DTR> READY YACHTS MODIFY DTR> SET NO PROMPT2 DTR> FIND FIRST 3 A IN YACHTS WITH PRICE = 0 [3 records found] DTR> PRINT A + LENGTH* OVER> MANUFACTURER MODEL RIG ALL WEIGHT BEAM PRICE 6 BLOCK I. 40 SLOOP 39 18,500 126 BUCCANEER 270 SLOOP 27 5,000 086 BUCCANEER 320 SLOOP 32 12,500 10  DTR> FOR A1 CON> MODIFY USING PRICE = DISP * 1.3 + 5000 DTR> PRINT A + LENGTH* OVER> MANUFACTURER MODEL RIG ALL WEIGHT BEAM PRICE ? BLOCK I. 40 SLOOP 39 18,500 12 $29,050? BUCCANEER 270 SLOOP 27 5,000 08 $11,500? BUCCANEER 320 SLOOP 32 12,500 10 $21,250 DTR> D The following example uses a variable to force an end to a FORB loop before all records in the record stream have been acted upon:  DTR> READY YACHTS DTR> DECLARE A PIC 9. DTR> PRINT A  A  0  DTR> SET NO PROMPT DTR> FOR YACHTS CON> BEGIN CON> A = A + 1 CON> PRINT A, BOAT. CON> IF A = 5 THEN ABORT "END OF LOOP" CON> END - LENGTH, OVER@ A MANUFACTURER MODEL RIG ALL WEIGHT BEAM PRICE A 1 ALBERG 37 MK II KETCH 37  20,000 12 $36,951A 2 ALBIN 79 SLOOP 26 4,200 10 $17,900A 3 ALBIN BALLAD SLOOP 30 7,276 10 $27,500A 4 ALBIN VEGA SLOOP 27 5,070 08 $18,600A 5 AMERICAN 26 SLOOP 26 4,000 08 $9,895 ABORT: END OF LOOP DTR> G The following example contains a SORTED BY clause that allows theG FOR loop to select records according to their length. The contextC variable X identifies the record stream in the FOR statement.  DTR> READY YACHTS0 DTR> FOR FIRST 4 X IN YACHTS SORTED BY LOA CON> PRINT BUILDER, LOA  LENGTH OVER MANUFACTURER ALL  WINDPOWER 16 CAPE DORY 19 ENCHILADA 20 VENTURE 21 DTR> D The following example uses nested FOR loops to increase by oneG year the age of each child in the first two records of the domain FAMILIES: DTR> READY FAMILIES MODIFY! DTR> PRINT FIRST 2 FAMILIES ) NUMBER KID1 FATHER MOTHER KIDS NAME AGE 0 JIM ANN 2 URSULA 70 RALPH 30 JIM LOUISE 5 ANNE 310 JIM 290 ELLEN 260  DAVID 240 ROBERT 16  DTR> SET NO PROMPT DTR> FOR FIRST 2 FAMILIES CON> FOR KIDS) CON> MODIFY USING AGE = AGE + 1! DTR> PRINT FIRST 2 FAMILIES ) NUMBER KID1 FATHER MOTHER KIDS NAME AGE 0 JIM ANN 2 URSULA 80 RALPH 40 JIM LOUISE 5 ANNE 320  JIM 300 ELLEN 270 DAVID 250 ROBERT 17  2 HELP_CommandB Provides on-line information about the use of DEC DATATRIEVE2 commands, statements, and language elements. Format  { HELP }' { ? } [ERROR] [topic][...] { }  3 Arguments   ERROR D Provides additional information on the last error message that you received.   topic C Is a DEC DATATRIEVE command, statement, statement element, or= error. Use commas to separate each topic from the next.   . . . (ellipsis) B Indicates that all help subtopics and any of their subtopics should be displayed.   ? (question mark)  Is a synonym for HELP.  3 ExamplesC The following example shows how to ask for a list of the help that is available:  DTR> HELP D The following example shows how to ask for help on the screen- oriented Help facility:  DTR> HELP VIDEO G The following example shows how to ask for help on the last errorF message you received. For example, if you use the SORT statementD without first forming a collection, DEC DATATRIEVE displays an error message:  DTR> READY YACHTS DTR> SORT BY LOA No collection for sort. E You can issue the HELP ERROR command to find out the reason forG the error message, possible actions to correct the error, and how) to obtain more on-line information:  DTR> HELP ERROR No collection for sort.  ERROR_MESSAGES Errors  NOCOLSOR ) 008D8352 No collection for sort.  Explanation: @ You can use the SORT statem ent only with an established collection.  User Action: @ Use the SORTED BY clause in an RSE to order records not= contained in an established collection. For example:- PRINT EMPLOYEES SORTED BY LAST_NAME. E You can also use the SORTED BY clause in the RSE of the FINDG statement to order records when a collection is being created.E In addition, you can use a SORT statement to reorder records) after the collection is created.  2 IF_THEN_ELSE_Statement? Causes DEC DATATRIEVE to execute one of two statements orG compound statements, depending on the evaluation of a conditional (Boolean) expression. Format E IF boolean-expression [THEN] statement-1 [ELSE statement-2]  3 Arguments   boolean-expression  Is a Boolean expression.   THEN D Is an optional language element you can use to clarify syntax.   statement-1 B Is a simple or compound statement you want DEC DATATRIEVE to: execute if the Boolean expression evaluates to true.   ELSE statement-2 G Specifies the statement you want DEC DATATRIEVE to execute if the, Boolean expression evaluates to false.  3 ExamplesB The following example shows how to print each yacht built by3 Pearson, and modify the price if you want to:   DTR> SET NO PROMPT DTR> READY YACHTS WRITE. DTR> FOR YACHTS WITH BUILDER = "PEARSON" CON> BEGIN CON> PRINT? CON> IF *."Y TO MODIFY PRICE, N TO SKIP" CONT "Y", CON> THEN MODIFY PRICE ELSE' CON> PRINT "NO CHANGE"9 CON> IF *."Y TO CONTINUE" NOT CONT "Y" THEN2 CON> ABORT "END OF PRICE CHANGES" CON> END , LENGTH*  OVER> MANUFACTURER MODEL RIG ALL WEIGHT BEAM PRICE 6 PEARSON 10M SLOOP 33 12,441 11+ Enter Y TO MODIFY PRICE, N TO SKIP: N NO CHANGE( Enter Y TO CONTINUE, N TO ABORT: Y6 PEARSON 26 SLOOP 26 5,400 08+ Enter Y TO MODIFY PRICE, N TO SKIP: N NO CHANGE( Enter Y TO CONTINUE, N TO ABORT: N! ABORT: END OF PRICE CHANGES DTR> A In the following e xample the IF statement is used to selectD families with fathers named Jim and list the children in those families:  DTR> READY FAMILIES% DTR> FOR FAMILIES WITH ANY KIDS' CON> IF FATHER EQ "JIM" THEN8 CON> PRINT "The Kids of JIM and"|||MOTHER,5 CON> ALL KID_NAME ("Kids with Fathers"/1 CON> "Named Jim") OF KIDS, SKIP 6 Kids with Fathers2  Named Jim . The Kids of JIM and ANN URSULA- RALPH , The Kids of JIM and LOUISE ANNE+ JIM- ELLEN- DAVID. ROBERT DTR>  2 LIST_StatementF Causes DEC DATATRIEVE to format and write to your terminal, to aG file, or to a unit record device one or more values of implied orC specified fields from records in one or more readied domains. Format F For retrieving from selected records and target record streams formed by FOR loops: / [ {file-spec } ]/ LIST [print-list] [ ON {*.prompt } ]/ [ { } ] 3 For retrieving from the current collection: 4  [ {file-spec } ]4 LIST ALL [print-list] [ ON {*.prompt } ]4 [ { } ] G For retrieving from record streams formed by the LIST statement using one RSE: 8 [ {file-spec } ]8 LIST [print-list OF] rse [ ON {*.prompt } ]8 [ { } ] G For retrieving from record streams formed by the LIST statementB using two RSEs (the inner print list follows another print list): H LIST print-list, ALL print-list OF rse-1 [,print-list] OF rse-2 " [ {file-spec } ]" [ ON {*.prompt } ]" [ { } ] G For retrieving from record streams formed by the LIST statementE using two RSEs (the inner print list precedes any other print list): G LIST ALL ALL print-list OF rse-1 [,print-list] OF rse-2" [ {file-spec } ]" [ ON {*.prompt } ]" [ { } ]  3 Arguments  print-list G Is a list of field names; it can also include only the print listE elements SKIP, NEW_PAGE, and inner print lists. You can controlA the format in which DEC DATATRIEVE displays values from theE specified fields with the USING edit-string modifiers described: in the Results section of the PRINT command section.   ALL G When used alone following LIST, causes the records in the currentD collection to be displayed or written to the specified file or device. B When used with a print list, ALL causes the print list to be: evaluated for each record in the current collection. D When used with the OF rse clause, ALL is optional. You can useG it to clarify the LIST statement, but, regardless of the presenceG of ALL, DEC DATATRIEVE evaluates the LIST statement once for each4 record in the record stream formed by the RSE. A When the print list begins with an inner print list, ALL isB required to establish the proper context in which to resolve7 references to the items in the hierarchical list.   rse E Is a record selection expression that creates the record streamE DEC DATATRIEVE uses to evaluate the elements of the print list.  file-spec E Is the file specification to which you want to write the outputG of the statement. A complete file specification has the following format: 9 node-spec::device:[directory]file-name.type;version   *.prompt-name C Is a prompting value expression that prompts you for a deviceF name or file specification to which you want to write the output of the statement.  3 Examples< The following example lists three records from YACHTS:  DTR> READY YACHTS DTR> LIST FIRST 3 YACHTS  MANUFACTURER : ALBERG MODEL : 37 MK II RIG : KETCH LENGTH_OVER_ALL : 37 DISPLACEMENT : 20,000 BEAM : 12 PRICE : $36,951  MANUFACTURER : ALBIN MODEL : 79 RIG : SLOOP LENGTH_OVER_ALL : 26 DISPLACEMENT : 4,200 BEAM : 10 PRICE : $17,900  MANUFACTURER : ALBIN MODEL : BALLAD RIG : SLOOP LENGTH_OVER_ALL : 30 DISPLACEMENT : 7,276 BEAM : 10 PRICE : $27,500 D The following example lists the first two records in FAMILIES:  DTR> READY FAMILIES DTR> LIST FIRST 2 FAMILIES  FATHER : JIM MOTHER : ANN NUMBER_KIDS : 2 KID_NAME : URSULA AGE : 7 KID_NAME : RALPH AGE : 3  FATHER : JIM MOTHER : LOUISE NUMBER_KIDS : 5 KID_NAME : ANNE AGE : 31 KID_NAME : JIM AGE : 29 KID_NAME : ELLEN AGE : 26 KID_NAME : DAVID AGE : 24 KID_NAME : ROBERT AGE : 16 DTR>  2 MATCH_StatementF Relates two list names with their subordinate elementary fields,B so that data from the second list can be stored in the first list. Format 1 MATCH list-rse-1, list-rse-2 statement  3 Arguments  list-rse-1 D Is an RSE containing a list name from the record definition of- the domain that is to receive the data.  list-rse-2 D Is an RSE containing a list name from the record definition of% the source domain for the data.  statement F Is a DEC DATATRIEVE Assignment statement or series of Assignment/ statements enclosed by a BEGIN-END block.  3 ExampleB Consider the following record definition for the domain FAM:  DTR> SHOW FAM_REC RECORD FAM_REC USING 01 FAMILY. 03 PARENTS.! 06 FATHER PIC X(10).! 06 MOTHER PIC X(10).2 03 NUMBER_KIDS  PIC 99 EDIT_STRING IS Z9.$ 03 KIDS_N OCCURS 10 TIMES. 06 EACH_KID.9 09 KID_NAME PIC X(10) QUERY_NAME IS KID.$ 03 KIDS_A OCCURS 10 TIMES. 06 EACH_KID.1 09 AGE PIC 99 EDIT_STRING IS Z9. ; F The fixed-length list format means that values are displayed forC 10 KIDS_N and 10 KIDS_A, no matter what the value for NUMBER_E KIDS. In displays and reports, this means that most FAM recordsF  would be separated by strings of blanks (for "empty" occurrences? of KIDS_N) and zeros (for "empty" occurrences of KIDS_A).  DTR> PRINT FAM ) NUMBER KID1 FATHER MOTHER KIDS NAME AGE 0 JIM ANN 2 URSULA 70 RALPH 30 00 00  00 00 00 00 00 00 JIM LOUISE 5 ANNE 310 JIM 290 ELLEN 260 DAVID 240 ROBERT  160 00 00 00 00 0' . . .' . . .' . . . F To improve display and report formats for this domain, you couldF restructure it using the MATCH statement so that it contains oneE variable-length list field. In other words, the modified recordA definition would look like the current one for the FAMILIES domain.  DTR> SHOW FAMILY_REC RECORD FAMILY_REC 01 FAMILY. 03 PARENTS. 06 FATHER PIC X(10). 06 MOTHER PIC X(10).1 03 NUMBER_KIDS PIC 99 EDIT_STRING IS Z9.? 03 KIDS OCCURS 0 TO 10 TIMES DEPENDING ON NUMBER_KIDS. 06 EACH_KID.7  09 KID_NAME PIC X(10) QUERY_NAME IS KID./ 09 AGE PIC 99 EDIT_STRING IS Z9. ; A If you attempted to restructure FAM without using the MATCHB statement, DEC DATATRIEVE would not store the list elements.@ This problem occurs because the modified record definitionB combines two list fields into one. Therefore, to restructureE the FAM domain, you must use the MATCH statement within a STOREF statement that is controlled by a FOR loop. The following seriesD of statements stores the data from the records in FAM into the6 records in FAMILIES and then prints the results:  DTR> READY FAM# DTR> DEFINE FILE FOR FAMILIES DTR> READY FAMILIES WRITE DTR> FOR FAM CON> STORE FAMILIES USING CON> BEGIN CON> PARENTS = PARENTS( CON> NUMBER_KIDS = NUMBER_KIDS! CON> MATCH KIDS, KIDS_N$ CON> KID_NAME = KID_NAME! CON> MATCH KIDS, KIDS_A CON> AGE = AGE CON> END DTR> PRINT FAMILIES ) NUMBER KID1 FATHER MOTHER KIDS NAME AGE 0 JIM ANN 2 URSULA 70 RALPH 30 JIM LOUISE 5 ANNE 310 JIM 290 ELLEN 260 DAVID 240  ROBERT 16' . . .' . . .' . . .  2 MISSING_VALUE_ClauseD Designates a value for a field that DEC DATATRIEVE recognizes,@ not as the literal value, but as a marker that no value isG stored in the field. DEC DATATRIEVE ignores fields containing theD "missing value" marker when evaluating statistical expressions. (AVERAGE, MAX, MIN, TOTAL, and STD_DEV). C When you store a record and do not directly assign a value toC a field with a MISSING VALUE defined, DEC DATATRIEVE uses theE missing value to initialize the field if it contains no DEFAULT VALUE clause. Format % MISSING [VALUE [IS]] literal  3 Arguments  VALUE IS D Are optional keywords you can use to clarify the syntax of the clause.  literal 6 Is either a numeric or character string literal.  3 ExamplesB The following example defines a record that contains MISSING VALUE clauses: 9 DTR> DEFINE DOMAIN THINGS USING THINGREC ON THINGS;' DTR> DEFINE RECORD THINGREC USING DFN> 01 THINGS. DFN> 03 NUM PIC 9(5)' DFN> MISSING VALUE IS 111117 DFN> EDIT_STRING IS ZZ,Z99?"***MISSING***".7 DFN> 03 STR PIC X(10) MISSING VALUE IS "EMPTY"6 DFN> EDIT_ST RING IS X(10)?"***MISSING***". DFN> ; DTR> E The following example defines a new domain based on YACHTS that? uses a new missing value and a MISSING VALUE edit string: D DTR> DEFINE DOMAIN YACHTS_PRICE_LIST USING YPL_REC ON YPL.DAT;& DTR> DEFINE RECORD YPL_REC USING DFN> 01 BOAT. DFN> 03 TYPE.& DFN> 05 BUILDER PIC X(10).# DFN> 05 MODEL PIC X(8).2 DFN> 03 PRICE PIC 9(5) MISSING VALUE IS 02  DFN> EDIT_STRING $$$,$$$?"NOT LISTED". DFN> ; [Record is 23 bytes long.]7 DTR> DEFINE FILE FOR YACHTS_PRICE_LIST KEY = TYPE/ DTR> READY YACHTS_PRICE_LIST AS YPL WRITE DTR> READY YACHTS& DTR> YPL = YACHTS WITH LOA GT 35& DTR> FIND YPL WITH PRICE MISSING [12 records found] DTR> PRINT FIRST 3 CURRENT ! BUILDER MODEL PRICE $ BLOCK I. 40 NOT LISTED$ CABOT 36 NOT LISTED$ DOWN EAS T 38 NOT LISTED DTR>  2 MODIFY_StatementE Changes the value of one or more fields in a selected record or= in any or all records in a collection or record stream.  Format 1 - [ field-name [,...] ]- MODIFY [ALL] [ USING statement-1 ]- [ ] + [VERIFY [USING] statement-2]  [OF rse]  Format 2  MODI FY [ALL] rse  USING statement-1 + [VERIFY [USING] statement-2]  3 Arguments   ALL A Specifies that you want to modify either all records in theF CURRENT collection or all records in the record stream specified/ in the record selection expression (rse).  field-name E Specifies the name of a field in the target records you want toE modify. If you specify more than one field n ame, use a comma toD separate each field name from the next. DEC DATATRIEVE prompts7 you to supply a value for each field you specify.   USING statement-1 B Specifies a simple or compound DEC DATATRIEVE statement that@ assigns values to one or more fields in the target recordsD you want to modify. This clause can also contain any other DECC DATATRIEVE statements, such as PRINT, STORE, and other MODIFY statements.   VERIFY [USING] statement-2 ? Specifies a statement that DEC DATATRIEVE executes before" modifying the target record.  OF rse D Is a record selection expression that forms a record stream ofE the records you want to modify. An OF rse clause is optional inF format 1 of the MODIFY statement. In format 2, an rse without OF is required.  3 ExamplesA The following example changes one field value in a selected record:   DTR> READY YACHTS MODIFY- DTR> FIND FAMILIES WITH FATHER = "JOHN" [2 records found] DTR> PRINT4 No record selected, printing whole collection. ) NUMBER KID1 FATHER MOTHER KIDS NAME AGE0 JOHN JULIE 2 ANN 290 JEAN 260 JOHN ELLEN 1 CHRISTOPHR 0  DTR> SELECT 1 DTR> MODIFY FATHER Enter FATHER: JON DTR> PRINT ) NUMBER KID1 FATHER MOTHER KIDS NAME AGE 0 JON JULIE 2 ANN 290 JEAN 26 DTR> G The following example makes a 10 percent increase in the price ofE the first five yachts. Each yacht begins and ends with a uniqueG price, but the new price of each yacht is 10 percent greater than' the old price of that same yacht. : DTR> MODIFY FIRST 5 YACHTS USING PRICE = PRICE * 1.1 DTR> PRINT FIRST 5 YACHTS + LENGTH* OVER> MANUFACTURER MODEL RIG ALL WEIGHT BEAM PRICE ? ALBERG 37 MK II KETCH 37 20,000 12 $40,646? ALBIN 79 SLOOP 26 4,200 10 $19,690? ALBIN BALLAD SLOOP 30 7,276 10 $30,250? ALBIN VEGA  SLOOP 27 5,070 08 $20,460? AMERICAN 26 SLOOP 26 4,000 08 $10,885 DTR>  2 OCCURS_ClauseE The OCCURS clause defines multiple occurrences (or repetitions)G of a field or group of fields. The multiple occurrences, called a- list, create a hierarchy in the domain. F The OCCURS clause has two formats: one format for a fixed numberG of occurrences and one for a variable number of occurrences. Each- is described in the following sections. G To define a fixed number of occurrences use the following format: OCCURS n TIMES J To define a variable number of occurrences use the following format:: OCCURS min TO max TIMES DEPENDING ON field-name  2 ON_StatementC Sends the output of all indicated statements to the specified output file or device. Format  { file-spec }# ON { *.prompt } statement { }  3 Arguments  file-spec E Specifies the file to which you want to write the output of theA statement. The file specification has the following format: 9 node-spec::device:[directory]file-name.type;version  statement B Is a simple or compound statement you want DEC DATATRIEVE to9 execute and write the output to the specified file.  *.prompt A Is a prompting  value expression that prompts you for a file@ specification to which you want to write the output of the statement.  3 ExamplesC The following example shows how to search all yachts built byE AMERICAN and print the TYPE, PRICE, and RIG for each sloop. ForB all yachts built by AMERICAN which are not sloops, a line isG skipped and a message is printed. The output is written to an RMS file. D Since an IF-THEN-ELSE statement is used and the same file nameG is specified in the THEN and ELSE clauses, DEC DATATRIEVE creates two versions of the file. / DTR> FOR YACHTS WITH BUILDER = "AMERICAN" CON> IF RIG = "SLOOP" THEN6 CON> PRINT TYPE, PRICE, RIG ON BOAT.RNO ELSE4 CON> PRINT SKIP, "NOT A SLOOP" ON BOAT.RNO4 Creating file DB0:[MORRISON.REF]BOAT.RNO;1 ...4 Creating file DB0:[MORRISON.REF]BOAT.RNO;2 ... . The content of BOAT.RNO;1 is as follows: *  MANUFACTURER MODEL PRICE RIG + AMERICAN 26 $9,895 SLOOP . The content of BOAT.RNO;2 is as follows:  NOT A SLOOP B However, if you use the ON statement, all of the data can be* written to the same file as follows:  DTR> ON SHIP.RNO/ CON> FOR YACHTS WITH BUILDER = "AMERICAN"< CON> IF RIG = "SLOOP" THEN PRINT TYPE, PRICE, RIG ELSE$ CON> PRINT SKIP, "NOT A SLOOP"4 Creating file DB0:[MORRISON.REF]SHIP.RNO;1 ... - The contents of SHIP.RNO is as follows: * MANUFACTURER MODEL PRICE RIG + AMERICAN 26 $9,895 SLOOP  NOT A SLOOP C The following example shows how to write the output of a LISTD statement to three files and display the output. Data on every- family with three children is included:  DTR> ON FAM1.RNO CON> ON FAM2.RNO CON> ON FAM3.RNO CON> ON TT:- CON> LIST FAMILIES WITH NUMBER_KIDS = 32 Creating file DB0:[MORRIS.REF]FAM1.RNO;1 ...2 Creating file DB0:[MORRIS.REF]FAM2.RNO;1 ...2 Creating file DB0:[MORRIS.REF]FAM3.RNO;1 ...$ Sending output to terminal TT.  FATHER : GEORGE MOTHER : LOIS NUMBER_KIDS : 3  KID_NAME : JEFF AGE : 23  KID_NAME : FRED AGE : 26  KID_NAME : LAURA AGE : 21  FATHER : HAROLD MOTHER : SARAH NUMBER_KIDS : 3 KID_NAME : CHARLIE AGE : 31  KID_NAME : HAROLD AGE : 35  KID_NAME : SARAH AGE : 27 DTR> E DEC DATATRIEVE sends the output to the terminal and creates theG three files specified. All three files contain the data displayed on the terminal.  2 OPEN_CommandF  Opens an RMS file to serve as a log of your interactive dialogueG with DEC DATATRIEVE. DEC DATATRIEVE copies your input and the DECG DATATRIEVE output including error messages to the file exactly as displayed. Format  OPEN file-spec  3 Argument  file-spec E Is the OpenVMS file specification of the file to be opened. The9 file specification must be in the following format: 9 node-spec::device:[directory]file-name.type;version  3 Example? This example opens a log file, displays the contents of a@ procedure, invokes the procedure, closes the log file withB a CTRL/Z exit from DEC DATATRIEVE, and uses the OpenVMS TYPE6 command to display the contents of the log file:  DTR> OPEN LOG/ DTR> !THIS IS A TEST OF THE OPEN COMMAND. DTR> READY YACHTS DTR> SHOW SELL_BOAT PROCEDURE SELL_BOAT@ FIND YACHTS WITH BUILDER EQ *.BUILDER AND MODEL EQ *.MODEL PRINT ALL6 IF *."Y IF BOAT SOLD" EQ "Y" THEN ERASE ALL ELSE! PRINT "SELL IT NOW!" END_PROCEDURE  DTR> :SELL_BOAT Enter BUILDER: ALBIN Enter MODEL: VEGA + LENGTH* OVER> MANUFACTURER MODEL RIG ALL WEIGHT BEAM PRICE ? ALBIN VEGA SLOOP 27 5,070 08 $18,600  Enter Y IF BOAT SOLD: N  SELL IT NOW! DTR>  $ TYPE LOG.LIS/ DTR> !THIS IS A TEST OF THE OPEN COMMAND. DTR> READY YACHTS DTR> SHOW SELL_BOAT PROCEDURE SELL_BOAT@ FIND YACHTS WITH BUILDER EQ *.BUILDER AND MODEL EQ *.MODEL PRINT ALL1 IF *."Y IF BOAT SOLD" EQ "Y" THEN ERASE ALL PRINT "SELL IT NOW !" END_PROCEDURE  DTR> :SELL_BOAT Enter BUILDER: ALBIN Enter MODEL: VEGA+  LENGTH* OVER> MANUFACTURER MODEL RIG ALL WEIGHT BEAM PRICE ? ALBIN VEGA SLOOP 27 5,070 08 $18,600  Enter Y IF BOAT SOLD: N  SELL IT NOW!  $  2 PICTURE_Clause> Specifies the format of the field value as it is stored. Format ' PIC[TURE] [IS] picture-string  3 Argument   picture-s tring G Is one or more picture-string characters describing the format in& which the field value is stored. E Picture-String Characters contains a list of the picture-stringG characters. The picture-string characters you specify for a fieldD depend on the class of the field: alphabetic, alphanumeric, or numeric. ) Table 1-3 Picture-String Characters  Field Picture# Class Character Meaning F Alphab !etic A Each A represents one alphabetic character= in the field. The following fieldD definition specifies an alphabetic field. of six characters: 5 06 LETTERS_ONLY PIC A(6). B AlphanumericX Each X represents one character in theA field. The following field definitionC specifies that the MODEL field c "ontains7 10 alphanumeric characters: / 06 MODEL PIC X(10). E Numeric 9 Each 9 represents one digit in the field.C You can specify from 1 to 31 digits for@ a numeric field. The following fieldD definition specifies that the BEAM field0 contains two digits: + 03 BEAM PIC 99 #.B S An S indicates that a sign (+ or -) isE stored in the field. A picture string canG have only one S and it must be the leftmostE character. If there is no SIGN clause forD the field, the sign shares the rightmostE character position with the lowest-valuedE digit. The picture string S9(4) indicatesF $ a signed field, four digits in length; theF field value can range from -9999 to +9999.C V A V indicates an implied decimal point.? The decimal point does not occupy aE character position in the field, althoughE DEC DATATRIEVE uses its location to alignC data in the field. A picture string canB % contain only one V. The picture stringG 9(5)V99 specifies a 7-digit field; the lastD two digits of the field value follow the* decimal point.> P Each P specifies a decimal scalingD position. Each P represents a "distance"D in digits from an implied decimal point.C (A P does not count toward the l&imit ofC 31 digits per field.) A P can appear atD the right or left of the picture string.E A V is unnecessary for any picture string+ containing a P.  2 PLOT_StatementC Each DEC DATATRIEVE plot statement uses the following general syntax. Format $ PLOT plotname [USING] [ALL]4 [arg [,arg]...] [OF rse]1 ' [ { file-spec } ]1 [ ON {*.prompt } ]1 [ { } ]  3 Arguments  plotname + Is the name of the plot, for example:  DTR> PLOT BAR E BAR is the name of the plot. Refer to the DEC DATATRIEVE User's& Guide for plotname descriptions.   USING F Is an optional keyword to make the syntax more like English. The7 ( keyword USING does not affect the plot statement.   ALL E Is a keyword that may be optional or required, depending on theD structure of the plot statement you use. It is optional if youB use the OF rse clause; it is required if you use the current+ collection without any qualification. B For example, the following two plot statements are the same: 2 DTR> PLOT BAR BUILDER, PRICE OF YACHTS WITH CON> PRICE NE 0 ' )DTR> FIND YACHTS WITH PRICE NE 0' DTR> PLOT BAR ALL BUILDER, PRICE F The first example uses an OF rse clause in which the keyword ALLE is not required. In the second example, ALL is required because@ it refers to the collection created in the FIND statement. E In the syntax diagrams of the sections that follow, the keywordE ALL is shown in brackets as an optional element. Note, however,E that if you use the keyword ALL to refer to the contents* of the* current collection, ALL is required.   arg F Is a field name or other value expression. The argument can alsoF contain an optional label string. To specify a label string, putD a quoted string inside parentheses after the value expression. For example:  DTR> PLOT X_Y LOA,4 CON> DISP / 2000 ("Weight in tons") OF YACHTS  OF rse 9 Specifies the record stream to be used in the plot. D If+ you do not specify an RSE, the plot statement will use data" from the current collection.   ON { file-spec } { *.prompt } D Specifies a device or file for output. If you do not specify aG device or file specification, DEC DATATRIEVE displays the plot on your terminal screen. C You can use a complete OpenVMS file specification or simply aE file name. DEC DATATRIEVE uses .LIS as the default file type. A; complete file spec ,ification has the following format: 9 node-spec::device:[directory]file-name.type;version D You can also use a prompting value expression that prompts you6 for a file or device specification. For example: : DTR> PLOT PIE ALL RIG ON DRA0:[IACOBONE]RIGPLOT.LISE DTR> PLOT PIE ALL RIG ON *."File Name or Device Specification" B You can use the ON clause with any of the plot statements to? create a file containing the ReGIS[TM] graphics comm-ands.  3 ExamplesC The following example produces a simple bar chart showing the, salary for each employee in PERSONNEL: ( DTR> FIND PERSONNEL SORTED BY DEPT) DTR> PLOT BAR ALL LAST_NAME, SALARY DTR> . The following example plots a marsupial:  DTR> PLOT WOMBAT DTR>  2 PRINT_StatementsE Causes DEC DATATRIEVE to format and write one or more values ofC specified or implied DEC DATATRIEVE value ex.pressions to yourE terminal or workstation, to a file, or to a unit record device. Format F For retrieving from selected records and target record streams formed by FOR loops: . [ {file-spec } ]. PRINT print-list [ ON {*.prompt } ]. [ { } ] 3 For retrieving from the current collection: 5 [ {file-spec } ]5 PRINT / ALL [print-list] [ ON {*.prompt } ]5 [ { } ] > For retrieving from record streams formed by the PRINT statement using one RSE: 9 [ {file-spec } ]9 PRINT [print-list OF] rse [ ON {*.prompt } ]9 [ { } ] > For retrieving from record streams formed by the PRINTF statement using two RSEs (the inner prin0t list follows another print list): C PRINT print-list, ALL print-list OF rse-1 [,print-list] OF rse-2  [ {file-spec } ] [ ON {*.prompt } ] [ { } ] > For retrieving from record streams formed by the PRINTC statement using two RSEs (the inner print list precedes any other print list): H PRINT ALL ALL print-list OF rse-1 [,print-list] OF rse-2  [ 1 {file-spec } ] [ ON {*.prompt } ] [ { } ]  3 Arguments  print-list C Is a list of value expressions and formatting specifications.   ALL D When used alone following PRINT, ALL causes the records in theD current collection to be displayed or written to the specified file or device. B When used with a print list, ALL causes the print list to be: evaluated for each record in2 the current collection. A When the print list begins with an inner print list, ALL isB required to establish the proper context in which to resolve7 references to the items in the hierarchical list.   rse E Is a record selection expression that creates the record streamE DEC DATATRIEVE uses to evaluate the elements of the print list.  file-spec F Is the file specification of the file to which you want to write" 3the output of the statement. = A complete file specification has the following format: 9 node-spec::device:[directory]file-name.type;version   *.prompt-name A Is a prompting value expression that prompts you for a file@ specification to which you want to write the output of the statement.  3 ExamplesD The following example retrieves data from selected records and prints the data:  DTR> FIND FIRST 2 YA4CHTS) DTR> SELECT; PRINT TYPE, LOA, PRICE $ LENGTH# OVER+ MANUFACTURER MODEL ALL PRICE , ALBERG 37 MK II 37 $36,951 B The following example shows how to retrieve data from target" streams formed by FOR loops:  DTR> FOR FIRST 2 YACHTS! CON> PRINT TYPE, LOA, PRICE $ LENGTH# OVER+ MANU5FACTURER MODEL ALL PRICE , ALBERG 37 MK II 37 $36,951, ALBIN 79 26 $17,900 DTR> ; The following example shows how to retrieve data from2 hierarchical records using nested FOR loops:  DTR> FOR FIRST 2 FAMILIES CON> FOR KIDS) CON> PRINT MOTHER, FATHER, KID_NAME " KID# MOTHER FATHER NAME " ANN JIM URSULA! 6ANN JIM RALPH LOUISE JIM ANNE LOUISE JIM JIM! LOUISE JIM ELLEN! LOUISE JIM DAVID" LOUISE JIM ROBERT DTR>  "2 PRINT_Statement_(Report_Writer)F Specifies the following characteristics of the detail lines in a report: E o The content, such as field values, other desired values, and text strings B o The format of fields, includi7ng issues such as the order,E column position, print attributes, and edit string format of print objects ) o Column headers for print objects : You can include only one PRINT statement in a report@ specification. If your report specification contains an ATD statement, then it does not have to contain a PRINT statement. Format , PRINT print-list-element [, . . . ]  3 Argument   print-list-elem8ent E Specifies the values, position, print attributes, and format of+ the print objects in the detail line. C Report Parameters Controlled by Print List Elements indicatesC the parameters of the report controlled by various print list elements. C Table 1-4 Report Parameters Controlled by Print List Elements  Print List- Parameter Element Usage Notes F Content Field-name Can include 9elementary, group, list,B of [modifier] REDEFINES or COMPUTED BY fields;B detail to print all fields, specify the7 line top-level field name.A Related value- Derived from field values usingA expression arithmetic operators or RUNNING( [modifier] TOTAL.E Other value- Can include literals, variables, or0 expression RU :NNING COUNT. [mod{fier] }@ Format ATT {RESET } Resets the attributes, or usesD of {name } the named attribute list. (See the 9 detail DECLARE_ATT statement.) lineE SKIP [n] Begins printing the next print listB element n lines from the current= line. See also Usage Notes.E SPACE [n] Leaves s;paces between the output ofC the preceding and following printF list elements. See also Usage Notes.C COL n Specifies where the output of theE next print list element begins. See3 also Usage Notes.G TAB [n] Inserts the space of n tab charactersE before the output of the next <printE list element. See also Usage Notes. E Beginning NEW_PAGE Causes the Report Writer to start aB of new report page. Ignored in DTIF new page F Report Parameters Affected by Print List Modifiers indicates theD parameters of the report controlled by modifiers of print list elements. B Table 1-5 Report Parameters Affected by Print List Modifiers  Pr =int List. Parameter Modifier Usage Notes D Column ("header- Specifies one or two line headersC headers segment"[ for the preceding field or valueC for / . . . ]) expression, overriding the fieldG print name or query header from the record. items definition.F (-) Suppresses the header indicated forF the> field in the record definition. E Format USING edit-string Imposes the characteristics of theE of the edit string on the preceding field< detail name or value expression. line itemE WIDTH [n] Specifies the length of the string? field. See also Usage Notes.  3 ExampleG For examples of the PRINT statement in the Report Writer, see the"? DEC DATATRIEVE User's Guide.  2 PURGE_CommandA Deletes all but the highest version of specified dictionary objects. Format $ [ path-name [,...] ]4 PURGE [ ALL ] [KEEP [=] n]$ [ ]  3 Arguments  path-name @ Specifies the object you want to purge. The path name mustD include the name of a domain, record, procedure, or table. TheF @path name cannot contain a version number or a semicolon. If youF do not specify a path name, DEC DATATRIEVE purges all objects inG your default dictionary directory. PURGE accepts both DMU and CDO style path names.   ALL E Purges all the definitions in the default dictionary directory. ALL is the default.  KEEP [=] n G Specifies the number of versions of each object you want to keep.B The number must be greater tAhan zero. The default is KEEP=1.  3 ExamplesG The following example shows how PURGE deletes all but the highest; versions of objects in a user's DMU format directory:  DTR> SHOW ALL Domains:> * FAMILIES;3 * FAMILIES;2 * FAMILIES;1 * OWNERS;2@ * OWNERS;1 * PETS;2 * PETS;1 * PROJECTS;3> * PROJECTS;2 * PROJECTS;1 * YACHTS;5 * YACHTS;4  Records:G * FAMILY_REC;2 * FAMILY_REC;1 * OWNER_RECOBRD;2 * OWNER_RECORD;1@ * PET_REC;1 * PROJECT_REC;1 * YACHT;2 * YACHT;1 5 The default directory is CDD$TOP.DTR$USERS.BELL! No established collections. No ready sources. No loaded tables. DTR> PURGE DTR> SHOW DOMAINS, RECORDS Domains:@ * FAMILIES;3 * OWNERS;2 * PETS;2 * PROJECTS;3 * YACHTS;5 Records:C * FAMILY_REC;2 * OWNER_RECORD;2 * PET_REC;1 * PROJECT_REC;1 * YACHT;2 C DTR> D The following example shows the error message generated if youD specify a dictionary directory as the final object in the pathE name. It then shows how PURGE works with the path name and KEEP arguments.  DTR> SHOW DICTIONARY5 The default directory is CDD$TOP.DTR$USERS.BELL ' DTR> PURGE CDD$TOP.DTR$USERS.BELLJ Element "CDD$TOP.DTR$USERS.BELL" is not a Domain, Record, Procedure, or Table.H No objects purged foDr dictionary element "CDD$TOP.DTR$USERS.BELL".  DTR> SHOW RECORDS  Records:G * FAMILY_REC;4 * FAMILY_REC;3 * FAMILY_REC;2 * FAMILY_REC;1H * OWNER_RECORD;2 * OWNER_RECORD;1 * PET_REC;1 * PROJECT_REC;1" * YACHT;2 * YACHT;1 9 DTR> PURGE CDD$TOP.DTR$USERS.BELL.FAMILY_REC KEEP=2 DTR> SHOW RECORDS Records:H * FAMILY_REC;4 * FAMILY_REC;3 * OWNER_RECORD;2 * OWNER_RECORD;1A * PET_REC;1 * PROJECT_REC;1E * YACHT;2 * YACHT;1 DTR>  2 QUERY_HEADER_ClauseE Specifies the column header DEC DATATRIEVE uses when it formatsE the display of a field value for the PRINT statement or for theE Report Writer AT and PRINT statements. If you omit this clause,E DEC DATATRIEVE uses the field name as the default column header when printing this field. Format 6 QUERY_HEADER [IS] {"header-segment"} [/...]  3 ArgFument   "header-segment" C Is the column header displayed above a column of data. If youG specify only one character string literal, that string is printedA on one line above the column. You can specify more than oneD character string literal by separating each from the next withA a slash (/). The literals are printed on successive lines, centered above the column.  3 ExamplesE The following example shows how to set up Ga record so that whenG the DISPLACEMENT field is displayed, a column header of WEIGHT is used:  06 DISPLACEMENT PIC 99999* QUERY_HEADER IS "WEIGHT"' EDIT_STRING IS ZZ,ZZ9% QUERY_NAME IS DISP. 9 DEC DATATRIEVE prints the column header as follows: WEIGHT E The following example shows how to set up a record so that whenE the LENGTH_OVER_ALL field is printed, a column header of LHENGTH1 (IN FEET) is printed on two separate lines: 06 LENGTH_OVER_ALL PIC XXX/ QUERY_HEADER IS "LENGTH" /"(IN FEET)". 9 DEC DATATRIEVE prints the column header as follows:  LENGTH (IN FEET) E The following example shows how to set up a record so that whenE the LENGTH_OVER_ALL field is printed, a column header of Length8 Over All ("LOA") is printed on two separate lines: 06 LENGTH_OVER_ALL PIC XXX7 QUEIRY_HEADER IS "Length Over All"/"(""LOA"")". 9 DEC DATATRIEVE prints the column header as follows:  Length Over All ("LOA") E The following example shows how to set up a record so that whenE the LENGTH_OVER_ALL field is printed, a 3-line column header is' printed with one letter per line: 06 LENGTH_OVER_ALL PIC XXX% QUERY_HEADER IS "L"/"O"/"A". 9 DEC DATATRIEVE prints the column header as follows:  J L O A  2 QUERY_NAME_Clause5 Specifies an alternate name for the field name. Format $ QUERY_NAME [IS] query-name  3 Argument  query-name E Is the query name. The rules for forming and using a query name- are the same as those for a field name.  3 ExamplesE The following example shows how to set up a record so that DISPA is defined as an alternate name for the KDISPLACEMENT field:  06 DISPLACEMENT PIC 99999 QUERY_NAME IS DISP. @ The following example shows how to set up a record so that? SPECS is defined as an alternate name for the group field SPECIFICATIONS:  03 SPECIFICATIONS QUERY_NAME SPECS. @ The following example shows how to set up a record so that? a query name of SPECIAL_HANDLING is defined for the field DELINQUENT_ACCOUNT_STATUS: " 09 DELINLQUENT_ACCOUNT_STATUS PIC X( QUERY_NAME IS SPECIAL_HANDLING.  2 READY_CommandD Gives you access to one or more domains, relations, databases,E or record types and controls the access of other users to thoseG domains or databases. You can also use the READY command to readyG a domain or database again in order to change your access mode or access option.  Format 1 ; READY domain-path-name [AT node-spec] [AS aliasM-1] [ PROTECTED ] [ READ ]1 [ ] [ WRITE ] [ CONSISTENCY ]7 [ SHARED ] [ MODIFY ] [ CONCURRENCY ][,...]1 [ EXCLUSIVE ] [ ] [ ] [ EXTEND ]  [SNAPSHOT]  Format 2 ! READY database-path-name  [SNAPSHOT]! [PROTECTED ] [ READ ]1 [ ] [ WRITE ] [ CONSISTENCY ]1 [SHARED ] [ MODIFY ] [ CONCURRENCY ]1 N [EXCLUSIVE ] [ ] [ ]! [ EXTEND ] < [ { rdb-relation-name } ]< [USING { dbms-record-name } [ AS alias ] ]< [ { } ]< [ [SNAPSHOT] ]B [ ][,...]< [ [ PROTECTED ] [READ ] ]< [ [ ] [WRITE O ] [CONSISTENCY ] ]< [ [ SHARED ] [MODIFY ] [CONCURRENCY ] ]< [ [ EXCLUSIVE ] [ ] [ ] ]< [ [EXTEND ] ]  3 Arguments   domain-path-name F Is the dictionary path name of a domain to which you want accessA or the domain table whose access option you want to change.  node-spec B Is the name of a node and an optional access control sPtring. A A node name is a 1- to 6-character name that identifies the> location on the network. Examples are BIGSYS and LILSYS. D An access control string indicates a particular account on theF remote node. It consists of a user name, followed by one or more? blanks or tabs, a password, and an optional account name. 8 The following three node specifications are valid: BIGSYS BIGSYS"MORRISON RYLE" BIGSYS"MORRISON RYLE KANT" Q F On DECnet links to some non-OpenVMS systems, you can use the UIC4 number in place of the user name. For example:  BIGSYS"[240,240] RYLE"! BIGSYS"[240,240] RYLE KANT" A In the examples, the remote node is BIGSYS the user name isC MORRISON, the UIC is [240,240], the password is RYLE, and the account name is KANT. F You can also use a prompting value expression to prompt the userC for the user name, password, account name,R or UIC. Use single9 quotation marks for the prompt string. For example: 1 DTR> READY CDD$TOP.DTR32.MORRISON.YACHTS AT0 CON> BIGSYS"*.'username' *.'password'" Enter username: MORRISON Enter password: DTR>   alias A Is a name you use if you include the AS clause in the READYF command to refer to the domain, relation, or Oracle CODASYL DBMSD record specified. You use the alias in place of the given nameF of t She domain, relation, or Oracle CODASYL DBMS record where theF syntax of a statement calls for that domain, relation, or OracleF CODASYL DBMS record name. If you are using an alias for a domainD name, do not use the alias in full or relative dictionary path names.   database-path-name @ Is the Oracle CDD/Repository path name defined for the DECC DATATRIEVE definition of the Oracle CODASYL DBMS, Oracle Rdb,D VAX Rdb/ELN, or DEC DB Integrato Tr Gateway database, or for theG relational database definition created by Oracle Rdb. It can alsoE be a CDD$DATABASE object. If you ready a Oracle CODASYL DBMS orC relational database without specifying any relation or recordC names, DEC DATATRIEVE readies all relations or records in the@ database. READY accepts both DMU and CDO style path names.   relation-name > Is the name assigned to the relation when the relationalB database was creUated. The relation name can be the name of a view relation.   record-name E Is the name assigned to the Oracle CODASYL DBMS record when the database was created.  SNAPSHOT C Are the options you can select to control the access of otherD users to a domain, relation, or Oracle CODASYL DBMS record youF ready. The specific constraints are explained in Access Options:  Table 1-6 Access Options # Option V Access Constraints E SNAPSHOT SNAPSHOT is a READ access for databases that takes aG "picture" of the database when it is readied. In orderB to have SNAPSHOT access, all relations or records@ pertaining to the database must be readied withD SNAPSHOT access. Any other user can access the sameF database with any access mode and option. In general,B you do not see other users' changes u Wntil the endE of the transaction. If you use SNAPSHOT with anotherF option, such as CONCURRENCY, you may see other users'G changes, depending on the database system. SNAPSHOT isE the default for relational databases, relations, and5 domains based on relational sources.G PROTECTED Any other user can have only READ access to records inF the domain or relation. No other user can have WRITE,F X MODIFY, or EXTEND access to the records in the domainD or relation. This option is the default for domainsC containing records from RMS files and for all view domains.> SHARED Any other user can have access to the domain,B database, relation, or Oracle CODASYL DBMS recordB at the same time, in any access mode. This option@ is the default for Oracle CODASYL DBMS domains,B Y Oracle CODASYL DBMS databases, and Oracle CODASYL DBMS records.G EXCLUSIVE No other user can have access to the domain, database,D relation, or Oracle CODASYL DBMS record at the sameD time, in any access mode. If the domain is based onF a RMS file, the file containing the data is locked by RMS.   READ E Are the options you can select to request a mode of access to ZaE domain, database, relation, or Oracle CODASYL DBMS record. WhenG using Format 1, whether you get that mode of access is determinedE by privileges assigned to you in the access control list of theF domain. When using Format 2, whether you get that mode of accessG is determined by privileges assigned to you in the access control& list of the database definition. @ When you are using either Format 1 or Format 2 and you areF accessing a Oracle C [ODASYL DBMS or relational database, you mustB also have appropriate privileges in the Oracle CODASYL DBMS,C Oracle Rdb or VAX Rdb/ELN access control lists to request theF access mode you select. For Oracle CODASYL DBMS, you need accessB to the schema, subschema, record and DEC DATATRIEVE database) definitions in the data dictionary.   CONSISTENCY A Are the options you can select to determine whether you canD see changes made by other user \s to the data you are accessing.F CONSISTENCY guarantees that while you are accessing data, you do* not see updates made by other users. D CONCURRENCY allows you to see other users' updates to the data you are accessing. F CONSISTENCY is the DEC DATATRIEVE default for the first ready of a relational source. F Once you specify CONSISTENCY or CONCURRENCY, that option becomesF the default until you change the option in a subsequent ready or] you finish the database. D Multi-User Access to Domains Based on RMS Files summarizes theB effects of various combinations of access options and access+ modes for domains based on RMS files. ? Table 1-7 Multi-User Access to Domains Based on RMS Files & Another User Your( Can Then Effect* You Ready a Ready the on OtherF Domain Domain Users Other Users'Effect on You 7 ^ EXCLUSIVE No access. No one No effect.* READ else can* EXCLUSIVE read the' WRITE file.7 PROTECTED PROTECTED No one No effect.* READ READ else can' SHARED READ write( to the' file.7 PROTECTED SHARED READ No one No effect.* WRITE _ else can' write( to the' file.D SHARED READ PROTECTED No one Users with WRITE accessG READ with may change records you areB PROTECTED WRITE reading or have read.( WRITE access% SHARED READ can( SHARED WRITE select& ` your* selected) record.D SHARED WRITE SHARED READ No one You cannot write to theC SHARED WRITE else can selected record of anyC modify other user. You cannotG your write to the target recordA selected of a MODIFY or ERASEA record statement ent aered byC or the a SHARED WRITE user. AG target SHARED WRITE user can alsoG record write to a record you have; of your just modified.( MODIFY* or ERASE( state-' ment.) You can* b modify a( record) another& user* has just' modi-' fied. D When two applications try to access the same domain based on aB RMS file, RMS may lock a record that DEC DATATRIEVE needs toD access. DEC DATATRIEVE then tries for 12 seconds to access t cheD record. At the end of this period, DEC DATATRIEVE takes one ofC two actions, depending on whether SET LOCK_WAIT is in effect. B o If SET NO LOCK_WAIT is in effect, you receive an RMS$_RLKE message: "Target record currently locked by another stream."F Then DEC DATATRIEVE aborts the statement. SET NO LOCK_WAIT is the default. D o If SET LOCK_WAIT is in effect, DEC DATATRIEVE turns controlB over to RMS to wait for the record. d You cannot use CTRL/CD to cancel the wait. RMS waits until the record is released,D or, in case of deadlock, you receive the RMS deadlock error message. D The LOCK_WAIT setting applies to all sources, including OracleG CODASYL DBMS and relational databases which are readied after theG SET LOCK_WAIT command is issued. NO LOCK_WAIT was selected as theD default for DATATRIEVE because it is the RMS default. However,D NO LOCK_WAIT is not al eways the recommended mode for relationalB access. LOCK_WAIT is required for DEC DB Integrator Gateway. C Multi-User Access to Oracle CODASYL DBMS, Oracle Rdb, and VAXG Rdb/ELN Sources summarizes the effects of various combinations ofE access options and access modes for Oracle CODASYL DBMS domains: and Oracle Rdb or VAX Rdb/ELN domains and relations. E Table 1-8 Multi-User Access to Oracle CODASYL DBMS, Oracle Rdb,' and VAX Rdb/ELN Sourfces  Another You Ready User Can a Domain, Then Ready Database, the Domain,& Relation, Database, Your( Oracle Oracle Effect* CODASYL CODASYL on OtherG DBMS Record DBMS Record Users Other Users' Effect on You 7 EXCLUSIVE No access. No one No effect.* READ else can* EXCLUSIVE read the' WRITE g realm* or rela-' tion.7 PROTECTED PROTECTED No one No effect.* READ READ else can' SHARED READ write( to the' realm* or rela-' tion.C PROTECTED SHARED READ No one You may encounter readG WRIT hE else can locks other users have putE write on a record when you try: to the to modify it.' realm( or re-) lation.' Other' users) may en-) counter' i write' locks( during& your* transac-' tion.D SHARED READ PROTECTED A SHARED You may encounter writeA READ WRITE locks during another@ PROTECTED user user's transaction.* WRITE may have) j SHARED READ to wait' SHARED WRITE until% you) release& your& read( locks.C SNAPSHOT for With any No You do not see changesD Oracle Rdb access and effect other users make to theG or VAX Rdb mode. on database until a COMMIT orC /ELN domai kns users. ROLLBACK is performed. and Oracle CODASYL DBMS recordsG SHARED WRITE SHARED READ Other You may encounter read andG SHARED WRITE users write locks during another@ may en- user's transaction.) counter* read and' write' locks( l during& your* transac-' tion.  3 ExamplesG The following example readies the domain YACHTS for WRITE access:  DTR> READY YACHTS WRITE @ The following example readies the domain PHONES for EXTEND access: " DTR> READY PHONES (*) EXTEND Enter password for PHONES: DTR> B The following exammple defines a domain with the prompt builtE into the domain definition. DEC DATATRIEVE does not display the password: ? DTR> DEFINE DOMAIN PROMPT_YACHTS USING YACHT(*) ON YACHT;& DTR> READY PROMPT_YACHTS AS PYTS Enter password for YACHT: DTR> G The following example readies the relations EMPLOYEES and SALARY_G HISTORY in the Oracle Rdb database PERSONNEL for SNAPSHOT access: : DTR> READY PERSONNEL USING EMPLOYEES, SALAnRY_HISTORY DTR> F The following example readies the SALARY_HISTORY relation in theD Oracle Rdb database PERSONNEL for SHARED WRITE access with the CONCURRENCY option: H DTR> READY PERSONNEL SHARED WRITE USING SALARY_HISTORY CONCURRENCY B The following example readies the Oracle CODASYL DBMS domain6 VENDORS for the default access mode SHARED READ:  DTR> READY VENDORS DTR>  2 RECONNECT_StatementG Removes a orecord from the set occurrence in which it participatesE and connects it to the set occurrence specified by the TO list.A Before the RECONNECT is performed, DEC DATATRIEVE sets up a? currency indicator for each set specified in the TO list. Format ! RECONNECT context-name-1 4 [TO] [context-name-2. ] set-name-1 [,...]  3 Arguments   context-name-1 > Is the name of a valid context variable or the nam pe of aD collection with a selected record. The target record must be a2 member of the sets specified by the TO list.   context-name-2 > Is the name of a valid context variable or the name of aG collection with a selected record. It must identify a record thatD participates in the specified set. If the SYSTEM owns the set,G you do not need to establish a context for the set. If the set isF not owned by the SYSTEM and the context name is noqt present, DECG DATATRIEVE uses the most recent single record context of a domainE with a record type that participates in the specified set type.  set-name Is the name of a set type.  3 Example? The following example uses nested FOR loops to create the< necessary contexts. The procedure uses prompting value3 expressions to get information from the user. ' DTR> DEFINE PROCEDURE NEW_MANAGERF DFN> FOR G IN GROUrPS WITH GROUP_NAME = *."the name of the group"+ DFN> FOR E IN EMPLOYEES WITH EMP_ID =( DFN> *."the id of the new manager"# DFN> RECONNECT G TO E.MANAGES DFN> END_PROCEDURE DTR>  2 REDEFINE_Command) Creates a new version of an object. Format  { DATABASE } { DOMAIN } { PORT }* REDEFINE { } definition { PROCEDURE } s { RECORD } { TABLE } { }  3 Argument  definition E Is the path name of the definition and any other keywords, pathF names, or arguments that an object takes. (For an explanation of? these arguments, see the DEFINE command for each object.)  3 ExamplesA The following example redefines the domain YACHTS using the> record definition YACHT and storing the datat in the file DB2:[SMYTHE]YACHT.DAT:  DTR> SHOW DOMAINS Domains: * YACHTS;1 ! DTR> REDEFINE DOMAIN YACHTS0 DFN> USING YACHT ON DB2:[SMYTHE]YACHT.DAT;  DTR> SHOW DOMAINS Domains:$ * YACHTS;2 * YACHTS;1  2 REDEFINES_Clause2 Provides an alternate way to define a field. Format 7 level-no field-name-1 REDEFINES field-name-2  3 Arguments  l uevel-no E Is the level number of field-name-1. Although not a part of theB REDEFINES clause, the level number is shown in the format to2 clarify its position relative to the clause.   field-name-1 D Is the name of the REDEFINES field. You use this name when youG want to refer to this field. Although not a part of the REDEFINESB clause, the field name is shown in the format to clarify its7 function and its position relative to the clvause.   field-name-2 / Is the name of the field being redefined.  3 ExampleG The following record definition shows a redefinition of the fieldG PART_NUMBER. PART_NUMBER is a numeric field containing 10 digits.C Two group fields redefine PART_NUMBER: PART_NUMBERS_PARTS andC PART_NUMBER_GROUPS. Each redefinition specifies a group fieldD containing a total of 10 digits (the total number of digits in all subordinate fields):w  05 PART_NUMBER PIC 9(10)1 05 PART_NUMBER_PARTS REDEFINES PART_NUMBER.! 07 PRODUCT_GROUP PIC 99. 07 PRODUCT_YEAR PIC 99. 07 ASSEMBLY_CODE PIC 9. 07 SUB_ASSEMBLY PIC 99. 07 PART_DETAIL PIC 999.2 05 PART_NUMBER_GROUPS REDEFINES PART_NUMBER.& 07 PRODUCT_GROUP_ID PIC 9(4).$ 07 PART_DETAIL_ID PIC 9(6). D In this example, the field PRODUCT_GROUP refers to the lowest-G valued digits of PART_NUMBER; xPRODUCT_YEAR refers to the next two& lowest-valued digits, and so on.  2 REDUCE_StatementC Retains only the unique field values or combinations of fieldG values in a DEC DATATRIEVE collection, dropping all other values,4 depending on the reduce key or keys specified. Format ; REDUCE [collection-name] TO reduce-key-1 [,...]  3 Arguments   collection-name A Is the name of a collection from whichy you want to retrieve# unique occurrences of values.  reduce-key C Is a field whose values form the basis for the reduction. YouC can also use a value expression as a reduce key, if the valueD expression refers to at least one field of the records forming the collection. 3 Use a comma to separate multiple reduce keys.  3 ExamplesG The following example searches through the YACHTS domain and, forD each type zof RIG, lists the prices of all boats that cost over $35,000: % DTR> DEFINE PROCEDURE RIG_QUERY DFN> FIND YACHTS DFN> REDUCE CURRENT TO RIG4 DFN> PRINT SKIP, RIG, ALL PRICE OF YACHTS WITH> DFN> PRICE GT 35000 AND RIG = Y.RIG OF Y IN CURRENT DFN> END_PROCEDURE DTR> :RIG_QUERY  RIG PRICE  KETCH $36,951 $51,228 $41,350 $39,500 $36,950 $54,970{ $50,000 $80,500  MS $35,900  SLOOP $37,850 $39,215 $37,850 $48,490 DTR> . Note the format of this PRINT statement: 8 PRINT print-list, ALL print-list OF rse-1 OF rse-2 G RSE-1 is: ALL PRICE OF YACHTS WITH PRICE GT 35000 AND RIG = Y.RIG RSE-2 is: Y IN CURRENT E RSE-2 controls the printing of the first print list (SKIP, RIG)G and RSE- |1 controls the printing of the second print-list (PRICE). D You can use the REDUCED TO statement to match values of a date# field for the month and year. A The following example uses the domain PAYABLES described inC the DEC DATATRIEVE User's Guide. Records in PAYABLES have theE same TYPE field as in YACHTS, a date field (INVOICE_DUE), and aG field for wholesale price (WHSLE_PRICE). The example shows how toE display the records in PAYABLES wher }e INVOICE_DUE is later thanG January 1, 1983. The records are separated according to the monthD they are due. The REDUCED TO statement is used to identify theD unique values of month and year for PAYABLES. Then the records/ are searched for matches to these values.  DTR> SHOW MONTHLY_RPT PROCEDURE MONTHLY_RPT READY PAYABLES8 FIND PAYABLES WITH INVOICE_DUE AFTER "JAN 1, 1983"5 REDUCE CURRENT TO FORMAT INVOICE_DUE USING YYNN FOR ~A IN CURRENT BEGIN9 PRINT SKIP, "Invoices Due for the Month of"|||2 FORMAT A.INVOICE_DUE USING M(9), SKIP< FOR PAYABLES WITH FORMAT INVOICE_DUE USING YYNN =B FORMAT A.INVOICE_DUE USING YYNN SORTED BY INVOICE_DUE/ PRINT INVOICE_DUE, TYPE, WHSLE_PRICE END END_PROCEDURE  DTR> :MONTHLY_RPT + Invoices Due for the Month of January + INVOICE WHSLE+ DUE  VENDOR ITEM_TYPE PRICE , 1/02/83 ALBERG 37 MK II $28,500, 1/25/83 SALT 19 $4,850, 1/31/83 AMERICAN 26-MS $15,150 , Invoices Due for the Month of February , 2/12/83 WINDPOWER IMPULSE $1,500) . . . .) . . . .) . . . . ) Invoices Due for the Month of April , 4/01/83 BAYFIELD 30/32  $13,000, 4/01/83 IRWIN 37 MARK II $29,999, 4/15/83 ALBIN VEGA $14,250 DTR>  2 RELEASE_CommandG Ends your control over one or more collections, forms, tables, or@ global variables and frees the workspace occupied by them. Format $ [ ALL ]$ [ collection-name ], RELEASE [ form-name ] [,...]$ [ table-name ]$ [  ]$ [ variable-name ]  3 Arguments   ALL B Causes DEC DATATRIEVE to release all collections, tables, or variables.  form-name A Is the name of a form, a collection, a dictionary or domainC table, or a variable you want to release. If you specify more@ than one item, use a comma to separate each from the next.  3 Examples; The following example releases first one of two named" collections, then the other:  DTR> SHOW COLLECTIONS Collections:' BIG-ONES (CURRENT) A  DTR> RELEASE BIG-ONES DTR> SHOW COLLECTIONS Collections:' A (CURRENT)  DTR> RELEASE A DTR> SHOW COLLECTIONS! No established collections. DTR> D The following example releases the dictionary table DEPT-TABLE' and the global variables X and Y:  DTR> SHOW READY No ready sources.  Loaded tables:$ DEPT_TBL: Dictionary table(   DTR> SHOW VARIABLES Global variables0 X 1 Declared as: X REAL MISSING VALUE IS 36. 0 Y ! Declared as: Y PIC X(9). ! DTR> RELEASE DEPT_TBL, X, Y % DTR> SHOW READY; SHOW VARIABLES  No ready sources. No loaded tables.' No global variables are declared. DTR> G The following example uses the RELEASE ALL command to release theD collections LITTLE_ONES and B, and also the global variables T and TERRY:  DTR> SHOW COLLECTIONS Collections:' B (CURRENT) LITTLEONES  DTR> SHOW VARIABLES Global variables$ T  Declared as: T DATE. 0 TERRY % Declared as: TERRY PIC X(9).  DTR> RELEASE ALL DTR> SHOW COLLECTIONS! No established collections.  DTR> SHOW VARIABLES' No global variables are declared. DTR>  2 RELEASE_SYNONYM_Command? Releases the definition of a synonym for a DEC DATATRIEVE keyword. Format 0 RELEASE SYNONYM synonym-name-1 [,...]  3 Argument   synonym-name @ Is a synonym already defined for a DEC DATATRIEVE keyword.  3 ExampleD The following example defines synonyms for PRINT and READY and, then releases the synonym definitions: 3 DTR> DECLARE SYNONYM P FOR PRINT, R FOR READY% DTR> R OWNERS; P FIRST 1 OWNERS  BOAT5 NAME NAME BUILDER MODEL 0 SHERM MILLENNIUM FALCON ALBERG  35  DTR> RELEASE SYNONYM R, P DTR> R YACHTS R YACHTS * Expected statement, encountered "R". DTR> P OWNERS P OWNERS * Expected statement, encountered "P". DTR>  2 REPEAT_Statement? Causes DEC DATATRIEVE to execute a simple or compound DEC7 DATATRIEVE statement a specified number of times. Format + REPEAT value-expression statement  3 Arguments   value-expression E Is a value expression indicating the number of times to executeF the statement. This argument must evaluate to a positive integer* less than or equal to 2,147,483,647.  statement B Is any simple or compound DEC DATATRIEVE statement (except a- FIND, SELECT, DROP, or SORT statement).  3 Examples; The following example prints TEST REPEAT three times: ' DTR> REPEAT 3 PRINT "TEST REPEAT" TEST REPEAT TEST REPEAT TEST REPEAT DTR> F The following example aborts a REPEAT statement by responding to a prompt with a CTRL/Z:  DTR> READY YACHTS WRITE DTR> REPEAT 5 STORE YACHTS Enter MANUFACTURER: HOBIE Enter MODEL: CAT Enter RIG: SLOOP Enter LENGTH-OVER-ALL: 22 Enter DISPLACEMENT: 4000 Enter BEAM: 8 Enter PRICE: 6500" Enter MANUFACTURER: & Execution termin ated by operator- DTR> FIND YACHTS WITH BUILDER = "HOBIE" [1 record found] DTR> > The following example shows the effect of nesting REPEATE statements in procedures. The procedure NUM1 contains two PRINTD statements. The procedure NUM2 contains two REPEAT statements,@ one nested in the other. The inner REPEAT statement causesA DEC DATATRIEVE to execute the first PRINT statement in NUM1C twice each time DEC DATATRIEVE loops through the outer REPEAT statement:  DTR> SET NO PROMPT DTR> SHOW NUM1# PRINT SKIP, "ONE, TWO, THREE") PRINT "ONE, TWO, THREE, FOUR, FIVE"  DTR> :NUM1  ONE, TWO, THREE ! ONE, TWO, THREE, FOUR, FIVE  DTR> SHOW NUM2 REPEAT 2 BEGIN REPEAT 2 :NUM1 END :NUM1  DTR> :NUM2  ONE, TWO, THREE  ONE, TWO, THREE! ONE, TWO, THREE, FOUR, FIVE   ONE, TWO, THREE  ONE, TWO, THREE! ONE, TWO, THREE, FOUR, FIVE  ONE, TWO, THREE! ONE, TWO, THREE, FOUR, FIVE DTR>  #2 REPORT_Statement_(Report_Writer)B Invokes the Report Writer and is the first entry in a report@ specification. In the REPORT statement you can specify the following: $ o The data you want to report ) o The output device for the report ) o The output format for the report E The other statements in the report specification are AT BOTTOM,G AT TOP, DECLARE_ATT, END_REPORT, PRINT, and SET. These statements9 are discussed in separate sections of this chapter. Format * [ {file-spec } ]? REPORT [rse] [ ON {*.prompt } ] [FORMAT format-spec]* [ { } ]  3 Arguments   rse G Specifies the data for your report. To create a record stream forE your report, enter the appropriate RSE in the REPORT statement.+ You can make reports using data from:  o Readied domains  o Collections  o Lists ? When you omit the RSE, the Report Writer uses the data inD your current collection for the report. If there is no currentF collection, DEC DATATRIEVE displays the following error message: 4 A current collection has not been established.   file-spec C Is the file to which you want to write the report. A complete2 file specification has the following format: 9 node-spec::device:[directory]file-name.type;version   format_spec ? Is the format in which you want the report presented. The& following formats are supported: 9 FormatExplanation Output type 2 DDIF The CDA format for page-based page( documents. DDIF allows files) produced by the Report Writer% to be processed directly,% for example, by DECwrite,( DECpresent, or conversion to other formats.2 PS PostScript[R], produced by page* conversion from DDIF to obtain" high quality printout.2 null The default ASCII format page* produced by the Report Writer.# Format encoded as ASCII characters.2  TEXT Format encoded as ASCII page( characters, with ANSI escape* sequences that produce certain' attributes on terminals and printers.3 DTIF The CDA format for tables. DTIF table( allows files produced by the) Report Writer to be processed% directly, for example, by% DECdecision, DECchart, or( conversion to other formats.  *.prompt B Is a prompting value expression that allows you to specify aA file specification when DEC DATATRIEVE processes the report specification.  3 ExampleG For examples of the PRINT statement in the Report Writer, see the" DEC DATATRIEVE User's Guide.  2 Restructure_StatementE Transfers data from the fields of records in a record stream to6 fields with the corresponding names in a domain. Format  domain-name = rse   3 Arguments   domain-name ? Is the given name or alias of a domain readied for EXTENDA or WRITE access. That domain receives data from the records identified by the RSE.   rse E Is an RSE that identifies records containing one or more fieldsA corresponding to fields of the same name in the domain that receives the data.  3 ExamplesA The following example defines a new domain using FAMILY_RECE and stores only those records of families that have no children younger than 15: : DTR> DEFINE DOMAIN NEWFAMS USING FAMILY_REC ON FAMS;: DTR> DEFINE FILE FOR NEWFAMS MAX, KEY = MOTHER (DUP)> DTR> NEWFAMS = FAMILIES WITH NOT ANY KIDS WITH AGE LE 15 DTR> FIND NEWFAMS [8 records found] DTR> FIND FAMILIES [16 records found] DTR> E The following example defines a new domain called YACHTS_PRICE_F LIST, which contai ns only the fields TYPE and PRICE from the oldC YACHT record definition. The number of records transferred isF checked with the FIND statement and the accuracy of the transferD is checked with the CROSS statement. The example displays someE of the records from the new domain to check the presence of the MISSING VALUE edit string. D DTR> DEFINE DOMAIN YACHTS_PRICE_LIST USING YPL_REC ON YPL.DAT;& DTR> DEFINE RECORD YPL_REC USING DFN> 01 BOAT.  DFN> 03 TYPE.& DFN> 05 BUILDER PIC X(10).# DFN> 05 MODEL PIC X(8).2 DFN> 03 PRICE PIC 9(5) MISSING VALUE IS 02 DFN> EDIT_STRING $$$,$$$?"NOT LISTED". DFN> ; [Record is 23 bytes long.]7 DTR> DEFINE FILE FOR YACHTS_PRICE_LIST KEY = TYPE/ DTR> READY YACHTS_PRICE_LIST AS YPL WRITE DTR> READY YACHTS DTR> SHOW READY Ready domains:5 YACHTS: Domain, RMS indexed, protected read- <CDD$TOP.DTR32.WAJ.YACHTS;1>3 YPL: Domain, RMS indexed, protected write8  No loaded tables. & DTR> YPL = YACHTS WITH LOA GT 35% DTR> FIND YACHTS WITH LOA GT 35 [23 records found] DTR> FIND YPL [23 records found]/ DTR> FIND A IN YPL CROSS B IN YACHTS OVER [Looking for field name]' CON> TYPE WITH A.PRICE NE B.PRICE [0 records found]& DTR> FIND YPL WITH PRICE MISSING [12 records found] DTR> PRINT FIRST 3 CURRENT ! BUILDER MODEL PRICE $ BLOCK I. 40 NOT LISTED$ CABOT 36 NOT LISTED$ DOWN EAST 38 NOT LISTED DTR> F The following example uses the Restructure statement to transfer5 data from an indexed file to a sequential file:  DTR> SET NO PROMPT DTR> READY YACHTS AS OLD! DTR> DEFINE FILE FOR YACHTS$ DTR> READY YAC HTS AS NEW WRITE DTR> NEW = OLD DTR> FIND NEW [113 records found] DTR> = If the field has a DEFAULT VALUE clause, DEC DATATRIEVEF initializes the field with the default value. If the field has aF MISSING VALUE clause and no DEFAULT VALUE clause, DEC DATATRIEVED initializes the field with the missing value. If the field hasD neither a DEFAULT VALUE clause nor a MISSING VALUE clause, DECF DATATRIEVE initializes a numeric field as 0 and an alphabetic or# alphanumeric field as spaces.  2 ROLLBACK_StatementD Undoes all the changes you made to the database since the lastD COMMIT or ROLLBACK statement, or since your first READY if youB have not done a ROLLBACK or a COMMIT. The ROLLBACK statement? performs a Oracle CODASYL DBMS or relational rollback andB releases all collections associated with Oracle CODASYL DBMSD domains and records and with relational domains and relations. ? ROLLBACK then readies Oracle CODASYL DBMS realms again or> finishes and starts a new relational source transaction. A The ROLLBACK statement also acts as an ABORT in procedures,+ nested statements, and command files. @ The ROLLBACK statement affects all readied parts of OracleD CODASYL DBMS and relational databases, whether or not you madeF any changes to the data they contain. Domains based on RMS files1 are not affected by the ROLLBACK statement. Format  ROLLBACK  3 Example@ The following example for the Oracle CODASYL DBMS databaseD PARTS_DB connects an employee named Hill to a part LA36 in theD RESPONSIBLE_FOR set. The ROLLBACK statement undoes the change: : DTR> FIND E IN EMPLOYEES WITH EMP_LAST_NAME = "HILL" DTR> SELECT 10 DTR> FOR P IN PART WITH PART_DESC = "LA36"- CON> CONNECT P TO E.RESPONSIBLE_FOR DTR> ROLLBACK DTR>  2 SCALE_ClauseB Establishes explicitly the scale factor to be applied to the value stored in the field. Format  SCALE [IS] [-]integer  3 Arguments   - (minus sign) D Is an optional minus sign to indicate a negative scale factor.  integer F Indicates the number of decimal places the implied decimal pointE is from the right or left end of the value stored in the field.  3 ExamplesC The following example uses a positive scale factor to store a$ large number in a small field:  03 BARRELS_PER_DAY WORD SCALE 6$ EDIT_STRING Z(5)" Million". C The following example uses a negative scale factor to store a% minute number in a small field:  03 PROJECT.% 05 PROBABILITY_OF_FINISHING.& 07 EVER DEFAULT VALUE IS 1 PIC 99 SCALE -2." 07 ON_TIME 99 SCALE -6 MISSING VALUE 0; EDIT_STRING 0.9(6)?"Better late than never".  2 SELECT_Statement2 Establishes a target record in a collection. Format $ [ FIRST ]$ [ NEXT ]$ [ PRIOR ]E SELECT [ ] [collection-name] [WITH boolean]$ [ LAST ]$ [ value-expression ]$ [ NONE  ]$ [ ]  3 Arguments   FIRST 8 Selects the first record in the target collection.   NEXT G Selects the next record in the target collection. (See the secondG and third items in the Results section.) When you omit a position) specification, NEXT is the default.   PRIOR D Selects the previous record in the target collection. (See the4 fifth and sixth items in the Results section.)   LAST 7 Selects the last record in the target collection.   value-expression E Evaluates to a positive number. DEC DATATRIEVE uses the integerG part of the number to select the record with that position number in the collection.   NONE D Releases the selected record so that no selected record existsE for the current collection. If the collection was formed from aF file-structured database, SELECT NONE also releases the RMS lock on the selected record.   collection-name F Is the name of the target collection containing the record to beF selected. If you omit the collection name, the target collection is the current collection.   WITH boolean D Causes DEC DATATRIEVE to select the record that satisfies bothC the Boolean expression and the collection position references7 (FIRST, LAST, NEXT, PRIOR, and value-expression).  3 ExamplesB The following example selects the last record in the CURRENT collection:  DTR> SELECT LAST DTR> F The following example selects the fifth record in the collection BIG_ONES:  DTR> SELECT 5 BIG_ONES DTR> G The following example selects the last 30-foot boat in the YACHTS, inventory from the CURRENT collection:  DTR> FIND YACHTS [113 records found]% DTR> SELECT LAST WITH LOA = 30 DTR> PRINT + LENGTH* OVER> MANUFACTURER MODEL RIG ALL WEIGHT BEAM PRICE 6 SOLNA CORP SCAMPI SLOOP 30 6,600 10 DTR> = The following example selects a record from the CURRENTC collection, modifies a field value, and releases the selected; record and, in this case, the RMS lock on the record: & DTR> READY YACHTS SHARED MODIFY3 DTR> FIND YACHTS WITH BUILDER = "SOLNA CORP" [1 record found] DTR> SELECT DTR> PRINT + LENGTH* OVER> MANUFACTURER MODEL RIG ALL WEIGHT BEAM PRICE 6 SOLNA CORP SCAMPI SLOOP 30 6,600 10  DTR> MODIFY PRICE Enter PRICE: 50000 DTR> PRINT +  LENGTH* OVER> MANUFACTURER MODEL RIG ALL WEIGHT BEAM PRICE ? SOLNA CORP SCAMPI SLOOP 30 6,600 10 $50,000  DTR> SELECT NONE DTR>  2 SET_Command B o Controls the DEC DATATRIEVE response to ABORT statements. A o Sets the keypad mode (application or numeric) within DEC DATATRIEVE. G o Sets the maximum number of columns per page for DEC DATATRIEVE output. 9 o Establishes your default directory in the Oracle( CDD/Repository data dictionary. G o Determines whether DEC DATATRIEVE creates a DTREDIT.DTR backup/ file when you edit dictionary objects. F o Determines whether DEC DATATRIEVE uses its forms interface to4 control the video display of your terminal. * o Starts DEC DATATRIEVE Guide Mode. D o Determines whether DEC DATATRIEVE recognizes null values of relational databases. E o Permits or inhibits automatic syntax prompting for continued! commands and statements. @ o Permits or inhibits creation of an implicit inner printC list in a PRINT statement and an implicit ANY in a Boolean expression. F o Determines whether a semicolon is required at the end of each command or statement. F o Controls whether commands and statements in command files are3 displayed when the command file is invoked Format + { [NO] ABORT }+ { [NO] APPLICATION_KEYPAD }+ { COLUMNS_PAGE=n }+ { }+ { [NO] CDD }+ { DICTIONARY path-name }+ { [NO] EDIT_BACKUP }+ { [NO] FORM }+ {  }+ { [NO] GRID }+ { GUIDE [ADVANCED] }+ { KEYDEFS file-spec }3 SET { } [,...]+ { [NO] LOCK_WAIT }+ { [NO] NULLS }+ { PLOTS path-name }+ { }+ { [NO] PROMPT }+ { [NO] SEARCH }+ { [NO] SEMICOLON }+ { }+ { [NO] VARIABLES PROCEDURES }+ { [NO] VERIFY }+ { NOVERIFY }+ { } $ To change settings for HELP: # { [NO] HELP_PROMPT }+ SET { [NO] HELP_WINDOW } [,...]# { HELP_LINES n TO m }# { }  3 Arguments   ABORT  D Causes DEC DATATRIEVE to abort the remainder of a procedure orC command file when DEC DATATRIEVE executes an ABORT statement,F when you enter a CTRL/Z to a prompt, or when a syntax or logicalB error occurs during the execution of a command or statement. @ The exception to the logical error condition is the DELETEC command. If you list two or more objects as arguments for theG DELETE command, DEC DATATRIEVE does not abort if it fails to findF  an object of a specified name. Instead, DEC DATATRIEVE continues2 to delete the remaining objects in the list.  NO ABORT E Causes DEC DATATRIEVE, when processing a procedure or a command? file, to abort only the one statement containing an ABORTD statement. SET NO ABORT also causes DEC DATATRIEVE to take theA same action when you respond with a CTRL/Z to a prompt in aF procedure or command file. DEC DATATRIEVE then executes the nextC command or statement in the procedure or command file. SET NOA ABORT is in effect when you start a DEC DATATRIEVE session.   APPLICATION_KEYPAD G Sets the keypad mode as application keypad within DEC DATATRIEVE. B The default keypad mode for DEC DATATRIEVE is numeric keypad mode. D You can also set the keypad mode using the function FN$KEYPAD_ MODE. F This command is not available in a DECwindows Motif environment.    NO APPLICATION_KEYPAD C Sets the keypad mode as numeric keypad within DEC DATATRIEVE. B The default keypad mode for DEC DATATRIEVE is numeric keypad mode. D You can also set the keypad mode using the function FN$KEYPAD_ MODE. F This command is not available in a DECwindows Motif environment.   COLUMNS_PAGE = n C Establishes the number of columns per page for DEC DATATRIEVEG output and the default  page width for the Report Writer. When youA start your session, the default COLUMNS_PAGE setting is 80. B To set the terminal's width, use the DEC DATATRIEVE function FN$WIDTH.   DICTIONARY path-name E Causes DEC DATATRIEVE to set your default directory node of theD Oracle CDD/Repository data dictionary to the node specified byB the dictionary path name. When you start your DEC DATATRIEVE> session, your default Oracle CDD/Repository directory isD either CDD$TOP or the directory designated by the logical name CDD$DEFAULT. ? SET DICTIONARY accepts both DMU and CDO style path names.   EDIT_BACKUP B Causes DEC DATATRIEVE to save the original definition in theA Oracle CDD/Repository data dictionary when you use the EDITB command to edit a dictionary object. When you start your DECD DATATRIEVE session, SET EDIT_BACKUP is in effect. Use the SHOWE EDIT command to see whether or not SET EDIT_BACKUP is currently in effect.   NO EDIT_BACKUP G Causes DEC DATATRIEVE to delete the highest version of the objectF in the Oracle CDD/Repository data dictionary, or the version youD specify, and replace it with the definition in the edit buffer@ when you use the EDIT command to edit a dictionary object.   FORM E Determines whether DEC DATATRIEVE uses its forms interface whenD you use the PRINT, MODIFY, and STORE statements. For terminalsC supported by the forms product you are using, SET FORM causesG DEC DATATRIEVE to display and use forms when you enter the PRINT,! MODIFY, or STORE statement. @ When you start your DEC DATATRIEVE session, SET FORM is in effect.  NO FORM D Prevents DEC DATATRIEVE from using its forms interface. If SETC NO FORM is in effect when you use the PRINT, MODIFY, or STOREB statem ents, DEC DATATRIEVE does not use the forms interface.   GRID G Causes a client application (DEC DATATRIEVE Client for Windows orG programs calling DEC DATATRIEVE) to display the output of a PRINTG statement on the grid (Dataset Viewer). If the output is directedD to a file, that file contains all the necessary tab charactersE that make it readable by other PC applications (e.g. Excel[R]).G This command is for client applications only, and it 's ignored byE the DEC DATATRIEVE server if this is not connected to a client.  NO CDDI Specifies whether DEC DATATRIEVE should attach to Oracle CDD/RepositoryH or use textfile-based dictionary only. When this qualifier is missing,B the DEC DATATRIEVE behaviour depends on the equivalent string ofE the logical name DTR$ENVIRONMENT: if the equivalent string contains9 /NOCDD , no attachment to Oracle CDD/Repository occurs.I If DTR$ENVIRONMENT is not defined, the DEC DATAT RIEVE behaviour depends5 on the configuration selected at installation time.K If Oracle CDD/Repository is linked to DEC DATATRIEVE at installation timeE its use can dynamically be disabled using the DATATRIEVE SET NO CDD; command, which switches to the textfile-based dictionary. NO GRID G Causes a client application (DEC DATATRIEVE Client for Windows orG programs calling DEC DATATRIEVE) to display the output of a PRINTF statement on the Output window. SET NO GRID is the default. ThisG command is for client applications only, and it is ignored by the2 server if this is not connected to a client.   GUIDE F Starts Guide Mode, the tutorial mode of DEC DATATRIEVE. Refer toF the DEC DATATRIEVE User's Guide for a description of Guide Mode.   KEYDEFS file-spec A Lets you define multiple keypad keys from a file containingE DCL DEFINE/KEY commands (see the OpenVMS documentation for moreG information on the DEFINE/KEY command). By using SET KEYDEFS, youG do not have to make multiple calls to the FN$DEFINE_KEY function. G The file specification is the full DCL file specification for the2 file containing the DCL DEFINE/KEY commands. F This command is not available in a DECwindows Motif environment.  LOCK_WAIT G When two applications try to access the same file, RMS may lock aF record that DEC DATATRIEVE n eeds to access. DEC DATATRIEVE triesD for 12 seconds to access a locked record. SET LOCK_WAIT causesG DEC DATATRIEVE to turn control over to RMS after this period. RMSE then waits for the locked record until it is released, or untilC RMS sends you a deadlock message. The default is SET NO LOCK_ WAIT.   NO LOCK_WAIT C Instructs DEC DATATRIEVE not to try to access a locked recordE after 12 seconds. At the end of this period, you receive an RMSE message informing you that the record is locked. When you beginA your DEC DATATRIEVE session, SET NO LOCK_WAIT is in effect.   NULLS G When the you issue a SET NULLS command, DEC DATATRIEVE recognizesC null values of relational databases as such. SET NULLS is the default.  NO NULLS @ When you issue a SET NO NULLS command, DEC DATATRIEVE does@ not recognize null values of relational databases as such,@  it returns the type-dependent default values of relationalD databases. You can examine the current condition with the SHOW SET_UP command.   PLOTS G Establishes the default Oracle CDD/Repository DMU data dictionary9 directory for your DEC DATATRIEVE plot definitions.  PROMPT E Causes DEC DATATRIEVE to prompt for elements needed to completeD the syntax of the current command or statement. When you pressB the RETURN key before completing a command or statement, DECC DATATRIEVE prompts you for the next syntactic element of that@ statement or command. The prompt takes the following form:  [Looking for element] @ At the start of a DEC DATATRIEVE session, SET PROMPT is in effect.  NO PROMPT C Prevents DEC DATATRIEVE from prompting for elements needed to> complete the syntax of the current command or statement.  SEARCH C Causes the DEC DATATRIEVE Context Searcher to create implicit@ inner print lists in PRINT statements and implicit ANYs inA Boolean expressions. When you work with Oracle CODASYL DBMSG domains, the SET SEARCH command causes the DEC DATATRIEVE ContextG Searcher to walk sets to look for a context to resolve references to field names.  NO SEARCH @ Prevents the DEC DATATRIEVE Context Searcher from creatingF implicit inner print lists in PRINT statements and implicit ANYsG in Boolean expressions. At the start of a DEC DATATRIEVE session,! SET NO SEARCH is in effect.  SEMICOLON @ Causes DEC DATATRIEVE to require a semicolon at the end of commands or statements.   NO SEMICOLON E Causes DEC DATATRIEVE to make semicolons at the end of commandsG or statements optional. At the start of a DEC DATATRIEVE session,$ SET NO SEMICOLON is in effect.   VARIABLES PROCEDURES C Allows you to use variables as procedures: you can store in aC DEC DATATRIEVE variable commands and statements. You can thenG execute the variable as if it was a procedure. Variables declared@ as procedures are not stored in the Oracle CDD/Repository.   NO VARIABLES PROCEDURES @ Causes variables to be interpreted as variables and not asB procedures. At the start of your DEC DATATRIEVE session, SET- NO VARIABLES PROCEDURES is the default.  VERIFY D Causes lines from command files to be displayed when a command file is invoked.  NO VERIFY G Suppresses the display of lines from command files when a commandG file is invoked. At the start of your DEC DATATRIEVE session, theD current setting for SET VERIFY/NOVERIFY at the DCL level is in effect.   HELP_PROMPT D Causes DEC DATATRIEVE to prompt for the topic or subtopic when help text is displayed.   NO HELP_PROMPT G Suppresses the prompting for the topic or subtopic when help text is displayed.   HELP_WINDOW G Causes help text to be displayed in a scrolling region of a video terminal.   NO HELP_WINDOW D Causes help text to be displayed in a nonscrolling region of a video terminal.   HELP_LINES n TO m C Sets the lines for scrolling help text between lines n and m,D where n represents the beginning of the scrolling region and m represents the end.  3 ExamplesD The following example displays the default settings and change2 the default settings with one SET statement:  DTR> SHOW SET_UP Set-up: Columns_page: 80 No abort Prompt No search Form No verify No semicolon  No lock_wait NULLs support! Application keypad mode = DTR> SET COLUMNS_PAGE = 132, ABORT, NO PROMPT, SEARCH, [Looking for SET option]I CON> 9 NO FORM, VERIFY, SEMICOLON, LOCK_WAIT, NO APPLICATION_KEYPAD  DTR>SHOW SET_UP Set-up: Columns_page: 132 Abort No prompt Search No form Verify Semicolon Lock_wait NULLs support  Numeric keypad mode DTR> E The following example sets your default dictionary directory atE CDD$TOP and uses a variety of path names to change your default directory: " DTR> SET DICTIONARY CDD$TOP' DTR> SET DICTIONARY DTR$LIB.DEMO DTR> SHOW DICTIONARY3 The default directory is CDD$TOP.DTR$LIB.DEMO DTR> SHOW DICTIONARIES Dictionaries: DTR> SET DICTIONARY -.-; DTR> SHOW DICTIONARY& The defa ult directory is CDD$TOP( DTR> SET DICTIONARY CDD$TOP.DTR32< Element "CDD$TOP.DTR32.JONES" not found in dictionary.- DTR> SET DICTIONARY CDD$TOP.DTR32.TEST DTR> SHOW DICTIONARIES Dictionaries:& DTR> SET DEF -; SHOW DICTIONARY, The default directory is CDD$TOP.DTR32 DTR> SHOW DICTIONARIES Dictionaries:A AWS BRADS BRENT DBFD DDD DEMO DENN DETRICD DUNCAN JAS KELLERMAN LANDAUB MARISON PLOTS STRONG TEST WAYNE DTR> SET DICTIONARY WAYNE> DTR> SET DICTIONARY DISK1:[SWANSON.DTRWORK]TEST.NEWDICT DTR> G The following example uses the SET SEARCH command to walk sets in% a Oracle CODASYL DBMS database: + DTR> READY SUPPLIES, VENDORS, PART_S DTR> SET SEARCH) DTR> PRINT VEND_NAME, PART_DESC OF7 [Looking for name of domain, collection, or list]7 CON> VENDORS WITH VEND_NAME = "QUALITY COMPS"H Not enough context. Some field names resolved by Context Searcher.. --------------Vendor Name---------------  QUALITY COMPS VT100 KEYBOARD ASSY NUMERIC KEYPAD FRAME VT52 HOUSING F When SET SEARCH is not in effect, you need to provide explicitly@ the inner print lists to give DEC DATATRIEVE the necessary context, as follows:  DTR> SET NO SEARCHA DTR> PRINT VEND_NAME, ALL ALL PART_DESC OF PART_S OWNER OF [Looking for set name]? CON> PART_INFO OF SUPPLIES MEMBER OF VENDOR_SUPPLY OF7 [Looking for name of domain, collection, or list]7 CON> VENDORS WITH VEND_NAME = "QUALITY COMPS". --------------Vendor Name---------------  QUALITY COMPS VT100 KEYBOARD ASSY NUMERIC KEYPAD FRAME VT52 HOUSING DTR>  2 SET_Statement_(Report_Writer)E Controls the report header and defines the size of report pagesF and the length of the report. With Report Writer SET statements,$ you can specify the following: C o The report header-the report name (if any), the date, page. numbering, and their print attributes F o The size of report pages-the number of columns and the number6 of lines per page, or the physical paper size 7 o The orientation of the paper to be printed on. E o The length of the report-the maximum number of lines and the maximum number of pages 2 o Whether or not column headers are printed Format  For naming the report:  E { "string"[/ . . . ]}E SET REPORT_NAME = [ ATT att-name, ] { *.prompt }E { } D  For controlling the printing of default page numbers and forD specifying the beginning page number at the upper right of a page:  A { [ { ATT att-name } ] }A { [ { { } } ] }A { [ { ATT att-name, { n } } ] }A { NUMBER [ = { { *.prompt } } ] }A { [ { } ] } A SET { [ { { n } } ] }A { [ { { *.prompt } } ] }A { [ { { } } ] }A { }A { }A { NO NUMBER } G For specifying a date or string at the upper right of each page0 or for d isabling the printing of a date: : { [ { ATT att-name } ] }: { DATE [ = { ATT att-name, "string" } ] }: { [ { } ] }: SET { [ { "string" } ] }: { }: { }: { NO DATE } ? For disabling the printing of the entire report header:  SET NO REPORT_HEADER 6 For specifying the printing of column headers:   0 { COLUMN_HEADER = ATT att-name }0 SET { NO COLUMN_HEADER }0 { } F For specifying page width or length, or overall report length:  3 { { COLUMNS_PAGE = } }3 { { LINES_PAGE = } { n } }? SET { {  MAX_LINES = } { *.prompt } } [, . . . ]3 { { } { } }3 { { MAX_PAGES = } } " For specifying paper size: 4 { { A } }4 { { B } }4 { { } }4 { { C } }4 { { D } }4 { { LETTER } }4 { { } }4 { { LEDGER } }4 { { LEGAL } }4 { { EXECUTIVE } }4 { { } }4 { { 7_BY_9 } }4 { { A1 } }4 { PAPER_SIZE { A2 } }4 { { }  }4 { { A3 } }4 { { A4 } }4 SET { { A5 } }4 { { } }4 { { B4 } }4 { { C4 } }4 { { C5 } }4 { { } }4 { { C6 } }4 {  { C7/6 } }4 { { C5/6 } }4 { { } }4 { { DL } }4 { { PAPER_HEIGHT } {MM } }4 { { } =n { } }4 { { PAPER_WIDTH } {IN } }4 { { } }4 { PAPER_ORIENTATION = {PORTRAIT } }4 {  {LANDSCAPE } }4 { }  2 SHOW_Command? Displays information about the Oracle CDD/Repository data" dictionary and its contents.  3 Arguments  SHOW ALL B Displays the names of all the objects and directories listedC in your default Oracle CDD/Repository dictionary, the name ofE your default directory, the names of the collections, the otherB readied RSE sources (domains , relations, Oracle CODASYL DBMSB records), and the loaded tables and forms in your workspace.D DMU format record and domain definitions are indicated with an asterisk (*).   SHOW collection-name E Displays the collection name, the name of the domain, relation,C or Oracle CODASYL DBMS record within which the collection hasD been established, the number of records in the collection, theG status of the selected record within the collection, the names ofG the keys on which the collection has been sorted, and the command" that created the collection.   SHOW COLLECTIONS : Displays the names of the collections you are using.   SHOW CURRENT G Displays the name of the domain, relation, or Oracle CODASYL DBMSE record within which the CURRENT collection has been formed, theD number of records in the CURRENT collection, the status of theE selected record in the CURRENT collection, and the names of the3 keys on which the collection has been sorted.   SHOW database-name > For relational databases, displays the name and the fileF specification of the database. For Oracle CODASYL DBMS, displaysF the name, the subschema name, the schema path name, and the root) file specification of the database.   SHOW DATABASES B Displays the names of the relational and Oracle CODASYL DBMS1 databases listed in your default directory.   SHOW DICTIONARIES B Displays the names of the dictionary directories appended toF your default directory. (This option tells you if the dictionary9 branch continues lower than your current location.)   SHOW DICTIONARY G Displays the full dictionary path name of your default directory.   SHOW domain-name A Displays the name, the record definition name, and the fil eC specification of the domain based on a RMS file. Displays theE domain name, the associated Oracle CODASYL DBMS record, and theC database name associated with the Oracle CODASYL DBMS domain.E Displays the domain name, the associated relation name, and the: database name associated with the relational domain.   SHOW DOMAINS A Displays the names of all domains cataloged in your defaultE directory. DMU format domains are indicated by a n asterisk (*).  SHOW EDIT C Indicates whether SET EDIT_BACKUP or SET NO EDIT_BACKUP is inC effect in your DEC DATATRIEVE session. SET EDIT_BACKUP is theC default. If you enter the command SET NO EDIT_BACKUP and editD any definitions, DEC DATATRIEVE deletes the highest version ofB the definitions when you exit the editor. SET NO EDIT_BACKUPF automatically keeps outdated versions of definitions from pilingC up in your directory, but co uld erase the only definition youE have to fall back on should you make a mistake in your editing.   SHOW FIELDS B Displays the names, data types, and index-key information ofF the fields of all domains you have readied. It also displays theD names and data types of global variables. For RMS sources, theE SHOW FIELDS command indicates whether or not a key field is theG primary key or an alternate key. For fields from non-RMS sources,+ SHOW FIELDS indicates an indexed key.  W SHOW FIELDS FOR domain-name collection-name dbms-record rdb-relational-name F Displays the names, data types, end index-key information of theD fields in the domain, collection, dbms-record, or rdb-relationG you specify after FOR. You can only specify the name of a readied domain.   SHOW FORMS F Displays the form name, the form file, and the form product name of all loaded forms.   SHOW FUNCTIONS G Displays all the loaded user functions and the subset they belong to.  SHOW HELP @ Indicates which of the settings for the HELP command is inA effect. The settings are HELP_LINES, HELP_PROMPT, and HELP_ WINDOW.   SHOW KEYDEFS E Shows all current key definitions in all states. A state allowsE the same key to be assigned multiple definitions by associatingE each definition with a different state key. In addition to SHOWG KEYDEFS, you can use the function FN$SHOW_KEYDEFS to show all keyF definitions. This command is not available in a DECwindows Motif environment.   SHOW path-name B Displays the text of the domain, record, procedure, or table7 definition specified by the dictionary path name.   SHOW PLOTS ? Displays the names of the loaded plots from the directory) specified in the SET PLOTS command.   SHOW PRIVILEGES G Displays the access privileges you have to the directory at which you are currently located.  ! SHOW PRIVILEGES FOR path-name A Displays the access privileges you have to the directory or( object you name in the FOR clause.   SHOW procedure-name E Displays the name of the procedure, the commands and statements? contained in the procedure, and the END_PROCEDURE clause.   SHOW PROCEDURES E Displays the names of all procedures cataloged in the directory) at which you are currently located.   SHOW READY C Displays for each readied domain based on a RMS file the fullC dictionary path name, the file organization of the associatedD data file, the access control option (EXCLUSIVE, PROTECTED, orD SHARED), and the access mode (READ, WRITE, EXTEND, or MODIFY).E For all readied relational and Oracle CODASYL DBMS domains, theG SHOW READY command displays the name, type, access option, accessD mode, and the domain path. For individual relations and OracleE CODASYL DBMS records, the SHOW READY command displays the name,F type, access option, access mode, and the dictionary path to theE database. The most recently readied domain, relation, or OracleG CODASYL DBMS record is at the top of the displayed list. The SHOWC READY command also displays the full dictionary path name and8 table type of all tables loaded in your workspace.   SHOW record-name E Displays the name, level numbers, fields, and field definitions@ of the record. It also allows you to display those records! defined by the CDO utility.   SHOW RECORDS D Displays the names of all record definitions cataloged at yourE current directory location. DMU format records are indicated by  an asterisk (*).   SHOW SET_UP @ Displays the current status of the options you can controlB with the SET command: ABORT/NO ABORT, APPLICATION_KEYPAD/ NOE APPLICATION_KEYPAD, COLUMNS_PAGE, FORM/NO FORM, NULLS/NO NULLS,B PROMPT/NO PROMPT, SEARCH/NO SEARCH, SEMICOLON/ NO SEMICOLON,0 VARIABLES PROCEDURES, and VERIFY/NOVERIFY.  SHOW SETS F Displays the names of any available Oracle CODASYL DBMS sets and@ their Oracle CODASYL DBMS insertion and retention classes.   SHOW SYNONYMS G Displays the names of any synonyms for DEC DATATRIEVE keywords in0 effect during your DEC DATATRIEVE session.   SHOW table-name E Displays the name of the table, the code and translation pairs, and the END_TABLE clause.   SHOW TABLES C Displays the names of all dictionary tables and domain tables* cataloged in your default directory.    SHOW VARIABLES E Displays the contents of all variable declarations in effect in) the current DEC DATATRIEVE session.  3 ExamplesE The following example displays the record definition OWNER_REC:  DTR> SHOW OWNER_REC RECORD OWNER_REC 01 OWNER. 03 NAME PIC X(10). 03 BOAT_NAME PIC X(17). 03 TYPE.! 06 BUILDER PIC X(10). 06 MODEL PIC X(10). ; DTR> B The following example displays the status of the SET command6 options that affect your DEC DATATRIEVE session:  DTR> SHOW SET_UP Set-up: Columns_page: 80 No abort Prompt No search Form No verify No semicolon No lock wait NULLs support! Application keypad mode DTR>  2 SHOWP_CommandF Displays the access control list (ACL) of an object or directory in the, Oracle CDD/Repository data dictionary. Format  SHOWP path-name  3 Argument  path-name D Is the given name, full dictionary path name, or relative pathE name of the dictionary object or directory whose access control list you want to display.  3 ExamplesD The following example displays the access control list for the DMU YACHTS domain:   DTR> SHOWP YACHTS& 1: [*,*], Username: "JONES"; Grant - CDEHMRSUW, Deny - none, Banish - none DTR> F The following example uses a password to gain C (CONTROL) accessG to the DMU record YACHT and then display its access control list:  DTR> SHOWP YACHT (*)F Enter password for YACHT: !You enter CEP, which is not echoed. DTR> SHOWP YACHT" 1: [*,*], Password: "P"5 Grant - P, Deny - CDESUX, Banish - none# 2: [*,*], Password: "DP"5 Grant - DP, Deny - CESUX, Banish - none# 3: [*,*], Password: "EP"5 Grant - EP, Deny - CDSUX, Banish - none# 4: [*,*], Password: "PS"5 Grant - PS, Deny - CDEUX, Banish - none# 5: [*,*], Password: "PU"5 Grant - PU, Deny - CDESX, Banish - none# 6: [*,*], Password: "PX"5 Grant - PX, Deny - CDESU, Banish - none$ 7: [*,*], Password: "CEP"5 Grant - CEP, Deny - DSUX, Banish - none$ 8: [*,*], Password: "CDP"5 Grant - CDP, Deny - ESUX, Banish - none DTR> > The following example displays the ACL of the CDO format0 dictionary SYS$COMMON:[CDDPLUS.PERSONNEL]: , DTR> SHOWP SYS$COMMON:[CDDPLUS.PERSONNEL]! 1: [*,*], Username: "CASADAY"$ GRANT - RWMESUDC, DENY - noneH ACCESS=READ+WRITE+MODIFY+EXTEND+SHOW+DEFINE+CHANGE+DELETE+CONTROL  2: [*,*] GRANT - S, DENY - RWMEUDC ACCESS=SHOW  DTR>  2 SIGN_ClauseG Specifies the location and representation of a sign (+ or -) in a numeric elementary field. Format  { LEADING }+ SIGN [IS] { TRAILING } [SEPARATE] { }  3 Arguments  LEADING ? Indicates that the sign is at the left (LEADING) or right$ (TRAILING) of the field value.  SEPARATE A Indicates that the sign occupies its own character position@ in the field. If this argument is omitted, the sign sharesA a character position with the field's leftmost (LEADING) or! rightmost (TRAILING) digit.  3 ExamplesE The following example defines the field CURRENT_BALANCE as a 6-F digit signed field, with the sign sharing the leftmost character position:  03 CURRENT_BALANCE  PIC IS S9999V99! EDIT_STRING IS $$$$9.99- SIGN IS LEADING. D The following example defines the field NEW_PRICE as a 4-digitE signed field. The sign is a separate character in the rightmost character position:  03 NEW_PRICE PIC S99V99 SIGN TRAILING SEPARATE EDIT_STRING +++.99.  2 SORT_StatementE Arranges a DEC DATATRIEVE collection according to the order youD specify for the contents of one or more fields in the records. Format : SORT [collection-name] [BY] sort-key-1 [,...]  3 Arguments   collection-name 1 Is the name of the collection to be sorted.   BY D Is an optional language element you can use to clarify syntax.  sort-key D Is a field whose contents form the basis for the sort. You canD also use a value expression as a sort key as long as the valueC  expression does not contain a SORTED BY or REDUCED TO clause. @ The sort key can be preceded or followed by a keyword thatD determines the order in which DEC DATATRIEVE sorts the records8 in the collection. ASCENDING is the default order. A To specify the sort order for each sort key, use one of the following terms:  ASC[ENDING] DESC[ENDING] INCREASING DECREASING D If you specify more than one sort key, use a comma to separate" each sort key from the next.  3 ExamplesF The following example sorts the first ten yachts by the ratio of PRICE to DISPLACEMENT: DTR> FIND FIRST 10 YACHTS [10 records found] DTR> SORT BY PRICE/DISP( DTR> PRINT ALL TYPE, PRICE, DISP,( [Looking for next element in list]5 CON> PRICE/DISP ("$/LB."/"RATIO") USING $$$.99 2 $/LB.2 MANUFACTURER MODEL  PRICE WEIGHT RATIO 3 BLOCK I. 40 18,500 $.003 BUCCANEER 270 5,000 $.003 ALBERG 37 MK II $36,951 20,000 $1.853 AMERICAN 26 $9,895 4,000 $2.473 BOMBAY CLIPPER $23,950 9,400 $2.553 AMERICAN 26-MS $18,895 5,500 $3.443 BAYFIELD 30/32 $32,875 9,500 $3.463 ALBIN VEGA $18,600 5,070 $3.673 ALBIN BALLAD $27,500 7,276 $3.783 ALBIN 79 $17,900 4,200 $4.26 DTR> E The following example forms a collection of FAMILIES CROSS KIDSA and sorts the collection by decreasing age of the children: , DTR> FIND FIRST 6 FAMILIES CROSS KIDS [6 records found] DTR> SORT BY DESC AGE. DTR> PRINT ALL FATHER, MOTHER, EACH_KID " KID* FATHER MOTHER NAME AGE ) JIM LOUISE AN NE 31) JIM LOUISE JIM 29) JIM LOUISE ELLEN 26) JIM LOUISE DAVID 24) JIM ANN URSULA 7) JIM ANN RALPH 3  2 STORE_StatementsC Creates a record in a DEC DATATRIEVE domain and stores valuesC in one or more fields of the record. For information on usingB STORE with Oracle CODASYL DBMS and relational databases, seeD the section on the STORE statement for Oracle CODASYL DBMS and) relational sources in this chapter. Format 1 STORE [context-variable IN] domain-name  [USING statement-1] % [VERIFY [USING] statement-2]  3 Arguments   context-variable / Is the name of the record to be inserted.   domain-name D Is the given name or alias of the domain that contains the new record.   USING statement-1 G Specifies a DEC DATATRIEVE statement that can store one value for+ one or more fields in the new record.   VERIFY [USING] statement-2 G Specifies a statement DEC DATATRIEVE executes just before storing the new record.  3 ExamplesF The following example stores two records in the FAMILIES domain:  DTR> READY FAMILIES WRITE" DTR> REPEAT 2 STORE FAMILIES Enter FATHER: GEORGE Enter MOTHER: SANDY Enter NUMBER_KIDS: 2 Enter KID_NAME: DANA Enter AGE: 12 Enter KID_NAME: DACIA Enter AGE: 9  Enter FATHER: WAYNE Enter MOTHER: SHEEL Enter NUMBER_KIDS: 2 Enter KID_NAME: BETE Enter AGE: 8 Enter KID_NAME: ALEX Enter AGE: 57 DTR> FIND FAMILIES WITH MOTHER = "SANDY", "SHEEL" [2 records found] DTR> PRINT ALL ) NUMBER KID1 FATHER MOTHER KIDS NAME AGE 0 GEORGE SANDY 2 DANA 120 DACIA 90 WAYNE SHEEL 2 BETE 80 ALEX 5 DTR> G The following example stores a record in the YACHTS domain, using- a context variable and a VERIFY clause:  DTR> SHOW HINKLEY_STORE PROCEDURE HINKLEY_STORE STORE A IN YACHTS USING BEGIN BUILDER = "HINKLEY" MODEL = "BERMUDA 40" RIG = "YAWL" LOA = 40 DISP = 20000 BEAM = 12 PRICE = 82000 END VERIFY USING BEGIN PRINT A.BOAT, SKIP* IF *.CONFIRMATION CONT "N" THEN- PRINT SKIP THEN ABORT "BAD RECORD" END END_PROCEDURE  DTR> READY YACHTS WRITE DTR> :HINKLEY_STORE + LENGTH*  OVER> MANUFACTURER MODEL RIG ALL WEIGHT BEAM PRICE ? HINKLEY BERMUDA 40 YAWL 40 20,000 12 $82,000  Enter CONFIRMATION: N  ABORT: BAD RECORD DTR> F The following example defines a domain for single-digit integersB and their squares, and uses a WHILE statement to control the- number of records stored in the domain: & DTR> DEFINE DOMAIN SQUARES USING& DFN> SQUARES_REC ON SQUARES.DAT;* DTR> DEFINE RECORD SQUARES_REC USING DFN> 01 SQUARES. DFN> 03 NUMBER PIC 9.# DFN> 03 ITS_SQUARE PIC 99. DFN> ; [Record is 3 bytes long.]# DTR> DEFINE FILE FOR SQUARES; DTR> READY SQUARES WRITE DTR> DECLARE N PIC 99. DTR> N = 0, DTR> WHILE N NE 10 STORE SQUARES USING CON> BEGIN CON> NUMBER=N! CON> ITS_SQUARE = N * N CON> N = N + 1 CON> END DTR> FIND SQUARES [10 records found] DTR> PRINT ALL  ITS NUMBER SQUARE  0 00 1 01 2 04 3 09 4 16 5 25 6 36 7 49 8 64 9 81 DTR> C The following example stores data from the WORKER domain intoB the expanded NEW_WORKER domain. These domains have duplicateD elementary field names that are subordinate to different groupB field names. The example uses a FOR statement to control theE STORE statement so that DEC DATATRIEVE stores the data from theG elementary fields correctly. The record definitions and the STORE statement are as follows:  DTR> SHOW WORK_REC RECORD WORK_REC USING 01 WORK. 03 LOCAL.# 05 CITY PIC X(10)." 05 STATE PIC X(2). 03 REMOTE.# 05 CITY PIC X(10)." 05 STATE PIC X(2). ; DTR> SHOW NEW_WORK_REC RECORD NEW_WORK_REC USING 01 WORK. 03 NEW_LOCAL.# 05 CITY PIC X(10)." 05 STATE PIC X(2). 03 NEW_REMOTE.# 05 CITY PIC X(10)." 05 STATE PIC X(2). 03 NAME." 05 FIRST PIC X(10)." 05 LAST PIC X(15). ;! DTR> READY NEW_WORKER WRITE DTR> FOR WORKER#  CON> STORE NEW_WORKER USING CON> BEGIN" CON> NEW_LOCAL = LOCAL$ CON> NEW_REMOTE = REMOTE CON> END DTR>  C2 STORE_Statement_(for_Oracle_CODASYL_DBMS_and_Relational_Sources)( Adds a new record to the database. Format $ { rdb-domain-name }$ { rdb-relation-name }$ STORE { dbms-domain-name }$ { }$ { dbms-record-name }  ! [USING statement-1] + [VERIFY [USING] statement-2] > [ [CURRENCY] [context-name.]set-name-1 [,...] ]  3 Arguments   rdb-domain-name B Is the given name of the domain to contain the new relation.   rdb-relation-name @ Is the name assigned to the relation when the database wasD created. The relation name can be the name of a view relation.   dbms-domain-name  @ Is the given name of the domain to contain the new record.   dbms-record-name F Is the name assigned to the record when the database was created- and to the record which will be stored.   USING statement-1 G Specifies a DEC DATATRIEVE statement that can store one value for+ one or more fields in the new record.   VERIFY [USING] statement-2 G Specifies a statement DEC DATATRIEVE executes just before storing the new record.  CURRENCY E Is a keyword that is used only with Oracle CODASYL DBMS records or domains.   context-name > Is the name of a valid context variable or the name of aD collection with a selected Oracle CODASYL DBMS record. It mustF identify a record that participates in the specified set. If theE SYSTEM owns the set, you do not need to establish a context forD the set. If the set is not own ed by the SYSTEM and the contextE name is not present, DEC DATATRIEVE uses the most recent singleE record context of a domain with a record type that participates in the specified set type.  set-name @ Is the name of a Oracle CODASYL DBMS set. The record beingE stored must be an AUTOMATIC member of that set. Use the CONNECT? statement to connect the record to MANUAL insertion sets. B It is not necessary to put SYSTEM-owned sets in the currencyF list. For all other AUTOMATIC sets, you must establish currency,? but it is not necessary to put them in the currency list.  3 ExamplesD The following example stores a new record in the relation JOB_A HISTORY and makes the change permanent by entering a COMMIT statement: 2 DTR> READY PERSONNEL USING JOB_HISTORY WRITE DTR> STORE JOB_HISTORY! Enter DEPARTMENT_CODE: HENG Enter EMPLOYEE_ID: 78645 Enter JO B_CODE: B-78 Enter JOB_END: 021783 Enter JOB_START: 052181 DTR> COMMIT > The following example adds a new COMPONENT record to theG database. A valid context must be established for current recordsF in the sets PART_USED_ON and PART_USES to store a COMPONENT. TheD STORE_COMP procedure prompts for values so that DEC DATATRIEVED knows which record you want to be current. The nested FOR loopE establishes the context, and the CURRENCY clause  translates DECD DATATRIEVE contexts into Oracle CODASYL DBMS currencies. AfterD you enter your response to the last prompt for the values in aG record, Oracle CODASYL DBMS automatically inserts the record into$ the specified set occurrences: & DTR> DEFINE PROCEDURE STORE_COMP$ DFN> DECLARE USED_ON PIC X(8).% DFN> DECLARE SUB_PART PIC X(8).; DFN> SUB_PART = *."I.D. number of the component part"> DFN> USED_ON = *."I.D. number of the part it  is used on"/ DFN> FOR A IN PART WITH PART_ID = USED_ON4 DFN> FOR B IN PART WITH PART_ID = SUB_PART) DFN> STORE COMPONENTS USING DFN> BEGIN3 DFN> COMP_SUB_PART = SUB_PART4 DFN> COMP_OWNER_PART = USED_ON? DFN> COMP_MEASURE = *."component measure"7 DFN> COMP_QUANTITY = *."quantity"@ DFN> END CURRENCY A.PART_USED_ON , B.PART_USES DFN> END_PROCEDURE DTR>  2 SUM_StatementD Provides a summary of totals for one or more numeric fields inD the current collection. The summary is sorted according to theA values in one or more fields of the current collection. TheD summary includes subtotals for control groups. The summary can/ be written to a file or an output device. Format ; [ {file-spec } ]; SUM print-list BY sort-list [ ON {*.prompt } ]; [ { } ]  3 Arguments  print-list G Is a list of one or more numeric fields, other value expressions,= and modifiers. The print list has the following format: 7 {value-expression [ {modifier} [...] ] } [,...] < The section on the PRINT statement describes the value< expressions and modifiers you can use in a print list.  sort-list  D Is a list of one or more sort keys that determine the order inF which DEC DATATRIEVE presents the summary totals. An item in theC sort list consists of the name of a field whose contents formD the basis for the sort, preceded or followed by a keyword that@ determines the order DEC DATATRIEVE uses to sort the data. A To specify the sort order for each sort key, use one of the following keywords:  ASC[ENDING]  DESC[ENDING]   INCREASING  DECREASING D If you specify more than one sort key, use a comma to separate" each sort key from the next.  file-spec E Is the file specification to which you want to write the output of the statement. = A complete file specification has the following format: 9 node-spec::device:[directory]file-name.type;version   *.prompt-name @ Is the prompting value expression that  prompts you for theE file specification to which you want to write the output of the statement.  3 ExampleE The following example forms a collection of yachts and uses theG SUM statement to summarize the prices of yachts in the collectionE and to display the number of yachts built by each builder. Edit, strings are used to format the values: , DTR> READY YACHTS; FIND FIRST 6 YACHTS [6 records found]0 DTR> SUM 1 ("NUMBER"/" OF YACHTS") USING 9,- CON> PRICE USING $$$$,$$$ BY BUILDER - NUMBER NUMBER6 MANUFACTURER OF YACHTS PRICE OF YACHTS PRICE % ALBERG 1 $36,951% ALBIN 3 $64,000% AMERICAN 2 $28,7908 6 $129,741 DTR>  2 SYNCHRONIZED_Clause< Causes word boundary alignment of an elementary field. Format !  { SYNCHRONIZED } [ LEFT ]! { SYNC } [ RIGHT]! { } [ ]  3 Arguments   LEFT A Allows compatibility with DEC COBOL record definitions. DEC> DATATRIEVE accepts the argument but ignores the boundaryG alignment specification that the field begin at the left boundary0 of the unit of storage the field occupies.   RIGHT A Allows compatibility with DEC COBOL record definitions . DEC? DATATRIEVE accepts the arguments but ignores the boundaryF alignment specification that the field end at the right boundary0 of the unit of storage the field occupies.  3 ExampleD This example shows the difference in storage allocation a SYNCE clause can make. A field of USAGE type LONG occupies four bytes2 of storage (the equivalent of one longword): ) DTR> DEFINE RECORD NOSYNC_REC USING DFN> 01 TOP. DFN> 03 ONE PIC X. DFN> 03 TWO LONG. DFN> ; [Record is 5 bytes long.]' DTR> DEFINE RECORD SYNC_REC USING DFN> 01 TOP. DFN> 03 ONE PIC X.% DFN> 03 TWO SYNC RIGHT LONG. DFN> ; [Record is 8 bytes long.] DTR>  2 THEN_StatementA Joins two or more DEC DATATRIEVE statements into a compound statement. Format / statement-1 {THEN statement-2} [...]  3 Argument   statement $ Is a DEC DATATRIEVE statement.  3 ExampleA The following example uses a THEN statement to join a PRINT5 statement and a MODIFY statement in a FOR loop:  DTR> SET NO PROMPT DTR> READY YACHTS MODIFY- DTR> FOR YACHTS WITH BUILDER EQ "ALBIN" CON> PRINT THEN MODIFY * LENGTH) OVER= MANUFACTURER MODEL RIG ALL WEIGHT BEAM PRICE > ALBIN 79 SLOOP 26 4,200 10 $17,900" Enter MANUFACTURER: & Execution terminated by operator DTR>  2 USAGE_ClauseE Specifies the internal format of a numeric field or specifies a date field. Format $ { DISPLAY }$ { BYTE }$ { WORD }$ { }$ { LONG }$ { QUAD }$ { }$ { }$ { {COMP } }$ { {INTEGER } }$ { { } }$ { }$ { {COMP-1 } }$ { { } }$ { {REAL } }$ { }$ { { } }$ { {COMP-2 } }$  { {DOUBLE } }$ { }$ USAGE [IS] { }$ { G_FLOATING }$ { }$ { }$ { H_FLOATING }$ { }$ { S_FLOATING }$ { }$ { }$ { T_FLOATING }$ { }$ { }$ { {COMP-3 } }$ { {PACKED } }$ { { } }$ { }$ { {COMP-5 } }$ { { } }$ { {ZONED } }$ { }$ { }$ { DATE }  3 Arguments  DISPLAY E Indicates that each digit occupies one byte of storage. DISPLAY: is the default if you do not include a USAGE clause.   BYTE D Indicates that field value is stored in binary format and that1 the value is stored in one byte of storage.   WORD D Indicates that field value is stored in binary format and that= the value is stored in one word (two bytes) of storage.   LONG D Indicates that field value is stored in binary format and thatB the value is stored in one longword (four bytes) of storage.   QUAD D Indicates that field value is stored in binary format and thatC the value is stored in one quadword (eight bytes) of storage.   COMP @ Indicates that the field value is stored in binary format.D INTEGER is a synonym for COMP. The size of a COMP (or INTEGER)A field depends on the number of digit positions specified inC its PICTURE clause. You can avoid having both a USAGE IS COMPG clause and a PICTURE clause by using the keywords WORD, LONG, andE QUAD to specify the three types of storage allocation availableE with COMP. COMP Storage Allocation Types shows the COMP storage allocation types. - Table 1-9 COMP Storage Allocation Types  Size of1 PIC Clause Field Alternate USAGE Type ! 9(1) to 2 bytes WORD 9(4)! 9(5) to 4 bytes LONG 9(9)! 9(10) to 8 bytes QUAD 9(18)  COMP-1 B Indicates that the field value is stored in single-precisionG real format. REAL is a synonym for COMP-1. COMP-1 fields are fourD bytes long and they correspond to the Oracle CDD/Repository F_ floating-point data types.  COMP-2 G Indicates that the field value is stored in double-precision realE format. DOUBLE is a synonym for COMP-2. COMP-2 fields are eightD bytes long and they correspond to the Oracle CDD/Repository D_ floating-point data types.  G_FLOATING G Indicates that a field is an extended range 64-bit floating-point? number with precision to approximately 15 decimal digits.  H_FLOATING C Indicates that a field is an extended range 128-bit floating-E point number with precision to approximately 33 decimal digits.  S_FLOATING E Indicates that the field is a floating-point number accurate toD approximately 7 decimal digits. An S_floating-point field is 4 bytes long.  T_FLOATING E Indicates that the field is a floating-point number accurate toG approximately 15 decimal digits. T_floating-point fields occupy 8! contiguous bytes in memory.  COMP-3 @ Indicates that the field value is stored in packed-decimalA format. PACKED is a synonym for COMP-3. The value is s toredC two digits per byte. The value of a COMP-3 field must contain@ a sign. The sign occupies the four low-ordered bits in theD rightmost byte. The size of the field depends on the number of> digit positions specified by the field's PICTURE clause: ; size (in bytes) = (digit-positions+1)__ 1 2 B For example, a field with three digit positions is two bytesG long. If the field con tains an even number of digits, the size is@ rounded up. Thus, a 6-digit field is stored in four bytes.  COMP-5 @ Indicates that the field value is stored in signed decimalF format. ZONED is a synonym for COMP-5. A value in a COMP-5 fieldC is stored one digit per byte. Therefore, the size of a COMP-5E field is the number of digit positions specified in its PICTURE clause. C The sign of a COMP-5 value shares the rightmost byte with theG lowest-valued digit of the value. The lowercase letters P through= Y represent a negative sign for the values 0 through 9.   DATE / Indicates that the field is a date field.  3 ExamplesB The following example defines the field SALE_PRICE as a REAL (COMP-1) field:  05 SALE_PRICE PIC 9(5) USAGE REAL EDIT_STRING IS $(6). A The following example defines the field SALE_DATE as a dateA field, to be printed in the default format for date fields: ! 06 SALE_DATE USAGE IS DATE.  2 VALID_IF_Clause@ Validates a field value before it is stored in the record. Format % VALID IF boolean-expression  3 Argument   boolean-expression - Is a DEC DATATRIEVE Boolean expression.  3 ExamplesB The following example compares the value entered for the RIGC field to the character strings SLOOP, KETCH, MS, and YAWL andC stores the value in the field if it is one of those character strings:  06 RIG PIC X(6)< VALID IF RIG EQ "SLOOP", "KETCH", "MS", "YAWL". D The following example stores a value in the LOA field if it is between 15 and 50: 06 LENGTH_OVER_ALL PIC XXX, VALID IF LOA BETWEEN 15 AND 50 QUERY_NAME IS LOA. F The following example stores a value in the PRICE field if it is? greater than 1.3 times the displacement or if it is zero:  06 PRICE PIC 999992 VALID IF PRICE>DISP*1.3 OR PRICE EQ 0$ EDIT_STRING IS $$$,$$$.  2 WHILE_Statement@ Causes DEC DATATRIEVE to repeat a statement as long as the< condition specified in the Boolean expression is true. Format + WHILE boolean-expression statement  3 Arguments   boolean-expression  > Is a Boolean expression. In the WHILE statement, Boolean6 expressions are limited to the following format: { variable-name }: { *.prompt } boolean-operator value-expression { }  statement B Is a simple or compound statement you want DEC DATATRIEVE to: execute if the Boolean expression evaluates to true.  3 ExampleB The following example groups the boats with LOA less than 35D according to t!he value of BEAM and displays the TYPE, LOA, andF BEAM of the shortest boat from each group of boats with the same value for BEAM:  DTR> SHOW WHILE_EX PROCEDURE WHILE_EX BEGIN DECLARE X PIC 99. X = 0" FOR YACHTS WITH LOA < 35 AND' BEAM NE 0 SORTED BY BEAM, LOA WHILE X < BEAM BEGIN& PRINT TYPE, LOA, BEAM, X X = BEAM END END END_PROCEDURE  "DTR> :WHILE_EX $ LENGTH# OVER+ MANUFACTURER MODEL ALL BEAM X , CAPE DORY TYPHOON 19 06 00, WINDPOWER IMPULSE 16 07 06, ERICSON 23/ SPECIA 23 08 07, EASTWARD HO 24 09 08, ALBIN 79 26 10 09, BOMBAY CLIPPER 31 11 10, IRWIN 25 25 12 11 DTR>  2 W#ITH_FORM_StatementG Sends and receives data to and from a DECforms form. Control text* items can be also sent and received. Format + WITH_FORM form-name IN file-name A SEND FROM datatrieve-source [USING exchange-record] [,] 5 . . . 5 . . . 5 . . .  TO decforms-name$ $ RECEIVE FROM decforms-name B TO datatrieve-destination [USING exchange-record] [,] 5 . . . 5 . . . 5 . . . 6 [SEND_CONTROL_TEXT send-control-item [,...]] < [RECEIVE_CONTROL_TEXT receive-control-item [,...]]  3 Arguments  form-name F Is the% name of the DECforms form in the form file. The form nameC is syntactically required but ignored when the file name is a .FORM file.  file-name C Is the DECforms file name. It can either be a .FORM or a .EXE@ file (the default file extension is .EXE). A complete file- specification has the following format: 9 node-spec::device:[directory]file-name.type;version   decforms-name B Is a DECforms record name or lis &t name. A list is a DECformsF structure. If a list name is specified as decforms-name, all theF equivalent datatrieve-sources or datatrieve-destinations must be specified.  + datatrieve-source/datatrieve-destination F Is the name of a DEC DATATRIEVE data element; a data element canG be represented by a DEC DATATRIEVE record, by a group field, by aE field, or by a variable. When datatrieve-source and datatrieve-F destination can be used in 'terchangeably, they are referred to asD "DEC DATATRIEVE data element". The DEC DATATRIEVE data elementF can not be a COMPUTED BY field (for more information see the DECG DATATRIEVE Guide to Interfaces). When the decforms-name is a listG name, specify a list of DEC DATATRIEVE data elements separated by commas.   exchange-record E Is the Oracle CDD/Repository path name of a record used to sendG and receive data with DECforms. It is an opt (ional argument of the> datatrieve-source and datatrieve-destination structures.   send-control-item > Is the input parameter (variable or string literal) thatG activates the proper actions defined by the user inside the .IFDLB file. If you specify more than one input parameter, separateE them with commas. Every control-item has to be from one to fiveG characters long. For more details on how to build and use a SEND_2 CONTROL_TEXT see the) DECforms documentation.   receive-control-item E Is a DEC DATATRIEVE variable previously declared which receivesB a text control item returned by the form. The content of the@ variable will be loaded by the form depending on the rulesD established by the user in the .IFDL file. If you specify moreA than one output parameter, separate them with commas. Every: receive-control-item should be five characters long.  3 ExampleA In* the following example the WITH_FORM statement causes DECF DATATRIEVE to send records contained in the YACHTS domain to theE form record named BOAT. The form responds to the send operationF by displaying the form record data (one record at a time) on the screen.  DTR> READY YACHTS DTR> FOR X IN YACHTS/ CON> WITH_FORM YACHT IN DTR$LIBRARY:FORMS CON> SEND FROM X TO BOAT;  2 WombatC Wombats are native Australian or Tasmani+an mammals. Like many? other antipodean animals, they have strange* reproductiveD habits (less so than the platypus which lays green eggs and isG a monotreme). They also have constantly growing incisors allowingB (nay, encouraging) them to chew on bark, wood, softer rocks,B etc. (Wombats are friendly, loyal, nocturnal, and not overlyC intelligent. Sir Everard Home reports, "In captivity it is asC a rule amiable, the amiability being possibly associated wit ,h2 stupidity." He probably woke it from a nap.) : * strange to us-they wouldn't have it any other way. G The family Vombatidae is divided into two groups: the naked nosedD and the hairy nosed wombats. The naked nosed group constitutesE the genus Vombatuis (or Phascolomis) and includes the TasmanianC wombat (V. Ursinus) from Tasmania and Flinders Island and theG common Wombat (V. hirsutus) from south east Australia. These haveD coarse, hars-h, blackish brown fur, a naked area on the muzzle, and short ears. E The hairy nosed group contains Lasiorhinus latifrons from southB Australia and wombatula gillespiei from southern Queensland.E These species have silky grizzled gray fur, a hairy muzzle, andD larger ears. The consequences of all this to wombat society is? further complicated by the question of who has more ribs.  3 Advanced Wombats, particular G Dante Gabr.iel Rossetti had a wombat who slept (during the day) inE an epergne on the dining room table. He (the wombat) reappeared+ as a dormouse in Rev. Dodgson's book.  Wombats, uses of G live-conversation piece, alarm clock (third shift) dead-doormats;" for food, see Wombats, food?  Wombats, food grass, bark, leaves, fungi Epergne 4 Who knows? ...clearly someplace wombats sleep.  Marsupials A / Include bandicoots (which should be rabbits), koalas (whichC should be bears), tasmanian wolves (which should be coyotes),A and wombats (which should be lethargic badgers). Pogo was a marsupial.  Sexual habits @ These are of interest only to other wombats, and then only between April and June.  Wombats, prehistoric < Pleistocene Giant Wombat was as large as a rhinoceros.  Wombats, food? ? Would you wa0nt to eat a doormat that ate bark and fungus?  wwݨxX1 ADTG The ADT command calls the Application Design Tool, an interactiveD aid that helps you define a domain, its associated record, and* its data file. To invoke ADT, enter:  DTR> ADT A ADT has its own help files. You can get help at any time by? entering a question mark (?). In addition, you can press: ; PF2 -- for help on ADT's video displa1y E ! -- to see the fields you have defined so far = < -- to go back to the previous prompt ' CTRL/Z -- to exit ADT C For more information on ADT, see the DEC DATATRIEVE Reference Manual.  wwݨxX 1 TrainingC For new users, DEC DATATRIEVE provides a bundled CBT package,@ which explains the basic concepts required both to use DEC> DATATRIEVE and to unde2rstand the terminology used in theF documentation. Before running the training, the following symbol2 definitions must be added to your LOGIN.COM: ( EASY :== $EASY$PROGRAM:SOLORTP.EXE- LOADDRAW :== $EASY$PROGRAM:LOADDRAW.EXE * Then run the following command file:  $ @EASY$PROGRAM:SETUP.COM - To run the training, enter the command: $ EASY < The course is entirely self-explanatory, so no further! instruction 3is needed here.  wwݨxX1 ACLE Every directory and object in the dictionary can have an access@ control list. An ACL generally consists of one or more ACLD entries, although an ACL can be empty. Each entry in an access* control list performs two functions: G o It identifies individual users or classes of users to whom the ACL entry applies. C o It specifies the access privileges of the user or class of) 4 users to whom the entry applies. E An entry in the ACL of a dictionary object or directory has two parts: ) o The user identification criteria > See the subtopic Identification for more information. $ o The privilege specification = See the subtopic Specification for more information. ? For a list of access privileges, see the subtopic Access_ Privileges. C The DEFINEP command creates an ACL ent5ry. The DELETEP commandD removes an ACL entry. The SHOWP command displays an ACL entry.C The SHOW PRIVILEGE command displays your access privileges toE a directory/dictionary or object. For more information, see the help for these commands.  2 Access_Privileges_CDO  Privilege Description H C Lets you create, modify, and delete access control list (CONTROL) entries.F D Lets you delete and purge dictionary 6objects, as well1 (DELETE) as empty dictionary directories.; E Lets you ready a domain for EXTEND access. (EXTEND)D M (DTR_ Lets you ready a domain for READ and MODIFY access. MODIFY)A R (READ) Lets you ready a domain for READ access, displayD dictionary definitions with a SHOW command, use theH EDIT command, and copy them into a command file with an! EXTRACT command.G S (SHOW) Lets yo7u see the definition of a dictionary object andD the ACL of a dictionary or object. SHOW access to aG domain definition and its associated record definitionE is necessary to define a data file and then to readyF the domain. SHOW access to a dictionary lets you show0 the contents of the dictionary.G U Lets you change the definition of a dictionary object.B (CHANGE) On a dictionary, U lets you8 define new objects or2 delete objects in the dictionary.: W Lets you ready a domain for WRITE access. (WRITE)  2 Access_Privileges_DMU  Privilege Description A C Lets you read, create, modify, and delete accessG (CONTROL) control list entries. You cannot deny yourself CONTROL privilege.? D Lets you delete dictionary objects, as well asF (LOCAL_ directories and sub 9dictionaries with no children, andE DELETE) to edit, replace, or recompile definitions stored in the dictionary.C E (DTR_ Lets you ready a domain for any type of access, to: EXTEND_ access a table, or to invoke a procedure. /EXECUTE)1 F Lets you create subdictionaries. (FORWARD); G Lets you delete dictionary directories andG (GLOBAL_ subdictionaries, including any children they may have,' DELE :TE) with a single command.? H Lets you add entries to history lists with the5 (HISTORY) Dictionary Management Utility (DMU).D M (DTR_ Lets you ready a domain for READ and MODIFY access. MODIFY)G P (PASS_ Lets you use a dictionary directory, subdictionary, orF THRU) object in a path name. You cannot deny yourself PASS_ THRU privilege.A R (DTR_ Lets you ready a domain for READ access, displayD READ) d ;ictionary definitions with a SHOW command, use theH EDIT command, and copy them into a command file with an! EXTRACT command.H S (SEE) Lets you see the definition of a dictionary object. SEEH access to a domain definition and its associated recordG definition is necessary to define a data file and then% to ready the domain.G U Lets you update the definition of a dictionary object. (U <PDATE): W (DTR_ Lets you ready a domain for WRITE access. WRITE)G X Lets you create children of dictionary directories and! (EXTEND) subdictionaries.  2 IdentificationD The user identification criteria form the first part of an ACLC entry. The user identification criteria determine the user orG class of users to whom the entry applies. The dictionary comparesF the user identification criteria with the characteristics of t =heF user's process and with any passwords appended to the given name! of the object or directory. B An ACL on a directory or object in the DMU format dictionaryF can identify you by your username, your UIC (User Identification; Code), a password, your terminal number or job class. E An ACL on a CDO format dictionary or object can identify you byE your username, your UIC (User Identification Code), or your job class. E In an ACL >entry, you can specify one option from each availableC category. You can include one username, one UIC, one passwordF (DMU only), and one terminal number (DMU only) or job class. YouE must include at least one user identification criterion per ACL entry.  3 PasswordD You can also specify a password as an identification criterion@ in an ACL entry on a directory or object in the DMU formatB dictionary. If an ACL entry for a directory or object ?in theB dictionary defines a password, the password can be specifiedA as part of the given name of the directory or object. UsingC a password identifies the user or group of users who know the password.  4 ExamplesB When you need the access privileges to a directory or objectD granted by an ACL entry containing a password, you can specify the password in two ways: G o You can enter the password, enclosed in parentheses, after th@e/ given name of the directory or object: % - With only the given name: $ YACHTS;1(SAILOR) + - In a full dictionary path name: 7 CDD$TOP.INVENTORY(SECRET).YACHTS;1(SAILOR) F o You can also enter an asterisk in parentheses after the givenG name of the directory or object. This asterisk in place of theG password causes DEC DATATRIEVE to prompt you for the password.F When you reAspond, DEC DATATRIEVE does not echo the charactersE on your terminal. This prompting protects your password and,5 as a result, your data and data definitions: @ - In place of the password in parentheses, enter (_*): # DTR> SHOWP YACHTS (_*) C - DEC DATATRIEVE responds with a prompt for the password: ' Enter password for YACHTS:  3 Terminal@ You can also identify users by their terminal line num BbersD (DMU format dictionary only) or their job class (either format dictionary): D o In an ACL entry on an object or directory in the DMU formatE dictionary you can identify users who work from a particularE terminal line. You specify the terminal number in the format TTnn[:]. For example:  TERMINAL = TTH6 G o You can identify all users whose terminal lines are hard-wired5 to your local system. Use the key Cword LOCAL:  TERMINAL = LOCAL B o You can identify all users whose processes are running onD anything other than a hard-wired line. By using the keywordE NONLOCAL you can identify all processes using dial-up lines,B running in batch mode, using DECnet and running as remote? terminals, and using the Distributed Data ManipulationD Facility (DDMF) to run DEC DATATRIEVE from a remote node in5 a network of Digital compDuters. For example: TERMINAL = NONLOCAL B o You can identify all batch processes by using the keyword BATCH:  TERMINAL = BATCH = o You can identify all processes using DDMF to run DEC> DATATRIEVE from a remote node in a network of Digital, computers. Use the keyword NETWORK:  TERMINAL = NETWORK  3 UIC> The UIC (User Identification Code) is a 2-part number orB text E string that identifies a user and determines his or herG relationship to other users on the system. The UIC determines theE ownership of files and is assigned by your system manager. UICs, can be either numeric or alphanumeric: E o A numeric UIC consists of an octal group number and an octal member number. D You can use the asterisk (*) wildcard in place of the groupA number to identify all group numbers and in place of the< F member number group to identify all member numbers. D o An alphanumeric UIC is a text string consisting of a member, name and, optionally, a group name. E You can use the asterisk (*) wildcard in place of the memberB name in an alphanumeric UIC but not in place of the group name. G The UIC is enclosed in square brackets or angle brackets. A commaC separates the two parts of the UIC. The first part of the UICF identifies t Ghe group of users a person belongs to. Group membersF share the same first number or group name in their UICs. You canE control access to files according to UIC group numbers or groupF names. The second part of the UIC identifies the individual user in a group.  4 ExamplesA In an ACL entry, you can use three types of UIC to identify users: C o By specifying all the digits of both parts of the UIC, youD can identify one or mor He users who log in with the same UIC4 associated with their process. For example:  UIC = [240,240] G o By using an asterisk (_*) as a wildcard in place of the secondG part of the UIC, you can identify users who belong to the sameC group and share the first part of their UICs. For example,A the following specification can identify users with UICs4 [240,101], [240,300], [240,544], [240,777]:  UIC = [240,*]I D o By using asterisks in place of both groups of digits in the? UIC, you identify all users, regardless of their UICs:  UIC = [*,*] E You must include the comma and enclose the UIC specification@ in square brackets or angle brackets. If you specify noC UIC for an ACL entry, the dictionary supplies [_*,_*] as a default.  3 UsernameC Specifying a username in an ACL entry limits the entry to oneDJ user or to a group of users who log in with the same username. For example:  USER = WEAVER  2 SpecificationA The privilege specification is the second part of an AccessD Control List (ACL) entry. The privilege specification controlsA the access changes the user inherits from the parent of the3 object or directory to which the ACL belongs. F The DMU format dictionary can make three types of changes to the* user's list of K inherited privileges: E o The GRANT clause can add any privileges not already acquired1 by the user and not banished previously. F o The DENY clause can remove any privileges the user had to the parent directory. A o The BANISH clause can deny a privilege to a directory orC object. A privilege banished by the ACL of a directory canF never be granted by any entry in the ACL of any descendant in that directory. LF The CDO format dictionary can either grant or deny privileges to dictionaries or objects: B o The GRANT clause can give any privilege. You must grant aA right for the user to have that right. Any privilege not( specifically granted is denied. C o The DENY clause can specifically deny any privilege. SinceG the user is denied all access rights not specifically granted,C you don't have to specify this clause. If you specify onlMyF this clause, any privilege not denied will be granted. If youD specify both GRANT and DENY, privileges will be granted andC denied in the order specified and any privilege not listed will be denied.  wwLxX 1 Client@ DEC DATATRIEVE Client for Windows is a Windows applicationE which provides a user-friendly graphical interface, on Personal= Computers running Microsoft Windows, for performing DEC2 DATATRIENVE operations on a connected server. F DEC DATATRIEVE Client for Windows is layered on and requires theE DEC DATATRIEVE Version 7.1 software which contains the ExtendedF Client-Server API and takes care of the client-server connection and communications.  wwLxX1 DBMSB DEC DATATRIEVE has an interface that allows access to OracleG CODASYL DBMS. The DEC DATATRIEVE language can be used to access aG Oracle CODASYL DBMS domaOin just like a domain based on a RMS file or a remote domain. ? See also COMMIT, CONNECT, DEFINE DATABASE, DEFINE DOMAIN,D DISCONNECT, FINISH, READY, RECONNECT, ROLLBACK, RSE, SHOW, and STORE. < For details on how to use Oracle CODASYL DBMS from DECE DATATRIEVE, refer to the DEC DATATRIEVE Guide to Interfaces and- to the DEC DATATRIEVE Reference Manual.  wwLxX1 Motif? DEC DATATRIEVE provides a working intePrface to DECwindowsE Motif. If you are working in a workstation environment and haveG DECwindows Motif installed on your system, you can take advantageC of certain DECwindows Motif features that provide you with an easy way to: B o Scroll through the content of your DEC DATATRIEVE session  o Invoke command files $ o Open and close log sessions > o Navigate through the Oracle CDD/Repository dictionaryE structure and Q perform expand, contract, edit, extract, show,< execute, and ready actions upon appropriate objects 4 o Set certain DEC DATATRIEVE setup parameters B o Display information on DEC DATATRIEVE objects and sourcesC in a separate Show window, which can remain on your screen/ throughout your DEC DATATRIEVE session E o Display help on DEC DATATRIEVE-specific topics in a separateF DECterm window that can remain on your screen throughRout your DEC DATATRIEVE session E o Display DEC DATATRIEVE graphics in a separate DECterm windowF that can remain on your screen throughout your DEC DATATRIEVE session F For tutorial information on using the DECwindows Motif interfaceE to DEC DATATRIEVE, see the DEC DATATRIEVE DECwindows Motif Help library.  2 Invoking@ Before you can invoke DEC DATATRIEVE in a DECwindows MotifC environment, you must be runni Sng DECwindows Motif software onD your workstation. You may also find that to run DEC DATATRIEVEF software on your workstation, the following conditions should be met: C o The logical DECW$DISPLAY should be pointing to the node on2 which you want to display DEC DATATRIEVE. E o The logical DTR$NOWINDOWS must be undefined or be assigned a value other than true. @ o The Security item of the Customize menu of your SessionC T Manager window should recognize the node on which you want0 to display your DEC DATATRIEVE session. G These are described in more detail in the DEC DATATRIEVE Guide to: Interfaces or in the DECwindows Motif documentation. E You can then invoke DEC DATATRIEVE with either of the following commands: = o The DCL command RUN SYS$SYSTEM:DTR32xx.EXE (where xx= represents the 1- to 26-character suffix appended atB installation)U. You can also use any symbols that you have3 already defined to represent this command. A o The DATATRIEVE command. This command takes the following format: E DATATRIEVE [qualifier [...]] ["DATATRIEVE-command-string"] F The optional qualifiers to the DATATRIEVE command include the following: . /INTERFACE = {DECWINDOWS}2 {CHARACTER_CELL} F Specifies the dVisplay interface to be used by DEC DATATRIEVE.C If your default environment is the command-line interface,G then CHARACTER_CELL is the default. If your system is properlyE defined to invoke the DEC DATATRIEVE interface to DECwindowsC Motif, the default is DECWINDOWS. This qualifier is usefulA if you are working in a DECwindows Motif environment andC you want to submit a DEC DATATRIEVE command procedure fromC a foreign command line. N Wormally if your system is defined@ to invoke the DECwindows Motif interface and you try to@ execute a DEC DATATRIEVE command from a foreign commandD line, the DEC DATATRIEVE main application window appears onB your screen. By using the DCL DATATRIEVE command with theG /INTERFACE=CHARACTER_CELL qualifier, you can enter the commandG on a foreign command line and the main application window will not be displayed.  /[NO]DEB XUG F Specifies whether DEC DATATRIEVE should display special debug* messages. The default is NODEBUG. /VARIANT = image-suffix A Indicates the 1- to 26-character suffix applied to a DECE DATATRIEVE image upon installation to uniquely identify thatA image. This qualifier is needed only if you invoke a DECD DATATRIEVE image that was not selected as the default imageC at installation time. If the default image you Yare runningE includes a suffix and you want to run an image that does notF include a suffix, use the /VARIANT qualifier alone, as in the following example:  $ DATATRIEVE/VARIANT G The DCL DATATRIEVE command can also take a DEC DATATRIEVE commandC or statement as an argument. This allows you to execute a DECB DATATRIEVE command, statement, or procedure without enteringB interactive DEC DATATRIEVE. If the DATATRIEVE-command-stZringA contains more than one word, it must be placed in quotation marks. C You can abbreviate the DCL DATATRIEVE command to the shortest3 form that is unique among other DCL commands.  wwqAxX 1 DictionaryG The Oracle CDD/Repository dictionary system holds the definitionsD of records, domains, tables, procedures, plots, and databases.F The Oracle CDD/Repository dictionary system lets you store these( definitions in [ one of two formats: ? o CDO format- You manipulate CDO format dictionaries andG definitions with the Common Dictionary Operator (CDO) utility. @ o DMU format-You manipulate the DMU format dictionary andB definitions with the Dictionary Management Utility (DMU),F the Dictionary Verify/Fix utility (CDDV), and the Common Data< Dictionary Data Definition Language utility (CDDL). G You can store DEC DATATRIEVE domain, record, and por \t definitionsE in either the DMU or the CDO format dictionaries. You can storeE table, procedure, plot, and DEC DATATRIEVE database definitions( only in the DMU format dictionary. @ When Oracle CDD/Repository is installed on your system, it? creates a DMU format dictionary if there is no DMU format@ dictionary already on the system. If there is a DMU formatC dictionary on the system, then Oracle CDD/Repository uses theE existing DMU dictionary. ] The Oracle CDD/Repository installation@ procedure also creates a special CDO dictionary called theC compatibility dictionary. This dictionary overlaps DMU formatC definitions and DMU format definitions. Oracle CDD/Repository@ also lets you create any number of additional user-definedC CDO format dictionaries. Each dictionary (both DMU format andD CDO format) is organized as a hierarchy similar to the OpenVMS directory structure. D For the DMU ^format dictionary, there is a permanent dictionaryE directory, CDD$TOP, at the top of the hierarchy. For CDO format? dictionaries, the top-level directory of the hierarchy isB represented by an anchor that looks like a OpenVMS directoryE specification. MYNODE::SYS$COMMON:[CDDPLUS] is an example of anD anchor; however, you need only use as much of the anchor as isF necessary to determine a target dictionary directory relative to& your default dictionary sett_ing. G Each top-level directory contains subdirectories and definitions.A Each dictionary directory in the hierarchy can contain both% definitions and subdirectories. D To display the path name of your current dictionary directory, use the command:  SHOW DICTIONARY D To change your current dictionary directory to a different one use the command: $ SET DICTIONARY dictionary-path B For help on defining a dic `tionary directory, see HELP DEFINEG DICTIONARY. For help on creating a new CDO format dictionary, see. the Oracle CDD/Repository documentation.  wwgxX 1 EditorA By default, DEC DATATRIEVE uses EDT when you issue the EDITD command. You can specify DEC TPU, LSE, or EDT by assigning theB logical name DTR$EDIT. There are two ways to assign DTR$EDITE to the acronym TPU, LSE, or EDT. Note that you must specify the8 three-character aacronym, such as TPU, not DEC TPU. 1 o Use the DCL DEFINE command. For example:  $ DEFINE DTR$EDIT TPU F o Use the DEC DATATRIEVE function FN$CREATE_LOG from within DEC! DATATRIEVE. For example: / DTR> FN$CREATE_LOG ("DTR$EDIT", "LSE") B The assignment from within DEC DATATRIEVE lasts for that DECC DATATRIEVE session. To make the assignment permanent, use the( DEFINE command in your login file. = To use b LSE with callable DEC DATATRIEVE, add the module@ name LSE to your DEC DATATRIEVE options file. For example:? SYS$SHARE:DTRSHRxx/SHARE, - DTR$LIBRARY:TERMSERVE/LIBRARY( /INCLUDE=(ADT,EDT,GUI,HLP,LSE,TPU) D This options file enables calling programs to use ADT, the EDTG editor, Guide Mode, DEC DATATRIEVE online help, LSE, and DEC TPU. C See the documentation for LSE for more information about thatD product. See the help topic DEC TPU for more infcormation about( using DEC TPU with DEC DATATRIEVE.  2 LSE> DEC DATATRIEVE supports editing with LSE from within DEC= DATATRIEVE. This support includes LSE templates for DECE DATATRIEVE that allow users to edit DEC DATATRIEVE definitions,E commands, and statements in an environment that is sensitive to the DEC DATATRIEVE syntax.  2 Templates_for_LSEC The LSE templates for DEC DATATRIEVE offer command completionG and syntax r decall for the intermediate to advanced DEC DATATRIEVEF user. Users of the templates should already know how to use LSE.  3 DCL_LevelG To use the templates from DCL level, invoke LSE at the DCL promptG and specify DEC DATATRIEVE as the editing environment. You can do this in one of two ways: G o Use the file type .DTR for the file you wish to edit with LSE.D Specifying the .DTR file type causes LSE to use the editing- environment f eile for DEC DATATRIEVE. D For example, you want to use LSE to create a DEC DATATRIEVE7 procedure that will generate a payroll report:  $ LSEDIT PAYROLL.DTR A This command invokes LSE and sets the language-sensitiveB editing environment to DEC DATATRIEVE. The editing bufferE on your screen already contains the placeholder {DATATRIEVE_A session}. Expand {DATATRIEVE_session} by positioning theG cursor on the plafceholder and pressing . You can begin( editing the procedure with LSE. > o Invoke LSE at the DCL prompt, set the language to DECB DATATRIEVE, and type in the placeholder that begins a DEC$ DATATRIEVE editing session.  For example:  $ LSEDIT ? At the LSE prompt, set the language to DEC DATATRIEVE: % LSE> SET LANGUAGE DATATRIEVE ? In the editing buffer, type {DATATRIEVE_session} asg itD appears here, with the braces ({}). Expand that placeholderB by positioning the cursor on the placeholder and pressing CTRL/E.  3 DTR_LevelF To use the templates from within DEC DATATRIEVE, assign DTR$EDIT4 to the acronym LSE, then use the EDIT command: , DTR> FN$CREATE_LOG ("DTR$EDIT", "LSE") DTR> EDIT G DEC DATATRIEVE opens a LSE editing buffer. In the editing buffer,B type in the placeholder that starts ha DEC DATATRIEVE sessionF {DATATRIEVE_session}. Expand that placeholder by positioning the4 cursor on the placeholder and pressing CTRL/E.  3 Key_DefinitionsG To save keystrokes, you can define a key to print the placeholderE {DATATRIEVE_session}. For example, adding this line to your LSED initialization file enables the use of the key sequence GOLD/D7 for printing the placeholder when you are in LSE: J define key/if_state=gold D "do ""ent ier text {DATATRIEVE_session}"" " D LSE continues lines longer than 80 characters off the templateA screen. If you don't want to insert continuation charactersB to see the entire display of long lines, you can define keys? for horizontal scrolling in your LSE initialization file.@ For example, you could add the following lines to your LSEE initialization file to enable right and left scrolling with use4 of the GOLD (PF1) and angle bracket (<>) keys: j ( ! Define horizontal scrolling keys< define key/if_state=gold ">" "repeat 32 shift/forward"< define key/if_state=gold "<" "repeat 32 shift/reverse"  wwxX1 Forms8 You can use forms with DEC DATATRIEVE in two ways: C o Using the DEFINE DOMAIN command to associate a form with a* domain. (See HELP DEFINE DOMAIN.) @ o Using the DISPLAY_FORM statement to explicitly map dataA between form and record fields. k (See HELP DISPLAY_FORM.) F The SET FORM and SET NO FORM commands enable and disable the use7 of the forms interface. See HELP SET for details. B DEC DATATRIEVE opens a form file once, although there may beA more than one form used from the same library. It allocatesD resources for a named form once. The form can be used multipleD times. When you use a form from a form library, DEC DATATRIEVEF automatically opens the form library and prepares the lform. WhenE you are finished with the form and wish to return the resources it uses, enter:  RELEASE form-name F When all forms using a form library are released, the library isE closed. If any form is still being used, the library stays open" until that form is released. G Note that you cannot use forms if none were specified for support0 during the installation of DEC DATATRIEVE.  wwxX1 GuideA m Guide Mode is a tutorial aid available to the beginning DECB DATATRIEVE user. It is completely self-explanatory. However,B Guide Mode is available only from VT52, VT100, VT125, VT220,D VT240, and compatible terminals. To enter Guide Mode, type the command:  SET GUIDE C If you are using an unsupported terminal, DEC DATATRIEVE willB display the error "Invalid terminal type for Guide Mode" and$ return you to the DTR> prompt. A Ann advanced form of Guide Mode is also available. It coversA significantly more of the DEC DATATRIEVE language. To enter, Advanced Guide Mode, type the command:  SET GUIDE ADVANCED  wwxX1 New_FeaturesF See the following topics for more information about new features% for DEC DATATRIEVE Version 7.1.  +2 DEC_DATATRIEVE_Textfile-based_DictionaryI DEC DATATRIEVE Version 7.1 supports a text-file based dictionary inC o addition to Oracle CDD/Repository. This new functionality hasD been added for customers who have to buy Oracle CDD/RepositoryF just as a prerequisite for DEC DATATRIEVE. From now on they willC be able to avoid this dependency because a simple alternative6 storage for DEC DATATRIEVE objects is available. ? DEC DATATRIEVE Version 7.1 is able to work without OracleB CDD/Repository while keeping its current functionalities for, the following commandsp and statements:  o DEFINE  - DOMAIN  - DATABASE > - RECORD (clauses FROM FIELD and FROM GROUP are also supported)  - PROCEDURE  - TABLE  - PORT - PLOT $ o READY domains and databases  o Execute (:) procedures ) o Use of tables in VIA expressions / o Use of records in WITH_FORM statements * o Use of plotqs with PLOT statements  o DELETE < o EDIT with all clauses related to dictionary objects ? o EXTRACT with all clauses related to dictionary objects  o PURGE  o REDEFINE o SET  - DICTIONARY  - PLOTS o SHOW E - ALL, DATABASES, DICTIONARIES, DICTIONARY, DOMAINS, PLOTS,' PROCEDURES, RECORDS, TABLES  - path-name $ - PRIVrILEGES for path-name F o Directory Services for DECwindows Motif interface and Windows# Client Dictionary Browsers  o ACL control  - DEFINEP  - DELETEP  - SHOWP @ Some customers are interested in associating ACLs toF definitions that define the access control for the definedA objects (data) rather than the definition (metadata). 2 DEC DATATRIEVE Version 7.1 does nost support: . o WITH RELATIONSHIPS clauses in DEFINE. = This is a specific clause for CDO objects. No strict; dependency relationship is supported for text file: definitions. This is the same as for DMU objects.  o CDD$DATABASE objects. ' They are specific CDO objects. C o READY of CODASYL DBMS databases and domains based on them. > CODASYL DBMS support still requires the use of OracleC CDD/Rep tository. Even if Oracle CODASYL DBMS Version 6.1 noF longer requires Oracle CDD/Repository, DEC DATATRIEVE dependsA on Oracle CDD/Repository to get DBMS matadata because no6 direct access to DBMS provides the same info.  o CDO command. ; This is explicitly targetted to a linked CDO image D o General support of fields is not offered (no DEFINE FIELD),B since it should be restricted to CDO repositories because? field us as individual elements are not supported by DMUG dictionaries. However the capability of defining global fieldsF (fields that are stored by themselves) is interesting. OracleC CDD/Repository users currently can define them via the CDO; utility and access them via the FROM FIELD clause.  3 Using_Oracle_CDD/Repository> When using DEC DATATRIEVE with Oracle CDD/Repository the following happens: A o DEC DATATRIEVE stores/retri veves all its specific objectsB (domains, databases, procedures, tables and plots) from a* Oracle CDD/Repository dictionary. A o DEC DATATRIEVE stores/retrieves record definitions (data= aggregates definitions) from a Oracle CDD/Repository? dictionary. Record definitions can be created by otherB products (e.g. CDO utility) and shared by other products. G o DEC DATATRIEVE gets Oracle CODASYL DBMS metadata from a Oracle# C wDD/Repository dictionary.  &3 Using_the_Textfile-based_DictionaryE The new textfile-based dictionary stores objects created by DECH DATATRIEVE (such as: domains, databases, tables, procedures, plotsE and objects potentially shareable as records) in textual formatF with the corresponding DEC DATATRIEVE code used by the user. TheG stored format reproduces exactly the text used by the user as farG as indentation and comments are concerned; actual code ixs howeverG converted to uppercase. This corresponds to the current mechanismG used by DEC DATATRIEVE to store the text of an object into Oracle CDD/Repository.  1. Drawbacks: E o Records created by DEC DATATRIEVE cannot be understood byE other products via a common protocol (protocol is the DEC- DATATRIEVE language syntax here).  2. Advantages: = o Objects are portable (they depend only on the DEC y DATATRIEVE syntax. F o Objects can be directly read by users and by applications. 5 o Objects can be created by other products. ' o SHOW operations are faster. F Every object is stored in an individual disk file. The file nameE is built with a suffix determined by the object type (e.g. _DOMD for a domain) and the object name. File type is .DTR. Example:B "define domain yachts using yacht on t.dat" creates the fi zleA YACHTS_DOM.DTR whose content is DOMAIN YACHT USING YACHT OND T.DAT. The file is stored in a disk directory that corresponds! to the dictionary pathname. D Note that you can also define dictionaries, these will have no# suffix and file type is .DIR. D Note that from DEC DATATRIEVE you will not see any difference,A the disk file YACHTS_DOM.DTR will always be shown as domain YACHTS. F Objects pathnames are supported in DMU or {CDO format and matched to file specifications.  1. Object name: B The DEC DATATRIEVE object name corresponds to a file nameC according to the following rules: <====>  C Suffixes are: _DOM for domains, _REC for records, _DBS forB databases, _PRC for procedures, _TAB for tables, _PLT for@ plots, _FLD for fields. Example: DEFINE RECORD YACHT...@ creates the file |YACHT_REC.DTR. DEFINE DOMAIN YACHTS...) creates the file YACHTS_DOM.DTR. B Two objects with the same name and different types cannotE be stored in the same directory: even if they have differentG file name, they cannot be distinguished by DEC DATATRIEVE whenF commands as SHOW, EDIT, DELETE are used. These commands don't" refer to a specific type. F File type is DTR that is already registered as file extensionG for DEC } DATATRIEVE code: the text contents of these objects is& actually DEC DATATRIEVE code.  2. Directory path: D The directory paths in Oracle CDD/Repository format will beC converted to disk directory paths, according to documented rules. For example: E o If CDD$TOP is involved (you are using the DMU side of theB Oracle CDD/Repository dictionary), you must define the9 logical name DTR$TOP to point to a directo ~ry. 5 o A CDO anchor is already a disk directory. C o The name series that follows CDD$TOP or an anchor until> the last name excluded, is considered as a list ofD subdirectories. Example: CDD$TOP.DTR$LIB.DEMO.YACHTS ==>G if CDD$TOP points to OUR_DISK:[DICT] disk directory is OUR_$ DISK:[DICT.DTR$LIB.DEMO]  ?3 Installing_DEC_DATATRIEVE_with/without_Oracle_CDD/Repository= If Oracle CDD/Repository is avai lable at DEC DATATRIEVED installation time, the installer can select whether the OracleG CDD/Repository shareable image has to be linked to DEC DATATRIEVEC or not. If Oracle CDD/Repository is linked to DEC DATATRIEVE,E its use can dynamically be disabled and enabled at run time. IfF Oracle CDD/Repository is not linked to DEC DATATRIEVE or its useD is disabled and cannot be enabled at run time; the alternative dictionary is enabled. F When DEC D ATATRIEVE is not linked with Oracle CDD/Repository, orF when you start DEC DATATRIEVE having defined the DTR$ENVIRONMENTD logical name to be without Oracle CDD/Repository (see EnablingC and Disabling Oracle CDD/Repository), the SHOW SET_UP command will display: ! NO CDD/Repository Available  /3 Enabling_and_Disabling_Oracle_CDD/RepositoryC If Oracle CDD/Repository is linked to DEC DATATRIEVE, its useG can dynamically be enabled and disab led at run time in one of the following ways: B o Using the DEC DATATRIEVE SET CDD and SET NO CDD commands.: SET NO CDD means that DEC DATATRIEVE must use the# textfile-based dictionary.: SET CDD means that DEC DATATRIEVE must use Oracle1 CDD/Repository as the repository system. C The SHOW SET_UP command always displays the status. If you- enter SET CDD, SHOW SET_UP displays: $ CDD/Repository enabled. 7 If you enter SET NO CDD, SHOW SET_UP displays: % CDD/Repository disabled. / o Using the DTR$ENVIRONMENT logical name . $ DEFINE DTR$ENVIRONMENT "/NOCDD" F Note that when you define the DTR$ENVIRONMENT logical name toG be NOCDD, you cannot use SET CDD, SET NO CDD commands from DEC DATATRIEVE.  +3 Compatibility_Between_CDD/NOCDD_Versions= DEC DATATRIEVE provides the EXTRACT command th at allowsD definitions (all of them, or restricted by type, or individualG ones) to be copied to files. An extracted definition contains theF DEC DATATRIEVE REDEFINE command that allows to redefine the same$ object in another environment. E The EXTRACT command is supported by all DEC DATATRIEVE versionsE and allows to get DEC DATATRIEVE command files that are able to> redefine the same objects in the same or another system.9 DEC DATATRIEVE pro vides a new utility (DTREXTRE) toB allow a user to extract all the DATATRIEVE objects stored in6 a directory tree starting from a base directory.B DTREXTRE is a C program linked with the DATATRIEVE shareableA image, that calls recursively the DATATRIEVE interpreter to? EXTRACT all the objects in the current directory and then' moves down to the subdirectories.C DEFINE DICTIONARY and SET DICTIONARY commands are inserted atD the beginning of each set of definitions belonging to the sameG directory to allow to recreate the objects in proper directories.A DTREXTRE is activated by a DCL Run command; and prompts for the required information. $ RUN SYS$SYSTEM:DTREXTRE* ... initializing DATATRIEVE ..., Enter output file name: MY_DEF.COM% ... opening output file ... 2 UNSIGNED_Field_Attribute@ DEC DATATRIEVE Version 7.1 supports a new field attribute:@ UNSIGNED. Th e UNSIGNED field attribute is valid for fieldsC of format: BYTE, LONG, WORD, and QUADWORD. The UNSIGNED fieldE attribute allows you to extend the range of the specified field; values because it considers only the positive values. A In the following example F1 is declared as a LONG thereforeD its range is from -2**31 to +2**31 - 1. F2 is decleare as LONG9 UNSIGNED, having a double range of positive values.  DTR> DECLARE F1 LONG . DTR> F1 = 3000000000R Variable "F1" may contain an incorrect value due to error during assignment.# Truncation during assignment.% DTR> DECLARE F2 LONG UNSIGNED . DTR> F2 = 3000000000 DTR>! DEC DATATRIEVE V7.1 managesA unsigned quadword fields and variables as signed quadwords.  DTR> DECLARE RECORD R DFN> 01 R. DFN> 05 LL2. DFN> 10 L0 LONG. DFN> 10 L1 LONG.! DFN> 05 ULL2 REDEFINES LL2. DFN> 10 L2 UNSIGNED LONG. DFN> 10 L3 UNSIGNED LONG.. DFN> 05 Q0 REDEFINES LL2 UNSIGNED QUAD .' DFN> 05 Q1 REDEFINES LL2 QUAD . ; [Record is 8 bytes long.] DTR>5 DTR> DECLARE DOMAIN D USING R ON UNSIGNED_Q.DAT DTR> DEFINE FILE FOR D ; DTR> READY D WRITE ;8 DTR> STORE D USING BEGIN L0 = -1 ; L1 = -1 ; END ;& DTR> PRINT L0, L1, L2, L3 OF D ;!2 Client/Server_TPC/IP_TransportE The DEC DATATRIEVE Client/Server connection is provided via TCPD  /IP in addition to DECnet. If you are using the TCP/IP networkA transport to communicate between a DEC DATATRIEVE Server on@ OpenVMS and DEC DATATRIEVE Client for Windows, you can useB PATHWORKS, Windows NT, or Windows 95, since they all contain the TCP/IP protocol. > For more information on how to set up the TCP/IP networkA transport both on Client and Server, see the DEC DATATRIEVE' Client for Windows documentation.  12 Temporary_Definition_of_DEC_DATATRIEVE_ObjectsC DEC DATATRIEVE objects can be defined as temporary so that noG permanent storage is required. The objects' time scope is limited$ to the DEC DATATRIEVE session. D This is a useful feature to create DEC DATATRIEVE applications that: E o Don't depend on any dictionary system (objects are temporary stored in main memory). > o Don't conflict with existing objects and directories. ? o Don't need to delete objects and clean up directories. F Temporary objects are defined using the DECLARE command. You can$ declare the following objects:  o Domains  o Records  o Procedures  o Tables  o Databases E Temporary objects can be identified by entering a SHOW command;@ those objects preceeded by a # sign are temporary. See the following example: ? DTR> DECLARE DOMAIN TEMP_YACHTS USING YACHT ON YACHT.DAT; DTR> SHOW DOMAINS Domains:? * ACCOUNT_BALANCES;1 * ANNUAL_REPORT;18 # TEMP_YACHTS;1 * YACHTS;1 DTR>  wwO&xX 1 NEWUSERE Before you begin to actively use DEC DATATRIEVE, you should runE the NEWUSER program. This program performs the following tasks: D o Copies sample data files into the OpenVMS directory you are currently using  ' o Defines a dictionary directory F o Copies sample data definitions into that dictionary directory D NEWUSER helps beginning users get started with DEC DATATRIEVE.= To run the NEWUSER program, you should set your defaultD OpenVMS directory to a directory that you want to use for yourA DEC DATATRIEVE work and then enter the following command: $ @DTR$LIBRARY:NEWUSER G See the person in charge of DEC DATATRIEVE on your system, if you have any questions.  wwtLxX1 NodeC A node is an individual computer system in a network that canA communicate with other computer systems in the network. The) format for a node-specification is: @ [ [ [UIC] password ] [ account ] ]A node-name["[ user-name password ] [ ]"]@ [ [ input-prompts ] [ input-prompt] ]  2 Arguments   node-name  the remote node.   UIC A the user identification code, or PPN, through which you can access the domain.  user-name < the user name through which you can access the domain.  password 6 the login password for the user name or UIC/PPN.  account : the account through which you can access the domain.   input-prompt F a prompting value expression that can ask for login information. F If you define or ready a domain without using input-prompts, youF must specify a user name or UIC and then a password. (Account is optional.)  2 ExampleE Ready the PERSONNEL domain on node BIGVAX and then the PROJECTS domain on node ELEVEN: 3 DTR> READY PERSONNEL AT BIGVAX"CASIDI SESAME"4 DTR> READY PROJECTS AT ELEVEN"[200,200] BELLE" F Ready the PERSONNEL domain on node ELEVEN. Use input prompts for" both user name and password: @ DTR> READY PERSONNEL AT ELEVEN"*.'user name' *.'password'" C When the remote node is accessed, DEC DATATRIEVE asks for theE required login information. The password response is not echoed to the terminal. G You can also use input-prompts in domain definitions, not just in a READY command.  wwtLxX 1 Path_nameC Path names are unique designations that identify a  dictionary6 directory or object in the dictionary hierarchy. C The dictionary directory you are assigned as a DEC DATATRIEVEC user is not a top level directory. CDD$TOP is the name of theD top level directory in a DMU format dictionary; an anchor likeG MYNODE::SYS$COMMON:[CDDPLUS] is the name of a top level directoryB in a CDO format dictionary. You can trace the parentage of a directory or object by: D o Joining the given names of dire ctories and objects starting# with CDD$TOP or the anchor > o Including the given names of intermediate directories E o Ending with the given name of the target directory or object you want to specify E This path you travel between CDD$TOP or the anchor and a target0 directory or object is called a path name. ? In path names, each given name starts with a letter (A-Z)C and ends with a letter or digit (0-9). A given name ca nnot beE longer than 31 characters and can contain only letters, digits,F dollar signs ($), and underscores (_). Separate the names of the: directories and objects in a path name with periods. E When you start DEC DATATRIEVE, your default directory is set toD the contents of the logical symbol CDD$DEFAULT. You can changeE your default directory by using the SET DICTIONARY command (see HELP SET).  2 Examples? Path names are categor ized as one of the following types: @ o Full, beginning with CDD$TOP or an anchor. For example,; CDD$TOP.DTR$USERS.BELL might be the full path name< for the DMU format directory assigned to user Bell.@ MYNODE::DISK$1:[KIRK.DTR]PERSONNEL.SALARIED would be an? example of a full path name of a CDO format dictionaryC directory. You can see the full path name of the directory? you are using by entering the SHOW DICTIONARY command. 8 o Relative, beginning with the name of a child of8 your default dictionary directory. For example,= assume CDD$TOP.DTR$USERS.BELL is user BELL's default7 directory. PERSONNEL is the relative path name: referring to CDD$TOP.DTR$USERS.BELL.PERSONNEL. If: your default dictionary directory in a CDO format? dictionary is MYNODE::DISK$1:[KIRK.DTR]PERSONNEL, thenC SALARIED.EMPLOYEES would be a relative path name referringB t o MYNODE::DISK$1:[KIRK.DTR]PERSONNEL.SALARIED.EMPLOYEES. F o Logical, using a name you have defined for a full or relativeE path name. For example, user Bell might define the following logical path name: 7 $ DEFINE PERS CDD$TOP.DTR$USERS.BELL.PERSONNEL F Then, within the current process, PERS would be equivalent toF CDD$TOP.DTR$USERS.BELL.PERSONNEL. You can also define logicalB names for CDO format dictionary path names using the same format.  wwrxX 1 ProcedureD A DEC DATATRIEVE procedure is a phrase, statement, or group ofF statements stored in the data dictionary. A procedure is definedF by the DEFINE PROCEDURE statement (see HELP DEFINE PROCEDURE). A: procedure can be invoked by the following construct:  :procedure-path C Procedure-path is the dictionary path of a previously defined> procedure (see HELP Path_name). The procedure invocationA (:procedure-name) is replaced by the text in the procedure. E You can also invoke a procedure by entering the keyword EXECUTE% followed by the procedure name. . To display a procedure definition, type:  SHOW procedure-name : To obtain the names of the defined procedures, type:  SHOW PROCEDURES  wwrxX1 Quit* DEC DATATRIEVE has two ways to quit: EXIT  CTRL/Z  2 EXIT@ You can issue the EXIT command to stop your DEC DATATRIEVEF session any time you are at the DTR> prompt. It is not necessary@ to issue a FINISH or RELEASE command before using the EXIT command.  3 Example# End a DEC DATATRIEVE session:  DTR> EXIT $  2 CTRL_ZD You can use CTRL/Z to exit from DEC DATATRIEVE when you are atE the DTR> prompt. It has the same effect as typing EXIT. You canE also use CTRL/Z to terminate the current statement and get back to the DTR> prompt.  3 Example< Enter CTRL/Z to the Enter prompt of a STORE statement: & DTR> READY YACHTS WRITE DTR> STORE YACHTS, Enter MANUFACTURER: / Execution terminated by operator DTR>  wwxX1 RDBF You can use DEC DATATRIEVE to access various relational databa se? management systems. These systems include Oracle Rdb, VAXA Rdb/ELN, and the DEC DB Integrator Gateway facility. DEC DB? Integrator Gateway is a relational database facility that? provides access to data stored on ORACLE, DB2, and SYBASEG databases. DEC DB Integrator Gateway users have access to ORACLE,E DB2, and SYBASE data through DEC DB Integrator Gateway with DECE DATATRIEVE, RDO, or a third generation language supported by an8 Oracle Rdb Data Manipulation Language precompiler. C You can ready relational database directly or you can define 3 domains for each relation you want to access. E See also COMMIT, DEFINE DOMAIN, DEFINE DATABASE, FINISH, PRINT, READY, and ROLLBACK.  wwxX1 Release_Notes> The DEC DATATRIEVE Release Notes for Version 7.1 contain= information about new features, bug fixes, undocumentedC restrictions, known bugs, documentation errors and omissions,B and incompatibilities between versions of the DEC DATATRIEVEC software. Information about new features is also available in< online help. Type HELP NEW_FEATURES at the DTR prompt. D Release Notes are available online, the file specification is:# SYS$HELP:DTR071.RELEASE_NOTES  wwxX1 RSEF The record selection expression (RSE) is used in many statementsE to specify a set of records, called a record stream. The format is:  [FIRST n]; [ ] [context-variable-1 IN] rse-source-1 [ ALL ] K [CROSS [context-variable-2 IN] rse-source-2 [OVER field-name-1] @ [WITH Boolean-expression] [REDUCED to reduce-key[,...]] & [SORTED BY {sort-key} [,...]]] # The format for rse-source is: L { remote-domain-name }L { rdb-relation-name  }L { rdb-domain-name }L { rms-domain-name }L { collection-name }L { list }L { }L { dbms-record-name [ { MEMBER } ] }L { [ { OWNER } [OF] [context-var.set-name]] }L { dbms-domain-name [ { WITHIN } ] }  2 Arguments   context-variable B a variable name used with the records identified by the rse.  rse-source D the name of a readied domain or established collection. An rse source must be specified.   field-name-1 G the name of the field specified in rse-source-1 and rse-source-2.   boolean-expression @ a specification of the conditions a record must meet to be$ included in the record stream.  reduce-key : a list of one or more reduce keys (see HELP REDUCE).  sort-key 6 a list of one or more sort keys (see HELP SORT).   remote-domain-name $ the name of any remote domain.   rdb-relation-name > the name of the relation that is the source for the rse.   rdb-domain-name G the name of the relational domain that is the source for the rse.   rms-domain-name @ the name of the RMS domain that is the source for the rse.   collection-name D the name of a DEC DATATRIEVE collection that is the source for the rse.   list G the name of a DEC DATATRIEVE list that is the source for the rse.  " Oracle CODASYL DBMS-record-name G the name of the Oracle CODASYL DBMS record that is the source for the rse.  " Oracle CODASYL DBMS-domain-name G the name of the Oracle CODASYL DBMS domain that is the source for the rse.  set-name G the name of a Oracle CODASYL DBMS set. The record type of the rse( must be a participant in that set. E The CROSS clause lets you make the cross product of one or moreC domains. If you specify the OVER clause, DEC DATATRIEVE findsF the specified field in each domain and only returns the combinedD records if the fields are identical. For more details on CROSSF see HELP CROSS. For complete information on the record selection9 expression see the DEC DATATRIEVE Reference Manual.  2 Examples An RSE can be simply:  o A record source:  YACHTS CURRENT A B o A record source with a Boolean expression and a SORTED BY clause: / YACHTS WITH PRICE GT 0 SORTED BY LOA F o A record source with a Boolean expression, REDUCED TO clause, and a SORTED BY clause: D YACHTS WITH PRICE GT 0 REDUCED TO TYPE, LOA SORTED BY LOA 5 o Multiple record sources with a common field: & YACHTS CROSS OWNERS OVER TYPE 8 o Multiple record sources with context variables: K A IN YACHTS CROSS B IN OWNERS OVER BUILDER WITH A.MODEL NE B.MODEL  wwxX1 Sample_DataG DEC DATATRIEVE provides a series of sample definitions for you toE practice with as you are learning DEC DATATRIEVE. Many of theseG sample definitions are used in the examples in the DEC DATATRIEVE documentation set. D DEC DATATRIEVE provides the NEWUSER.COM program which lets youD store these definitions and their accompanying data files in aE  specific area of your system. NEWUSER stores the definitions inC a Oracle CDD/Repository directory that it creates for you. ItE stores the data files (file type .DAT) in the OpenVMS directory$ to which you have set default. C The location of these files is important in the efficient useC of DEC DATATRIEVE. Unless your domain definition specifically@ identifies the OpenVMS directory in which the data file isD stored, DEC DATATRIEVE looks in your d efault OpenVMS directoryC for the data files it needs to perform various operations. ToF use the sample definitions correctly, you should always set yourB OpenVMS default directory to the directory in which you haveE stored your sample data files; otherwise, when you ready one ofG the sample domains, you may get an error message, such as the one in the following example:  DTR> READY YACHTS$ File not found - "YACHTS.DAT". DTR> F  If you get such an error, you should exit DEC DATATRIEVE and setG your default OpenVMS directory to the directory that contains the9 sample data files and then reinvoke DEC DATATRIEVE. ; A number of the sample definitions are also stored inE CDD$TOP.DTR$LIB.DEMO upon installation of DEC DATATRIEVE. TheseD definitions are for read-only purposes. You should not attemptF to edit these definitions. Use the sample definitions and sampleE data files provided by NEWUSER.COM for your practice exercises. = If you also use Oracle CODASYL DBMS and Oracle Rdb, DEC= DATATRIEVE provides some DEC DATATRIEVE-specific sample9 definitions for these products. These are stored inA dictionary directories subordinate to CDD$TOP.DTR$LIB.DEMO:= CDD$TOP.DTR$LIB.DEMO.RDB and CDD$TOP.DTR$LIB.DEMO.DBMS.  wwxX 1 SearchF DEC DATATRIEVE has a Context Searcher. If it is enabled, it willC at tempt to find a context for the fields in a PRINT statement? where the context is left incomplete by the user. Because@ incomplete context might be an error, a warning message isE printed when the Context Searcher completes the context for the user. F The Context Searcher knows how to generate inner print lists forC records related in hierarchies or through Oracle CODASYL DBMSG sets. The following statement normally results in a context error  for "KID_NAME". ( PRINT FATHER, KID_NAME OF FAMILIES A With the Context Searcher enabled, KID_NAME is found in theG occurs list of FAMILIES. The Context Search completes the context as if you had typed: 4 PRINT FATHER, ALL KID_NAME OF KIDS OF FAMILIES F The Context Searcher is enabled with the SET SEARCH command, and. disabled with the SET NO SEARCH command.  wwxX 1 StartupD In DEC DATATRIEVE you can have a startup file that is executedD each time you invoke DEC DATATRIEVE. To set up a startup file,C create a file containing the DEC DATATRIEVE commands you wantE performed at the beginning of each DEC DATATRIEVE session. Then@ create a logical name DTR$STARTUP that points to the file. D For example, you could include the following in your LOGIN.COM file: : $ ASSIGN "DISK3:[MORRISON]DTRSTART.COM" DTR$STARTUP F Whenever you invoke DEC DATATRIEVE, it starts by looking for theD file pointed to by DTR$STARTUP and processing all the commands contained in that file.  wwxX 1 SynonymsG You can create synonyms for any DEC DATATRIEVE keyword. A synonymG cannot be another keyword. Do not use the same name for a keywordA and for the name of a domain, record, field, or other name. D To set up synonyms use the DECLARE SYNONYM command. The format is:  9 DECLARE SYNONYM {synonym [FOR] keyword} [,...]  For example: < DTR> DECLARE SYNONYM PR FOR PRINT, E_S FOR EDIT_STRING G The synonyms remain in effect until you terminate your session orE until you release them with the RELEASE SYNONYM command. If youG want to define synonyms for every DEC DATATRIEVE session, include9 a DECLARE SYNONYM command in your DTR$STARTUP file. @ To see which synonyms are in effect in your DEC DATATRIEVE" session, type SHOW SYNONYMS. E You can declare multiple synonyms for a single keyword by using multiple DECLARE commands. A To release a synonym for your current session, type RELEASE2 SYNONYM followed by the name of the synonym.  ww- xX 1 VersionsE The rules for specifying versions of DEC DATATRIEVE definitions@ follow the rules for specifying versions of OpenVMS files. E The version number is separated from the rest of the given nameD of a definition by a semicolon. This number can be an absoluteC version number or a relative version number. You can omit the@ semicolon and number, but you cannot use only a semicolon.  2 Examples SALARY_RANGE;2 SALARY_RANGE;-1  SALARY_RANGE D You cannot use this specification with the REDEFINE or DEFINE command. A For more information on dictionary version support, see the* Oracle CDD/Repository documentation. F You create versions of domains, procedures, and other dictionary2 objects using the REDEFINE or EDIT commands.  ww- xX 1 GatewayB DEC DATATRIEVE users can access ORACLE, DB2, and SYBASE data? using the DEC DB Integrator Gateway facility, referred toC simply as Gateway in DIGITAL documentation. DEC DB Integrator? Gateway provides users with transparent access to data onD ORACLE, DB2, and SYBASE databases. Users retrieve ORACLE, DB2,@ and SYBASE data through DEC DB Integrator Gateway with DEC@ DATATRIEVE, the interactive Oracle Rdb utility (RDO), or aE third generation language supported by an Rdb Data Manipulation Language precompiler. = For more information, see the DEC DB Integrator Gateway> documentation or the DEC DATATRIEVE Guide to Interfaces.  ww- xX1 VideoA When you use video help, y our screen displays the help text> according to the help settings in effect during your DEC@ DATATRIEVE session. You can see what these settings are byC entering SHOW HELP at the DTR> prompt. You can change the wayD the help text appears on your screen with the SET command. See0 the SET HELP command for more information. D When the default help settings are in effect, you can scan the) help text using the following keys: F up arrow scr olls the help text backward to previous lines.3 down arrow scrolls the help text forward.) left arrow turns back a "page.", right arrow turns forward a "page."D CTRL/W repaints the part of your screen used for help. G If you have prompting turned on, you will see the help prompt forF "Topic?" or "... subtopic?". When the prompt appears, you can do* several things. Enter the following: D RETURN takes you to the next  higher level of the help.F For example, if the prompt is "DEFINE subtopic?",D the next prompt will be "Topic?". If you are atB the "Topic?" prompt, pressing RETURN exits to DTR>.E CTRL/Z exits from help. You will be at the DTR> prompt.C topic the name of a topic. The help on that topic or0 subtopic will be displayed.9 ? Will display the current help again.C * Will display all the sub-topics of the current topic.  ww- xX 1 Keywords> The following list includes all DEC DATATRIEVE keywords.? You should not use these names when you are naming items.? *#(asterisk) ABORT BEFORE @#(at sign) ADT BEGIN :#(colon)A ADVANCED BETWEEN ,#(comma) AFTER BLANK **#(double asterisk)E ALIGNED_MAJOR_MINOR BOOLEAN "#(double quotation mark) ALIN_MAJ_G MI N BOTTOM =#(equal sign) ALL BT !#(exclamation point) ALLOCATIONC BUT >#(greater than sign) AND BY -#(hyphen or minus sign) ANYC BYTE (#(left parenthesis) APPLICATION_KEYPAD CDO <#(less thanB sign) ARGUMENTS CHANGE .#(period) AS CHARACTER +#(plus sign)@ ASC CHARACTERS ?#(question mark) ASCENDING CHOICE )#(rightC parenthesis) AT CLOSE ;#(semicolon) ATT COL /#(slash) AVERAGEE COLLECTIONS _#(underscore) BANISH COLUMN |#(vertical bar) BATCH COLUMN_HEADER  7 COLUMNS_PAGE DIGITS FORM9 COMMIT DISCONNECT FORMAT8 COMP DISPLAY FORMS7 COMP_1 DISPLAY_FORM FROM5 COMP_2 DO GE; COMP_3 DOMAIN GET_FORM= COMP_5 DOMAINS G_FLOATING8 COMP_6 DOUBLE GRANT@ COMPUTED DROP GREATER_EQUAL? CONCURRENCY DUP GREATER_THAN8 CONNECT EDIT GROUP5 CONSISTENCY EDIT_BACKUP GT8 CONT EDIT_STRING GUIDE7 CONTAINING ELSE HELP= COUNT END HELP_LINES> CROSS END_CHOICE HELP_PROMPT> CURRENCY END_PLOT  HELP_WINDOW= CURRENT END_PROCEDURE H_FLOATING5 DATABASE END_REPORT IF5 DATABASES END_TABLE IN7 DATA TYPE ENDING INCR= DATE ENTRY INCREASING> DEBUG EQ INIT_VECTOR9 DECIMAL EQUAL INSERT: DECLARE ERASE INTEGER5  DECLARE_ATT EXCLUSIVE IS7 DECREASING EXECUTE JUST< DEFAULT EXIT JUSTIFIED: DEFINE EXTEND JUSTIFY7 DEFINEP EXTRACT KEEP6 DELETE F_FLOATING KEY: DELETEP FIELD KEYDEFS: DENY FIELDS KEYWORD7 DEPENDING FILE  LAST5 DESC FILL LE: DESCENDING FILLER LEADING8 D_FLOATING FIND LEAVE7 DICTIONARY FINISH LEFT= DICTIONARIES FIRST LEFT_RIGHT= DIGIT FOR LESS_EQUAL B LESS_THAN OVERPUNCHED REPORT_HEADER@ LINES_PAGE OWNER R EPORT_NAME= LIST PACKED RETRIEVE: LOCAL PAGE RIGHT= LOCK_WAIT PATH ROLLBACK8 LONG PIC RSE< LONGWORD PICTURE RUNNING: LT PLOT SCALE; MAJOR_MINOR PLOTS SCHEMA< MATCH PORT SCHEMAS;  MAX PRINT SEARCH; MAX_LINES PRIOR SELECT> MAX_PAGES PRIVILEGES SEMICOLON9 MEMBER PROCEDURE SEND= MIN PROCEDURES SEPARATE8 MISSING PROMPT SET9 MODIFY PROTECTED SETS; NE PURGE SET_UP? NETWORK  PUT_FORM S_FLOATING; NEW_PAGE PW SHARED9 NEW_SECTION QUAD SHOW: NEXT QUADWORD SHOWP9 NO QUERY_HEADER SIGN; NONE QUERY_NAME SIGNED9 NONLOCAL READ SIZE9 NOT READY SKIP= NOT_EQUAL REA L SNAPSHOT9 NOVERIFY RECEIVE SORT; NUMBER RECONNECT SORTED; NUMERIC RECORD SOURCE: OCCURS RECORDS SPACE= OCTA RECOVER STARTING< OCTAWORD REDEFINE STD_DEV: OF REDEFINES STORE; ON REDUCE  STRING> OPEN REDUCED STRUCTURE> OPTIMIZE RELATIONSHIPS SUBSCHEMA8 OR RELEASE SUM> OTHERWISE REPEAT SUPERCEDE> OVER REPORT SUPERSEDE SYNC SYNCHRONIZED SYNONYM SYNONYMS TAB TABLE TABLES TERMINAL TEXT T_FLOATING # THE THEN TIMES TO TOP TOTAL TRAILING UIC UNSIGNED USAGE USER USING VALID VALUE VARIABLES VARYING VECTOR VERIFY VIA WHEN WHILE WIDTH WITH WITH_FORM WITHIN WORD WRITE ZERO ZONED  wwwWxX1 Logical_NamesG The following table lists and describes all the logical names youC can define for your DEC DATATRIEVE environment. These logicalA names must be defined at DCL level, before invoking the DECB DATATRIEVE image. DEC DATATRIEVE then translates the logical names at runtime. ( Table 3-1 Logical Name Assignments " Logical Name Example  CDD$DEFAULTA Default Oracle $ DEFINE CDD$DEFAULT "CDD$TOP.DTR$LIB" CDD/Repository directory DTR$BANNER_DISABLE; DEC DATATRIEVE $ DEFINE DTR$BANNER_DISABLE TRUE banner disabled DTR$CAPTIVE_ALLOWED? Access to DCL and $ DEFINE DTR$CAPTIVE_ALLOWED FN$DCL,# SPAWN commands by FN$SPAWN captive accounts DTR$COMMAND_LINES: Number of command $ DEFINE DTR$COMMAND_LINES "25" recall lines DTR$DATE_INPUT8 Default $ DEFINE DTR$DATE_INPUT "MDY" date input interpretation; formats: "MDY" "DMY" "YDM" "YMD" "DYM" "MYD" DTR$EDIT2 EDT, DEC TPU, $ DEFINE DTR$EDIT "TPU" or LSE as editor (Note: Use one of the following 3-letter codes: EDT, TPU, LSE) DTR$ENVIRONMENTF Provides control $ DEFINE/USER DTR$ENVIRONMENT "/NOCDD/EXIT_* information ON_PRINT_ERROR" to the DEC DATATRIEVE image DTR$KEYDEFS/ File of key $ DEFINE DTR$KEYDEFS2 definitions "DSK1:[ROY]KEYDEFS.COM" DTR$NOWINDOWS6 Use of the $ DEFINE DTR$NOWINDOWS TRUE DECwindows interface DTR$PROMPT_LINES9 Number of prompt $ DEFINE DTR$PROMPT_LINES "30" recall lines DTR$READY_MODE; Default access $ DEFINE DTR$READY_MODE "SHARED" option DTR$RW_BODY_ ATTRIBUTES: Default rendition $ DEFINE DTR$RW_BODY_ATTRIBUTES: attributes for "FAMILY=NC_SCHOOLBOOK, SIZE=10" the body of a report DTR$RW_DEBUG> Either layout $ DEFINE DTR$RW_DEBUG "GRID,LAYOUT" boxes, background grid, or both on a printed report DTR$RW_HEADER_ ATTRIBUTES< Default rendition $ DEFINE DTR$RW_HEADER_ATTRIBUTES< attributes for "FAMILY=COURIER, SIZE=24, ITALIC" the header of a report DTR$RW_INITIAL_FF: FF (Form Feed) $ DEFINE DTR$RW_INITIAL_FF TRUE enabled at the beginning of TEXT format reports DTR$RW_NO_FINAL_FF; FF (Form Feed) $ DEFINE DTR$RW_NO_FINAL_FF TRUE disabled at the end of of TEXT format reports DTR$STACK_SIZE8 DATATRIEVE stack $ DEFINE DTR$STACK_SIZE "200" size DTR$STARTUP> Startup command $ DEFINE DTR$STARTUP "DTRSTART.COM" file DTR$SYNONYMA File containing $ DEFINE DTR$SYNONYM SYNONYMS_LIST.TXT keywords and their corresponding abbreviations DTR$TOPJ provides the $ DEFINE DTR$TOP SYS$SYSDEVICE:[VMS$COMMON.DTR] rooted-directory that behaves as CDD$TOP for text-file definitions DTRADT7 New or modified $ DEFINE DTRADT "NEWADT.DAT" ADT text file DTRHELP; New or modified $ DEFINE DTRHELP "NEWDTRLIB.HLB" help library DTRMSGS9 New or modified $ DEFINE DTRMSGS "NEWMSGS.EXE" message filewwxX1 Error_Messages> Each time you give DEC DATATRIEVE a command or statement toD execute, DEC DATATRIEVE determines the message it should display.@ Each message includes a severity level, a code, a name, and a text string.? The message severity level determines whether DEC DATATRIEVE: completes your command or statement and what warning orA information DEC DATATRIEVE displays. Your command or statement3 results in one of the following severity levels: o Severe Error o Error o Warning o InformationalC In addition to DEC DATATRIEVE error messages, there are specificD DEC DATATRIEVE Client for Windows error messages that also relate? to any client application calling the DEC DATATRIEVE server," through the callable interface.< The message code is a number that identifies the message.? The message name is a symbol beginning with the prefix DTR$_= that also identifies the message. The message code and theA message name are synonymous; they represent the same value. In@ most cases, the DEC DATATRIEVE documentation recommends usingA the message name rather than the actual hexidecimal code value* because the name is easier to remember.D The message text is a string that DEC DATATRIEVE displays to tell9 you how it is responding to your command or  statement. 2 Severe_ErrorsA DEC DATATRIEVE responds to its own software errors with severe> error messages. If you see a severe error message, you have1 probably discovered a problem in the software.A A severe error message consists of an error name and a message? about the type of error. Following some of these errors, youD return to DEC DATATRIEVE command level and can continue with your? session. Sometimes a severe error returns you to DCL command> level. In rare cases, the system or DEC DATATRIEVE does not' respond to input from your terminal.D If you encounter any of these messages, report them to the personA responsible for DEC DATATRIEVE on your system and contact your@ DIGITAL software support representative. If you are eligible,3 also submit a Software Performance Report (SPR). 3 BADBLKC 008D800C Internal error (expected block id , encountered id ). 3 BADSORREC4 008D827C Internal error (bad sort record length). 3 BADSTALL* 008D8CB4 Stall point in DAB is invalid. 3 BADSUBBLKD 008D8014 Internal error (expected node type , encountered type ). 3 CASOUTRAN8 008D806C Internal error (software consistency check). 3 DIRCMPSTKB 008D84F4 Internal error (dirty compiler stack, level ). 3 DOMLOST: 008D807C Internal error (domain lost from system list). 3 FATALB 008D958C Unrecoverable window interface error, performing image exit. 3 FSGNORID< 008D8094 Internal error (file segment missing record ID). 3 GETRIDFAIL9 008D809C Internal error (failed to get record by RID). 3 HOPELESS8 008D808C Internal error (software consistency check). 3 HSHBLKLOS- 008D8084 Internal error (hash block lost). 3 INVBLKSIZ? 008D951C Internal error (attempted to get a block of invalid size: ). 3 INVBUFB 008D953C Internal error (invalid Oracle CDD/Repository metadata buffer.) 3 INVDSCTYP3 008D8034 Invalid descriptor type for conversion. 3 INVPOOLCL6 008D803C Internal error (invalid pool class given). 3 KPLNOSSCC 008D80AC Internal error (keeplist requested when no subschema is in use). 3 LOTOVEFLOC 008D8F84 Internal error (no more slots available in lock table). 3 MEMSTUCKB 008D97FC Internal error (virtual memory could not be released). 3 NOCURTOK4 008D805C Internal error (no current token block). 3 NOFREEBCB; 008D832C Internal error (no free buffer control blocks). 3 NOPOOLIDSC 008D80EC Internal error (all available dynamic memory pools have been exhausted). 3 NOTINMEMB 008D8334 Internal error (page is not in memory - cannot release or mark). 3 NOTLIST" 008D81EA "<...>" is not a list. 3 NOTSEGMENT9 008D937A is not a segmented string field. 3 NOTYETIMP< 008D8054 Internal error (feature is not implemented yet). 3 NULPRIELTD 008D80B4 Internal error (null print element in context searcher). 3 OVFMETABF> 008D97EC Internal error (Metadata buffer overflow, length = <...>, used = <...>). 3 PAGEINUSE> 008D8314 Internal error (attempt to release a page in use). 3 PAGLSTUSR< 008D833C Internal error (user of a page buffer got lost). 3 PAGOUTRAN= 008D8324 Internal error (page number out of range for file  segment). 3 PROVERMISB 008D8A5C Distributed protocol version mismatch. Host =  Server =  3 RELBADBLK< 008D8044 Internal error (attempted to release bad block). 3 SYSBADARG9 008D8064 Internal error (invalid number of arguments). 2 Errors 3 ABORT 008D82FA ABORT:  Explanation:D DEC DATATRIEVE has processed an ABORT statement and, as a result,D has terminated the statement, procedure, or command file that w asC being executed. The text supplied as part of the ABORT statement@ is displayed. You include ABORT in a statement, procedure, or? command file to prevent DEC DATATRIEVE from continuing under? certain conditions. For example, you may want to terminate a> STORE statement if invalid data is entered or stop a report' procedure if information is missing. User Action:D Reexecute the statement, procedure, or command file, avoiding the> conditions that caused the ABORT statement to be processed. 3 ADTAKBOVF/ 008D874A Maximum key count for ADT exceeded. Explanation:= ADT allows a maximum of only 10 keys (one primary and nine alternate keys). User Action:C If you need more than ten keys for the file, you must define theC file using the DEFINE FILE command in DEC DATATRIEVE, instead of using ADT. 3 ADTANBOVF1 008D8752 Maximum field count for ADT exceeded. Explanation:> ADT allows a maximum of 197 field names for a single record definition for a domain. User Action:@ If you need more than 197 fields for the record, you must useB the DEFINE commands in DEC DATATRIEVE to define the domain, the. record, and the file, instead of using ADT. 3 ADTEXIT' 008D875A ADT exited by user request. Explanation:= You entered CTRL/Z in response to an ADT question. The ADT? session is terminated; no definitions are stored in the data dictionary. User Action:C If you still want the data definitions you began, repeat the ADT session. 3 ASSERROR. 008D939A Assignment abandoned due to error. Explanation:; An error occurred during the processing of an assignment? statement. The variable or field may have been given a wrong value. User Action:8 Correct the condition indicated by the error message. 3 ASSVIRFLD- 008D8392 Cannot assign to a virtual field. Explanation:D A STORE or MODIFY statement tried to assign a value to a COMPUTED BY field. User Action:D Reenter the STORE or MODIFY statement without the assignment to a COMPUTED BY field. 3 BADCONSISTA 008D93D2 It is illegal to have CONSISTENCY and CONCURRENCY for the same database. Explanation:C You cannot specify both CONSISTENCY and CONCURRENCY for the same database. User Action:7 Specify either CONSISTENCY or CONCURRENCY, not both. 3 BADDATEOP, 008D8B12 Cannot multiply or divide dates. Explanation:C You tried to use multiplication or division operations with date fields or date variables. User Action:D Change the expression so that you are not multiplying or dividing dates. 3 BADDFPTER? 008D80D2 Invalid TERMINAL specification for DEFINEP command. Explanation:B The DEFINEP command contains an invalid TERMINAL specification. User Action:@ Reenter the DEFINEP command. The following are valid terminal specifications:9 o TERMINAL = TTnn (where TTnn is the terminal number)A o TERMINAL = LOCAL (all users hard-wired to the local system)D o TERMINAL = NONLOCAL (all users not hard-wired to local system), o TERMINAL = BATCH (all batch processes)A o TERMINAL = NETWORK (all users accessing DEC DATATRIEVE from remote nodes) 3 BADEDIT3 008D9462 Error encountered when entering editor. Explanation:B DEC DATATRIEVE encountered a problem while trying to invoke theB editor. For example, this error message might occur if you haveC insufficient privilege for the editor to open a journal file andB you then attempt to edit again without correcting the privilege problem. User Action:: Exit DEC DATATRIEVE, correct the error, and reenter DEC DATATRIEVE. 3 BADELEMENTID1 008D9912 Unable to process dictionary element. Explanation:C DEC DATATRIEVE is not able to access the element selected in the/ DEC DATATRIEVE Dictionary Navigator display. User Action:? Check the element's ACL protection to make sure you have theA appropriate privileges to access it. If you do have the properA privileges, then check with your system or dictionary manager. 3 BADFETCHC 008D95B2 Unable to fetch an object from the window interface DRM database. Explanation:@ DEC DATATRIEVE was not able to fetch an object defined in theB VAX_DATATRIEVE.UID, the DECwindows Motif object definition file? used by DEC DATATRIEVE. This file is located in DTR$LIBRARY. User Action:A Your DEC DATATRIEVE session will continue, but you should exitD from DEC DATATRIEVE and notify your system manager. Make sure theC VAX_DATATRIEVE.UID file supplied by the installation and located- in SYS$COMMON:[DTR] has not been modified. 3 BADFLDCTX5 008D8AB2 Invalid context for field "". Explanation:@ You used a context variable improperly; DEC DATATRIEVE cannot resolve the context. User Action:= Correct the context variable so DEC DATATRIEVE can resolve@ the context. The DEC DATATRIEVE User's Guide explains context resolution in detail. 3 BADGUICHA2 008D8FC2 Invalid channel number for Guide Mode. Explanation:C You tried to call Guide Mode from your program without assigning( a number to the input/output channel. User Action:C Assign a channel number to DAB$W_TT_CHANNEL. The simplest way toD do this is to call the DEC DATATRIEVE Terminal Server immediately= after initializing the DEC DATATRIEVE Call Interface: CALL DTR$DTR (DAB, DTR$M_OPT_CMD) 3 BADGUITT1 008D8FCA Invalid terminal type for Guide Mode. Explanation:B You can enter Guide Mode only if your terminal is a VT-terminal& or is compatible with VT-terminals. User Action:; If you wish to use Guide Mode, you must use a VT- or VT-B compatible terminal. If you are using a VT-terminal, then enter? the following command from DCL level: $ SET TERMINAL/INQUIRE 3 BADHANDLE 008D80F2 Invalid DDMF handle. Explanation:= The DAB you passed to a callable DEC DATATRIEVE program is invalid. User Action:A Check that your program is passing the correct DAB. If you seeD this error in interactive DEC DATATRIEVE, please submit an SPR if you are eligible. 3 BADKEYBRD 008D948A Invalid keyboard ID. Explanation:A DEC DATATRIEVE encountered a problem when trying to set up the" keyboard ID for terminal input. User Action:C If you are eligible, submit a Software Performance Report (SPR). 3 BADKEYTBL! 008D9482 Invalid key table ID. Explanation:A DEC DATATRIEVE encountered a problem when trying to set up the key table for terminal input. User Action:C If you are eligible, submit a Software Performance Report (SPR). 3 BADLENRED: 008D816A Bad length for REDEFINES field "". Explanation:C The REDEFINES field cannot describe an area larger than the area! of the field it is redefining. User Action:A Reenter the DEFINE RECORD command but describe an area for theC REDEFINES field that is equal to or smaller than the area of the field you are redefining. 3 BADNUMARG0 008D80FA Invalid number of arguments to DDMF. Explanation:B Your program passes the wrong number of arguments to a callable DEC DATATRIEVE routine. User Action:C Check the call format in the DEC DATATRIEVE Guide to ProgrammingB and Customizing to find how many arguments the routine requires( and correct your program accordingly. 3 BADNUMBER# 008D8202 Bad number: "". Explanation:) A nonnumeric character has been found. User Action:; Replace the nonnumeric character by a numeric character.  3 BADPORTOP: 008D8B6A It is invalid to MODIFY, ERASE or FIND a port. Explanation:: You tried to FIND, ERASE, or MODIFY through a port fromA interactive DEC DATATRIEVE. Ports can be accessed only through callable DEC DATATRIEVE. User Action:A Make your FIND, ERASE, or MODIFY refer to a domain that pointsC to a record to which the port refers, or access the port through callable DEC DATATRIEVE. 3 BADQUOSTRD 008D8F02 Expected closing quote, encountered "***END_OF_LINE***". Explanation:= You began a line of text with a quotation mark but did not? include a closing quotation mark before the end of the line. User Action:B Insert a closing quotation mark at the end of the text you want to quote. 3 BADRECSIZ= 008D8258 Bad record size. Defined: File:  Explanation:> The size of the record in the data file must agree with the* specification in the record definition. U ser Action:C If you have edited the record definition so that the record sizeC (in bytes) has changed, you must restructure the domain. The DEC@ DATATRIEVE User's Guide explains this procedure in detail. If@ you are trying to create a DEC DATATRIEVE domain to access an@ existing data file, you must correct the record definition soB that the size you specify in the definition matches the size of the record in the file. 3 BADSORLEN> 008D8EF2 You tried to sort by too large a value or too many! values. (Total size: ) Explanation:A The total size of the sort keys you specified and the internal? sort information used by DEC DATATRIEVE was greater than 255 characters long. User Action:C If you specified a very large field, you should sort on just the1 first part of it. You can do this in two ways:B o Redefine the record so the entire field is a group field andB the first part of the record is an elementary field that can be sorted on.B o Use the function FN$STR_EXTRACT to extract the first part of the field. 3 BADSOURCE> 008D999A Object <...> is not a valid DEC DATATRIEVE source. Explanation:@ You attempted to ready a CDD$DATABASE object that refers to aC Oracle CODASYL DBMS database. This is not a valid DEC DATATRIEVE source. User Action:= You must use the DEC DATATRIEVE DEFINE DATABASE command toA specify which subschema of the Oracle CODASYL DBMS database isA to be used. Once the DEC DATATRIEVE database has been defined,@ you can ready the database directly or you can define domains% using the DEC DATATRIEVE database. 3 BADSTRDES& 008D89BA Invalid string descriptor. Explanation:D The token type your program passes to the callable DEC DATATRIEVE6 routine, DTR$GET_STRING, is not a valid token type. User Action:: Correct your program to use a valid token type. The DEC> DATATRIEVE Guide to Programming and Customizing lists validD token types. If you see this error in interactive DEC DATATRIEVE,- please submit an SPR, if you are eligible. 3 BADUDKCTX> 008D8C8A Invalid parsing context specified for User Defined Keyword. Explanation:A Your program passed an invalid User Defined Keyword (UDK) typeD when creating a user-defined keyword. The DEC DATATRIEVE Guide to5 Programming and Customizing lists valid UDK types. User Action:0 Correct your program to use a valid UDK type. 3 BADUDKIDX= 008D8C92 Invalid index specified for User Defined Keyword. Explanation:A Your program passed an invalid UDK index when creating a user-< defined keyword. UDK indexes must be between 1 and 32767. User Action:1 Correct your program to use a valid UDK index. 3 BADUIC" 008D80DA Invalid UIC specified. Explanation:9 You specified an incorrect UIC in the DEFINEP command. User Action:B Reenter the DEFINEP command. The UIC must be of the form [m,n],D where m is the group number and n is the user number. An asteriskD (*) can be used in place of either n (all users in a group) or in place of m and n (all users). 3 BLKTOOBIG; 008D8024 Maximum block size exceeded; statement aborted. Explanation:D Memory could not be allocated to perform the attempted operation. User Action:? Simplfy the operation you are performing. For example, if anB extremely complex RSE is causing the error, try to simplify the> RSE by reorganizing it or by eliminating redundant clauses. 3 CANRDYDOMA 008D8AA2 Source cannot be readied at this access mode unless a) COMMIT, ROLLBACK, or FINISH is issued. Explanation:B You readied and accessed a Oracle CODASYL DBMS domain or OracleC CODASYL DBMS database. You then attempted to ready, under a moreD restrictive access mode, another domain or database that referred4  to records in the same Oracle CODASYL DBMS realm:B o A second Oracle CODASYL DBMS domain that referred to another2 record in the same realm as the first domainB o The same database using a different record in the same realm User Action:C Issue a COMMIT, ROLLBACK, or FINISH command. Ready the domain or* database under the desired access mode. 3 CANRDYSRCB 008D0585 Source cannot be readied unless a COMMIT, ROLLBACK, or FINISH is issued. Explanation:A You attempted to reready a modified database before entering a' COMMIT, ROLLBACK, or FINISH command. User Action:C You can have only one outstanding transaction at a time. Execute> a COMMIT, ROLLBACK, or FINISH command, then enter the READY command again. 3 CDAERROR? 008D9A33 Aborting report execution due to CDA toolkit error. Explanation:! DEC DATATRIEVE internal error. User Action: Contact you System Manager. 3 CDANOTINST> 008D9A22 Aborting report execution-cannot access CDA image. Explanation:@ While executing a CDA report, DEC DATATRIEVE has attempted to8 access the CDA shareable image and has not succeeded. User Action:< Contact the System Manager to verify that CDA is properly installed. 3 CDDCORRUPTB 008D9472 A Oracle CDD/Repository stream cannot be started. Exit and reinvoke DEC DATATRIEVE! Explanation: Oracle CDD/Repository error User Action:C Exit and reinvoke DEC DATATRIEVE before attempting to access the Oracle CDD/Repository. 3 CDDNOTFOUND< 008D9812 Element <...> cannot be found in the dictionary. Explanation:C DEC DATATRIEVE could not find the specified object in either the CDO or the DMU dictionary. User Action:? Be sure that the path name of the specified object is listed correctly. 3 CDONOTFOUND7 008D981A Element <...> is not in the CDO dictionary. Explanation:@ DEC DATATRIEVE could not find the specified object in the CDO dictionary. User Action:? Be sure that the path name of the specified object is listed correctly. 3 CDONOTRANSD 008D9A52 Unable to build DEC DATATRIEVE source text from this CDO definition. Explanation:6 DEC DATATRIEVE could not access the CDO definition. User Action: Check your CDO definition. 3 CHAOPTINVB 008D888A The "CHANGE" option is invalid on the primary key of a file. Explanation:A The CHANGE option determines whether or not you can modify the> content of the associated key field. It cannot be used with primary keys. User Action:D Reenter the DEFINE FILE command but without specifying CHANGE for the primary key. 3 CLANOTPERD 008D8472 <...> clause is not permitted on a variable declaration. Explanation:? You cannot use an OCCURS or REDEFINES clause when defining a variable. User Action:D Reenter the DECLARE statement but without the OCCURS or REDEFINES clause. 3 CLIPFAIL9 008D970A Failure to access DECwindows Motif clipboard. Explanation:B You cannot access the DEC DATATRIEVE DECwindows Motif clipboardA during a CUT, COPY, or PASTE operation for a reason other thanD the keyboard being locked. The operation cannot be completed, but) DEC DATATRIEVE continues to be usable. User Action:? You should contact your system manager to make sure that theC DECwindows Motif interface is running properly. If the interface: is working properly, submit an SPR if you are elegible. 3 CLIPLOCKED@ 008D971A The DECwindows Motif clipboard is locked, please try again later. Explanation:A The DECwindows Motif clipboard was locked by another user whenD DEC DATATRIEVE attempted to access it during a CUT, COPY or PASTE0 operation. The operation cannot be completed. User Action:C You should repeat the operation when the keyborad is not locked. 3 CLIPNODATAB 008D9722 No data is currently contained on the DECwindows Motif clipboard. Explanation:B You attempted a DEC DATATRIEVE DECwindows Motif interface PASTEB operation to retrieve data from the clipboard when the DATA did not exist on the clipboard. User Action:D You should place data on the clipboard by a CUT or COPY operation' and then repeat the PASTE operation. 3 CLIPTRUNCATE6 008D9712 DECwindows Motif clipboard data truncated. Explanation:@ Data being transferred from the clipboard during a DECwindowsD Motif interface PASTE operation has been truncated. The operationA cannot be completed, but DEC DATATRIEVE continues to function. User Action:: If you are elegible to do so, you should submit an SPR. 3 CNVNUMDAT2 008D83C2 Can't convert number to a date string. Explanation:2 An invalid number was assigned to a date field. User Action:% Enter a correct date in the field. 3 COLTOOBIG1 008D9A62 Too many records for this collection. Explanation:? The user tried to create a collection with more records than allowed. User Action:: Refer to the restriction for the number of records in a> collection created by the statement FIND, in DEC DATATRIEVE reference documentation. 3 COMFILNES0 008D8EC2 Command file nesting limit exceeded. Explanation:D You are permitted to nest indirect command files only eight deep. User Action:< Either include some of one command file in another or use procedures. 3 COMPOVF! 008D8222 Computation overflow. Explanation:> You entered an integer too large to fit in a longword. This= can happen in the Report Writer with SET LINES_PAGE and in collections. User Action: Enter a smaller number. 3 CONTPREQB 008D8972 All "P"s must be contiguous in PICTURE or EDIT string. Explanation:= P picture string characters must not be separated by other picture string characters. User Action:A Reenter the field or variable definition. To specify a decimalC scaling position, place one or more P characters together either2 at the right or the left of the picture string. 3 CSERROR> 008D95BA Window interface compound string conversion error. Explanation:B DEC DATATRIEVE encountered an error while converting a compound1 string used by the DECwindows Motif interface. User Action:A Your DEC DATATRIEVE session will continue, but you should exit6 from DEC DATATRIEVE and notify your system manager. 3 CURRFAILB 008D8E3A Record from source <...> failed to set up currency for set connection. Explanation:C A statement you issued attempted to use a record from the Oracle= CODASYL DBMS domain or Oracle CODASYL DBMS record named in > the message to establish currency for a set. The record was@ not a member of the set and the statement failed to establishB currency. This message can be generated by CONNECT, DISCONNECT,< and RECONNECT statements, as well as the STORE statement. User Action:B Set up a record stream containing only records that are membersD of some occurrence of the set. You can do this with an ANY clause3 in the record selection expression. For example:8 FOR PARTS WITH ANY EMPLOYEES OWNER OF RESPONSIBLE_FOR, DISCONNECT A FROM RESPONSIBLE_FOR 3 DFBADRECCNTC 008D99E2 The number of DEC DATATRIEVE records does not match the- number of records in the form record list. Explanation:C The number of records specified in a SEND or RECEIVE clause does8 not match the number of records expected by the form. User Action:? Check how many records are requested or returned by the form> record/record list and the WITH_FORM statement used to send? /receive records or the FORM IS clause in domain definition. 3 DFBADRECLEN@ 008D9A5A The length of the DEC DATATRIEVE record and the form record do not match. Explanation:C The length of the DEC DATATRIEVE data record to be sent/receivedA to/from a form and the length of the corresponding form record@ are different. This corresponds to the DECforms error FORMS$_ BADRECLEN. User Action:D Check the definition of the DEC DATATRIEVE data record and of the corresponding form record. 3 DFDBLATTEMPTD 008D99F3 Both DECforms and DEC FMS/ VAX TDMS are unable to access the specified form. Explanation:? To manage a form connected to a domain, DEC DATATRIEVE tried> first with DECforms but DECforms was unable to use it; then> DEC DATATRIEVE tried with DEC FMS/ VAX TDMS because the DEC> DATATRIEVE image was linked with DEC FMS/ VAX TDMS code butB DEC FMS/ VAX TDMS too was unable to use the form file. It is anC informational message which is followed by the detailed messages' from DECforms and DEC FMS/ VAX TDMS. User Action:/ Check the file used as form file or library. 3 DFLOADFORM7 008D99BA Failure attempting to load a DECforms form. Explanation:= DEC DATATRIEVE called DECforms to enable a session and the= operation failed. This error corresponds to DECforms error? FORMS$_LOADFORM. An example: a DEC FMS form library was used# instead of a DECforms form file. User Action:1 Check the DECforms file used in the operation. 3 DFNOLAYOUTD 008D99C2 No layouts in the DECforms form conform to this terminal$ type, language, and display size. Explanation:= DEC DATATRIEVE called DECforms to enable a session and theD operation failed, because no layouts in the DECforms form conformD to type, language, and display size of the current terminal. This7 error corresponds to DECforms error FORMS$_NOLAYOUT. User Action:1 Check the DECforms form used in the operation. 3 DFNOLICENSE= 008D99CA DECforms form manager is present, but no DECforms software license is active. Explanation:> DEC DATATRIEVE tried to call DECforms but failed because noA DECforms software license is active. This error corresponds to# DECforms error FORMS$_NOLICENSE. User Action:% Add software license for DECforms. 3 DFOPENFORM2 008D99D2 Error opening DECforms form file !AD . Explanation:@ DEC DATATRIEVE called DECforms to enable a session but failedC because DECforms did not succeeded in opening the specified formB file. This error corresponds to DECforms error FORMS$_OPENFORM. User Action:D Check the name of the file used in the operation or the form file itself. 3 DFREADFORM2 008D99DA Error reading DECforms form file !AD . Explanation:A DEC DATATRIEVE called DECforms to enable a session but failed.< This error corresponds to DECforms error FORMS$_READFORM. User Action:- Check the form file used in the operation. 3 DFNORECORDB 008D99EA A form record specified in the operation is unknown in the DECforms form. Explanation:B DEC DATATRIEVE tried to send or receive data from a record that? is not in the form. This error corresponds to DECforms error FORMS$_NORECORD. User Action:? Check the name of the form record specified in the WITH_FORMA statement or the top field name of the domain connected to the form. 3 DFNOTNOW/ 008D99FA A DECforms form cannot be used now. Explanation: Not in use User Action: None 3 DICELTUSE< 008D818A Dictionary element "" already in use. Explanation:@ You cannot define a new dictionary element if another element? with the same path name is already in Oracle CDD/Repository. User Action:C Rename the el ement before entering it in the data dictionary, orD delete the old dictionary object before entering a new version of that object. 3 DICNOTRED. 008D0586 Dictionaries may not be redefined. Explanation:B The Oracle CDD/Repository path name you specified in a REDEFINE? command is the name of a dictionary. Dictionaries may not be redefined. User Action:A Reenter the REDEFINE command and give the name of a dictionary object that can be redefined.  3 DICNOTUND. 008D81A2 Dictionary element not understood. Explanation:A The Oracle CDD/Repository definition you are using was created= with CDDL and contains elements that DEC DATATRIEVE cannotD translate. These elements refer to data types and storage formats( that DEC DATATRIEVE does not support. User Action:= None. If DEC DATATRIEVE does not support a data type in anD existing file, you cannot use DEC DATATRIEVE to access that data. 3 DIFFNOD EB 008D988A Node name in remote domain anchor <...> does not match$ name in node specification <...>. Explanation:A The node name given in the anchor of the domain path name of aD remote domain definition does not match the node name in the nodeD specification of that definition. This node name inconsistency is( illustrated in the following example:% DTR> REDEFINE DOMAIN REM_DOM USING. DFN> MYNODE::SYS$ROOT:[DEBRUN.DIC]YACHTS AT. DFN> URNODE"SYSTEM PASSWORD" RE LATIONSHIPS;. Node name in remote domain anchor "MYNODE",- does not match name in node specification, "URNODE". User Action:A Remove the node name from the anchor of the remote domain path= name or change the node name to match the name in the node5 specification section of the DEFINE DOMAIN command 3 DIGNUMPIC? <008D839A Too many digits in numeric picture or edit string. Explanation:? You declared a numeric variable and used a PICTURE clause or A EDIT_STRING more than 31 characters long, or you used an EDIT_C STRING that contained more than 31 characters to print a numeric# variable with a PRINT statement. User Action:= Declare the PICTURE clause or EDIT_STRING with 31 or fewer; characters, or do not use more than 31 characters in the? EDIT_STRING when you print a numeric variable with the PRINT statement. 3 DMUFROMFLDA 008D994A DMU record <...> may not be referenced in FROM field. Explanation:D Only records defined in a CDO format dictionary can be referenced: by a FROM clause in a DEC DATATRIEVE record definition. User Action:$ Convert the record to CDO format. 3 DROPOPT> 008D9428 Keyword OPTIMIZE removed from definition of record "<...>". Explanation:> Optimization has failed. The record will be defined but notB optimized. DEC DATATRIEVE removes the keyword OPTIMIZE from the record definition. User Action:D If a message concerning insufficient virtual memory preceded thisD message, then free up memory space by using the FINISH command toD end access to other readied domains, relations, or Oracle CODASYLD DBMS records. Edit the record definition and replace the OPTIMIZE qualifier. 3 DROPUSINGA 008D99B0 FORM IS...USING cannot be applied to DMU domains. The3 USING clause has been removed from domain "!AD". Explanation:9 The clause USING added to the FORM IS clause in domain> definitions (to specify an exchange record to be used whileA moving data to and from a form), can be used only with domains@ defined in CDO, because only the CDO protocols allow for this clause. User Action:D Put the domain definition in a CDO dictionary or remove the USING clause. 3 DTR$_CDONOTRANSD 008D9A52 Unable to build DEC DATATRIEVE source text from this CDO definition. Explanation:A The error may happen while doing an EXTRACT, ED IT or SHOW on a? record defined by the Dictionary Operator (CDO) utility. DEC> DATATRIEVE tries to interpret the CDO definition to build aA DEC DATATRIEVE source text. Numeric constants contained in CDO? expressions such as INITIAL_VALUE and COMPUTED_BY need to be> converted to text format to be displayed: if the conversionA fails, DEC DATATRIEVE displays this message and returns to the prompt. User Action:? CDO record definitions which cannot be properly converted toC DEC DATATRIEVE source text should be managed by means of the CDO utility. 3 DTYPEUNS: 008D9A6A is not supported on this platform. Explanation:D The user has attempted to define a field in a record using a dataA type that is not supported by the hardware or operating systemA on which DEC DATATRIEVE is running. At present, S_FLOATING andB T_FLOATING data types are not allowed on an OpenVMS VAX system,D while the H_FLOATING data type is not allowed on an OpenVMS Alpha system. User Action:A Use an alternative data type supported by the platform you are using. 3 DUPCLASPE3 008D811A Duplicate clause specified: "". Explanation:C The clause specified in the message cannot appear more than once( in the statement or field definition. User Action:D Edit the statement or definition and delete the duplicate clause. 3 DUPUSACLA9 008D89CA Duplicate USAGE clause specified: "". Explanation:< Only one USAGE clause is permitted in a field or variable definition. User Action:@ Reenter the field or variable definition using only one USAGE clause. 3 EXCCMPSTK< 008D94D2 Exceeded compiler stack level at level . Explanation:> This error is generated if you exceed the internal limit of@ 64 compiler levels for a compound DEC DATATRIEVE statement. AB compiler level is needed for certain constructs like FOR loops,D WHILE loops, and REPEAT counts. The level is also incremented for0 each source in a record selection expression. User Action:B You may need to restructure your query or even your applicationA so that DEC DATATRIEVE does not need to process so many levels@ in a single statement. For example, if this error occurred as@ a result of nested FOR loops, you may need to change these to appropriate FIND statements. 3 ELSEREQ> 008D8BDA An ELSE clause is required for IF and CASE values. Explanation:6 Conditional value expressions require ELSE clauses. User Action:A Formulate the value expression again, including an ELSE clause) for any IF or CHOICE value expression. 3 ELTNOTDIC4 008D8192 Element "<...>" not found in dictionary. Explanation:@ The path name specified in the SHOW or READY command does not0 resolve to an element in the data dictionary. User Action:@ Reenter the command with a different path name. You might use? a SHOW ALL command to see what is in data dictionary at your current directory. 3 ELTNOTDTR: 008D819A Element is not a DEC DATATRIEVE object. Explanation:? You attempted to execute a command such as DELETE or EXTRACT? on a dictionary object that is not a DEC DATATRIEVE one. DEC? DATATRIEVE objects are: domains, records, databases, tables, procedures and plots. User Action:5 Use the repository utilities to manage the object. 3 ERROR- 008D80BA Statement abandoned due to error. Explanation:@ DEC DATATRIEVE generates this general error message after anyA statement or command that fails. It follows a more descriptive error message. User Action:, Refer to the more detailed error message. 3 EXPINVPICB 008D896A Exponential edit string is invalid for PICTURE clause. Explanation:C You cannot use E as a picture string character. Use E only as an edit string character. User Action:? Reenter the field or variable definition with an appropriate PICTURE or USAGE clause. 3 EXTBADPARAMB 008D9442 Argument list cannot contain both the object path name and the object type. Explanation:C You cannot specify both the object path name and the object typeC in the argument list of a single EDIT or EXTRACT command. Object@ types include DOMAINS, PLOTS, RECORDS, PROCEDURES, or TABLES.  User Action:D Reenter the EDIT or EXTRACT command, but do not specify an object: path name and an object type in the same argument list. 3 FDLBADSIZA 008D94CA Incompatible record size. Defined: FDL File: . Explanation:= The size of the record in the FDL file must agree with the* specification in the record definition. User Action:B Decide what the correct record length should be and edit eitherC the record definition or the FDL file so that the record lengths match. 3 FDLERROR/ 008D94B2 Error using FDL file "". Explanation:A FDL encountered an error in the use of the specified FDL file.A The error was not related to a specific statement number. This@ could include errors such as Internal logic error detected or Insufficient virtual memory. User Action:? At DCL level, issue a CREATE/FDL command which specifies theC FDL file referred to in the error message. This should give moreC information about the nature of the error. If the error does not@ occur at DCL level, then submit a Software Performance Report (SPR) if you are eligible. 3 FDLOPEN1 008D94C2 Error opening FDL file "". Explanation:@ DEC DATATRIEVE could not open the specified FDL file. ReasonsA for this might include misspelling the FDL file name, disk, orC directory; access problems; or improper OpenVMS file protection. User Action:: Check to see that the name of the file has been spelledC correctly, that the specified disk or directory exists, and that. the OpenVMS file protection is appropriate. 3 FDLSTMNTC 008D94BA Error using FDL file ""; statement . Explanation:C FDL has detected an error in the specified file at the indicated statement number. User Action:D Check the indicated statement number for syntax errors or for anyB ambiguous or undefined FDL keywords. If necessary, you may want@ to issue a CREATE/FDL at DCL level to get more detailed error information from FDL. 3 FILNOTFND% 008D8A4A File not found - "<...>". Explanation:= DEC DATATRIEVE cannot locate the data file associated with> the domain. This error most commonly occurs when the domain? definition does not include device and directory informationB for the file and the default OpenVMS directory does not contain the file. User Action:B Use a SHOW domain-name command to see how the file is specified= in the domain definition. If the information is incomplete@ or inaccurate, edit the domain definition to correct the file specification. 3 FILNOTRED' 008D0587 Files may not be redefined. Explanation:B The Oracle CDD/Repository path name you specified in a REDEFINE9 command belongs to a file; files may not be redefined. User Action:@ Reenter the REDEFINE command, giving the na me of a dictionary object that can be redefined. 3 FLDNOTOCCC 008D812A Field "" not found for OCCURS DEPENDING ON. Explanation:C The field named in an OCCURS DEPENDING ON clause must be a field/ previously defined in the record definition. User Action:@ Reenter the DEFINE RECORD command, making sure that the field@ specified in the OCCURS DEPENDING ON clause is a field in the same record. 3 FLDNOTRED9 008D8122 Field "" not found for REDEFINES. Explanation:A The field to be redefined must appear in the record definition before its REDEFINES field. User Action:A Reenter the DEFINE RECORD command, checking that the REDEFINES6 clause names a field that has already been defined. 3 FLDSELFREF> 008D8B82 Field "" contains a self-reference and cannot be evaluated. Explanation:C Field or variable definitions cannot have clauses that contain aC " self-reference. For example, you cannot use a COMPUTED BY clauseD that includes a value expression containing the name of the field% or variable that is being defined. User Action:> Reenter the definition but eliminate any recursive or self-/ referring expressions in definition clauses. 3 FMSITT, 008D8F32 Invalid terminal type for forms. Explanation:< You are using an DEC FMS forms application from a type of= terminal that DEC FMS does not support, s#uch as a hardcopy terminal. User Action:? Use a terminal that DEC FMS supports, such as a VT100-series terminal. 3 FMTNEEDON> 008D9A3A Execution of a report in !AS format requires an ON# clause specifying the file name. Explanation:< You did not supply an ON clause specifying the file name. User Action: Reissue the command. 3 FUNCAPTIVE? 008D94FA Function cannot be executed from a captive account. Explanation:B You$ tried to issue a function call to either FN$SPAWN or FN$DCL> from within a captive account. These function calls are not( allowed from within captive accounts. User Action:B See the people in charge of DEC DATATRIEVE on your system. TheyB can consult the DEC DATATRIEVE Release Notes for version 5.0 or! later for further information. 3 GIVNAMUSE? 008D8B7A Given name "<...>" is already used by source <...>. Explanation:@ You tried to ready a record sourc%e as an alias, but the aliasB name you chose is already being used by another readied source. User Action:C Execute the READY command using a different alias, or finish the1 source that is using the name you wish to use. 3 ILLOPERVIEW? 008D9992 Illegal operation for relational view source <...>. Explanation:@ An operation that requires a relational database key, such asB an operation referring to a collection or to a MODIFY or DELETED statement, can no&t be executed because the source is a relationalC view that is not based on physical records in the database. Such views include the following:B o Views defined using the SQL/Services interface to Oracle Rdb, that include GROUP BY or UNION clausesA o Views defined using either the Relational Database Operator; (RDO) or SQL/Services that include functions like SUM User Action:C To avoid error messages, you should not perform these statementsC when you 'are referring to a relational view that is not based on a physical record source. 3 ILLPICSTR> 008D814A Illegal PICTURE or EDIT string character: "<...>". Explanation:> The character specified in the message is either an invalidB character for a PICTURE or EDIT_STRING clause, or it is a valid, character that has been used incorrectly. User Action:D Edit the field definition and correct the picture or edit string. 3 ILLSEGEDITD 008D947A Segmente(d string field must have a T (text) edit string. Explanation:D Segmented string fields in relational database sources must use T (text) edit strings. User Action:= Reenter the statement specifying a "T" (text) edit string. 3 ILLSEGOPRC 008D9392 Statement is illegal for segmented string field . Explanation:A Your statement violated one of the following restrictions that$ apply to segmented string fields:? ) o Do not assign values of fields or declared variables to a segmented string field.B o Do not retrieve or store segmented string fields from remote domains.C o Do not use segmented string fields with forms, plots, or with the DISPLAY statement.B o Do not use the following operators or clauses in an RSE that( refers to segmented string fields:B - Relational operators, including CONTAINING, ANY, STARTING WITH, and MISSING- - B*oolean operators: AND, OR, NOT, BUT - SORTED BY clause - REDUCED TO clause - CROSS clause User Action:: Rewrite your statement to comply with the restrictions. 3 INFBADCOD! 008D82DA Bad information code. Explanation:? Your program passed an invalid information code in a call to DTR$INFO. User Action:4 Correct the information code your program passes. 3 INFBADID 008D82D2 Bad object id. Explanation:+; Your program passed a null object identification code to DTR$LOOKUP or DTR$INFO. User Action:> Correct the object identification code your program passes. 3 INFBADIDX. 008D9502 Information index is out of range. Explanation:C The index parameter on a call to DTR$INFO was either less than 1D or greater than the number of elements in the object as specified by the object-id parameter. User Action:A Make sure that the index parameter is w,ithin the correct range for the object being queried. 3 INFNOTFOU 008D82EA Object not found. Explanation:C DEC DATATRIEVE could not find the object you specified in a call to DTR$LOOKUP. User Action:1 Check that you specified the object correctly. 3 INPLINTRU> 008D8CC2 Input line too long - truncated to 255 characters. Explanation:. An input line cannot exceed 255 characters. User Action:? Reenter the line with a legal- number of characters. To enter@ more than 255 characters in a string, you can declare several@ variables and assign values to them. Then use a concatenation, expression to specify the desired string. 3 INVACLATT2 008D980A Invalid ACL attribute found for <...>. Explanation:D DEC DATATRIEVE attempted to read a CDO dictionary entity that has' an invalid ACL protection attribute. User Action:A Determine the source of the problem by using the CDO utility's.? SHOW PROTECTION command. If the CDO utility can successfully@ complete this command, then report this problem to the person< responsible for DEC DATATRIEVE on your system. If you areB eligible, submit an SPR. If the CDO utility cannot complete theD command, report this problem to the person responsible for Oracle CDD/Repository. 3 INVCOLPAG; 008D86EA Invalid number of columns for Set Columns_Page. Explanation:= The maximum value for the SET COLUMNS_PAGE co/mmand is 255. User Action:B Reenter SET COLUMNS_PAGE, assigning a value that is not greater than 255. 3 INVDIRPROT2 008D9882 Invalid ACL found for directory <...>. Explanation:C The specified CDO dictionary directory has an invalid protection ACL. User Action:A Determine the source of the problem by using the CDO utility's? SHOW PROTECTION command. If the CDO utility can successfully@ complete this command, then report the initial prob0lem to theC person responsible for DEC DATATRIEVE on your system. If you areB eligible, submit an SPR. If the CDO utility cannot complete theD command, report this problem to the person responsible for Oracle CDD/Repository. 3 INVEDITOR> 008D9402 <...> is not a valid editor within DEC DATATRIEVE. Explanation:? You have assigned the logical name DTR$EDIT to an editor not) currently supported by DEC DATATRIEVE. User Action:& Redefine the logical name1 DTR$EDIT.@ From within DEC DATATRIEVE, use the FN$CREATE_LOG function to redefine the logical name.A At the DCL level, use the DEFINE or ASSIGN command to redefineA the logical name. Do not use the FN$SPAWN function (creating aA subprocess) to get to the DCL level in this instance. CommandsB issued from the subprocess will not take effect in the original process. 3 INVNODSPC' 008D8C2A Invalid Node Specification. Explanation:0 The node specificat2ion has an invalid syntax. User Action:D Reenter the statement or command with a valid node specification. 3 INVOPTIONC 008D957A An invalid option has been specified for the DECwindows+ Motif terminal handler DTR$WINDOWS call. Explanation:: One of the following invalid options was passed to call DTR$WINDOWS: o DTR$M_OPT_BANNER o DTR$M_OPT_KEYDEFS o DTR$M_OPT_REMOVE_CTLC User Action:= Repeat the DTR$WINDOWS call without the3 invalid option(s). 3 INVWDTHRANGE> 008D9A8A WIDTH value of not in range for paper orientation. Explanation:? The number specified in the WIDTH clause is not in the rangeA allowed by the SET PAPER_ORIENTATION statement (80 columns forC portrait orientation and 132 columns for landscape orientation). User Action:C Change the value of the WIDTH clause to a number in the range of the chosen paper orientation. 3 4 IRRELESETB 008D83FA Domain is not related to set . Explanation:C Your Oracle CODASYL DBMS domain implies a set to which it is not related. User Action:> Use the SHOW SETS command to identify the sets in which the+ Oracle CODASYL DBMS domain participates. 3 KEYUNDEFA 008D837A Key "<...>" is not defined in domain "". Explanation:B The key specified in the DEFINE FILE command must be a field in the rec5ord. User Action:@ Reenter the DEFINE FILE command, specifying one of the record6 fields, either elementary or group, as a key field. 3 LINTOOLON0 008D8172 Command line exceeds 255 characters. Explanation:; DEC DATATRIEVE input lines cannot exceed 255 characters. User Action:B Correct the error by entering an input line with a legal number of characters. 3 MAXEXTEXC= 008D952A Maximum size for extract or edit buffer exceeded. Exp6lanation:D A request for a particular portion of the extract or edit command? exceeded the 256-byte size of the buffer for that operation.D Typically, this means that a field definition clause for a record is too large. User Action:C If this record definition was not created by DEC DATATRIEVE, you must do one of the following:A o Define the record through DEC DATATRIEVE before you edit itD o Edit the record definition in the original definition facility7 3 MAXLINEXC< 008D86AA Maximum line count exceeded - report terminated. Explanation:> The report length is greater than the line limit specified. User Action:C Edit the report specification, increasing the value for SET MAX_ LINES. 3 MAXPAGEXC> 008D86DA Maximum report pages exceeded - report terminated. Explanation:> The report length is greater than the page limit specified. User Action:C Edit the report specification, increasi8ng the value for SET MAX_ PAGES. 3 MAXSCRLIN8 008D9512 Maximum lines for scrolling region exceeded. Explanation:C The maximum number of lines allowed within a scrolled region hasB been exceeded. This error might occur when using scroll regionsA in the DEC DATATRIEVE screen manager from commands such as the HELP *... command. User Action:- Request less information in scroll region. 3 MISNOTFLD7 008D842A Object of MISSING operator must be9 a field. Explanation:C The MISSING operator refers to something other than a field, for% example, WITH "PRICE" NOT MISSING. User Action:C Make sure the MISSING clause refers to a field in the domain you are using. 3 MISPICUSA= 008D8162 Missing PICTURE or USAGE clause in previous line. Explanation:A An elementary field or variable definition must contain one ofC the following clauses: PICTURE, COMPUTED BY, or USAGE. With someB USAGE c:lauses, you must also specify a PICTURE clause to define the length of the field. User Action:> Reenter the DECLARE or DEFINE RECORD command, including the8 required clauses in the field or variable definition. 3 MISSETCTXA 008D830A Set "" is undefined or used out of context. Explanation:< Your DEC DATATRIEVE record selection expression invalidly referred to an existing set. User Action:B To use a record selection expression contai ;ning a set name, you must:: o Establish a single record context in the database byD specifying a set occurrence in one of the domains that make upD the set. Use a FOR statement or the FIND and SELECT statementsB to specify a single owner or member record and establish the context.? o Make sure the domain name you specify before the OWNER or> MEMBER clause is correct for that set. Use the SHOW SETSA command to see which domain, collection, or list i<n the setB is the owner and which is the member. You must use the OWNERD clause after the owner and the MEMBER clause after the member.C You can use either the MEMBER or OWNER clause with the WITHIN clause. 3 MISSUBPAR= 008D8282 Missing substitution parameter in command string. Explanation:C The command string you passed in callable DEC DATATRIEVE did not; contain a necessary !CMD or !VAL substitution parameter. User Action: Supply =the missing parameter. 3 MODACCREQ2 008D8242 Modify access is required for "<...>". Explanation:D You cannot modify records unless the record source is readied for MODIFY or WRITE access. User Action:B Reready the source for modify access, and then enter the MODIFY statement to modify a record. 3 MULOCCDEPA 008D8132 Multiple OCCURS DEPENDING ON clauses are not allowed. Explanation:B You cannot have more than one variable-length list in> a record. User Action:@ Reenter the record definition using only one OCCURS DEPENDING> clause. A record can have an OCCURS DEPENDING clause and anA OCCURS clause, specifying a variable-length and a fixed-length list. 3 NAMTOOLONG; 008D8B32 Field name cannot be longer than 31 characters. Explanation:: The maximum length of a DEC DATATRIEVE field name is 31 characters. User Action:? Reenter the DEFINE RECORD command with a shorter field na?me. 3 NESTFDIC 008D8C22 You cannot nest DISPLAY_FORM statements within DISPLAY_ FORM. Explanation:D You included a DISPLAY_FORM statement inside another DISPLAY_FORM statement. User Action:: Rewrite the statement to eliminate the illegal nesting. 3 NEWPINBOT@ 008D86B2 NEW-PAGE and NEW-SECTION are illegal in AT BOTTOM OF PAGE print list. Explanation:@ NEW_PAGE and NEW_SECTION are illegal elements in AT TOP or AT BOTTOM OF PAG@E. User Action:? Revise the report specification, and remove NEW_PAGE or NEW_: SECTION from the AT TOP or AT BOTTOM OF PAGE statement. 3 NOALIAS6 008D0583 You cannot READY a database with an alias. Explanation:A You tried to ready an entire relational or Oracle CODASYL DBMSC database using an alias name. Only specific relations or records may have aliases. User Action:C Reenter the READY command with no alias or with the alias on the relAation or record name only. 3 NOCODTRAN7 008D940A Table must include a code/translation pair. Explanation:D You defined a domain table but did not include the name of a code1 field and its corresponding translation field. User Action:@ Edit or redefine the table definition to include the required$ code field and translation field. 3 NOCOLDROP8 008D847A No collection with selected record for DROP. Explanation:A You cannot drop a record ifB there is no established collectionD with a selected record or if the selected record has already been dropped. User Action:; Form a collection with a FIND statement and use a SELECT? statement to select a record. Then use the DROP statement to0 drop the selected record from the collection. 3 NOCOLPRO& 008D8BBA No collection for project. Explanation:C The REDUCE statement operates only on an established collection. User Action:@ Form a Ccollection with a FIND statement and then use a REDUCED statement to obtain the unique values for the fields you specify. 3 NOCOLSEL% 008D834A No collection for select. Explanation:= You must form a collection before you can select a record. User Action:B Form a collection with a FIND statement and then use the SELECT statement to select a record. 3 NOCOLSOR# 008D8352 No collection for sort. Explanation:: You can use the SORT statemDent only with an established collection. User Action:D Use the SORTED BY clause in an RSE to order records not containedD in an established collection. For example: PRINT EMPLOYEES SORTED BY LAST_NAME.? You can also use the SORTED BY clause in the RSE of the FINDD statement to order records when a collection is being created. InB addition, you can use a SORT statement to reorder records after the collection is created. 3 NOCOMFILEC 008D8CDA Expected iEndirect command file name, encountered end of line. Explanation:? DEC DATATRIEVE expected the name of an indirect command file? at the point where the error occurred but you ended the line instead. User Action:A Reenter the line, adding the name of the indirect command file you want to execute. 3 NOCOMMAND? 008D9573 DEC DATATRIEVE is not ready to process a command or statement Explanation:> You entered a DEC DATATRIEVE command orF statement while the? DECwindows Motif interface was processing a previous command or statement. User Action:? Enter the command or statement again when DEC DATATRIEVE has0 finished processing the command or statement.? Menu names on the menu bar are gray if DEC DATATRIEVE is not? ready to process a command or statement. When menu names are= black, DEC DATATRIEVE is ready to process a new command or statement. 3 NOCOMP60 008D82AA COMP-6 data type iGs not implemented. Explanation:; The COMP-6 data type is not supported by DEC DATATRIEVE. User Action:; Reenter the record or variable definition, specifying an+ available data type in the USAGE clause. 3 NOCONTEXT8 008D81F2 "<...>" is undefined or used out of context. Explanation:= A name is "undefined" if spelled incorrectly or if it does= not exist in any of the definitions DEC DATATRIEVE uses to? process your statement. A name is "used o Hut of context" whenD DEC DATATRIEVE cannot use it to determine which records or fields you want to access. User Action:A Check to make sure the name specified is valid. If it is, makeA corrections to your statement so that DEC DATATRIEVE can link,C for example, a field to the correct record source or a list item& to the correct list (OCCURS field).A If the name used out of context is in an Assignment statement,9 make sure it is on the correct side of the equal Isign.A If the name used out of context is a list field (or any of itsB items), you might have to add to your statement certain clauses8 that enable DEC DATATRIEVE to access lists correctly. 3 NOCTXCON) 008D89A2 No context found for "<...>". Explanation:? There is no subschema for the Oracle CODASYL DBMS domain you tried to access. User Action:; Redefine your Oracle CODASYL DBMS database using a valid/ subschema and enter the READY command agaJin. 3 NOCURCOL: 008D8342 A current collection has not been established. Explanation:> You must have a current collection in order to use the SHOW* CURRENT command or PRINT ALL statement. User Action:B Form a collection with a FIND statement. The format of the FIND statement is FIND rse. 3 NODATA> 008D8FBA Field "<...>" from view cannot be used as a value. Explanation:B Your statement tried to access data using the name of the fieldAK in the OCCURS clause of the definition of the view domain. You? must use one of the names associated with the FROM clause toA access data. For example, suppose your view domain is defined:& DOMAIN PARTS_PUBLIC OF PART_S USING8 01 PART_T OCCURS FOR PART_S WITH PART_SUPPORT = "FS". 03 PART_ID FROM PART_S. 03 PART_DESC FROM PART_S. 03 PART_PRICE FROM PART_S. ;? The statement PRINT PART_T OF PARTS_PUBLIC will generate the NODATA error. User AcLtion:; Reenter the statement, giving the name of a valid field. 3 NODBMS@ 008D89AA The Oracle CODASYL DBMS interface is not included in this image. Explanation:= You tried to access a Oracle CODASYL DBMS domain using DEC? DATATRIEVE, but Oracle CODASYL DBMS is not on the system you are using. User Action:A Use a version of DEC DATATRIEVE that has a Oracle CODASYL DBMSB interface or reinstall DEC DATATRIEVE with Oracle CODASYL DBMS. 3 M NODECTERM3 008D97D2 Unable to create DECterm window-execute" DTR$LIBRARY:REMOTE_DECTERM.COM. Explanation:D DEC DATATRIEVE was not able to create a DECterm window to performD the operation you requested. This might happen if you are working@ with DEC DATATRIEVE in a DECwindows Motif environment and theD DECW$DISPLAY logical is defined to direct output to another node. User Action:@ Invoke DEC DATATRIEVE from a DECwindows Motif terminal and be@ sure that the D NECW$DISPLAY logical is defined to point to theC node from which you are invoking DEC DATATRIEVE. If DECW$DISPLAYA logical is already defined to point to the node from which DEC@ DATATRIEVE is invoked, then report the problem to your system manager.= You might also try invoking DEC DATATRIEVE in line mode by: assigning a value of true to the DEC DATATRIEVE logicalB DTR$NOWINDOWS. This will let you use the following utilities inB line mode: ADT, Guide Mode, DEC DATATRIEVE Ohelp, or plots. WhenD you invoke these utilities in a DECwindows Motif environment, DECC DATATRIEVE spawns a DECterm window. When you invoke them in line1 mode, DEC DATATRIEVE does not involve DECterm.A You might also try invoking the following command procedure atD the DCL level. This allows for the display of a DECterm window on a remote node.. $ @DTR$LIBRARY:REMOTE_DECTERM.COM node-nameD In this command, node-name represents the name of the remote work5 statiPon on which the DECterm display is to appear.D See the DEC DATATRIEVE User's Guide for more information on using( DEC DATATRIEVE with DECwindows Motif. 3 NODISCOD 008D8C3A CONNECT, DISCONNECT, and RECONNECT do not work on remote domains. Explanation:@ You tried to connect, disconnect, or reconnect a local domainC (Oracle CODASYL DBMS record) to a set which is owned by a remote domain. User Action:D Reenter the statement, making sure both domainsQ are local or both are remote. 3 NOERACRO% 008D8AF2 Can't ERASE from a CROSS. Explanation:? The RSE of an ERASE statement cannot contain a CROSS clause. User Action:6 Reenter the ERASE statement without a CROSS clause. 3 NOERALIS, 008D8AEA Can't ERASE from an OCCURS list. Explanation:@ You cannot use the ERASE statement to change or remove fields( from a list in a hierarchical record. User Action:B Use the ERASE statementR to remove data records from a file, not. to remove fields or list items from a list. 3 NOERASEQ? 008D8AD2 Can't ERASE from a sequential file (domain ). Explanation:4 You cannot erase a record from a sequential file. User Action:D Either leave the file as it is, or define a new indexed file fromB which you can erase records. To define an indexed file, use theA DEFINE FILE command, specifying a key field. Then transfer the% data with aS Restructure statement. 3 NOEXCHANGEC 008D9A1A An EXCHANGE record is needed to perform this operation. Explanation:C For some records (view records for instance), an exchange record7 is needed to restructure data to/form a form record. User Action: Use an exchange record. 3 NOEXTRACTB 008D8B42 That record contains things that can't be expressed in the DEC DATATRIEVE language. Explanation:> You tried to extract a record from the daTta dictionary that8 contains a data type DEC DATATRIEVE does not support. User Action:< Redefine the field to use a data type that DEC DATATRIEVE understands. 3 NOFLDS+ 008D0581 No field information available. Explanation:. The relation contains no field definitions. User Action:B Use the utility supplied by the relational database product you) are using to define relational fields. 3 NOFMI0 008D8F0A There is no forms package avaiUlable. Explanation:= You tried to access a domain that uses a form, but the DEC@ DATATRIEVE installation you are using was installed without a forms package. User Action:1 Reinstall DEC DATATRIEVE with a forms package. 3 NOFORMAT6 008D9A02 Unable to load exchange record definition. Explanation:D DEC DATATRIEVE tried to get the definition of an exchange record,> from the dictionary but it didn't find or failed during the operation. V User Action:? Check the pathname of the exchange record or its definition. 3 NOFORMFLD) 008D8FDA Field does not exist on form. Explanation:B The domain you are accessing uses a form. You tried to access a* field that was not defined in the form. User Action:@ Reenter the statement with a valid field name or recreate the/ form to define the field you want to access. 3 NOFTREE+ 008D9A12 Unable to build the Field Tree. Explanation:W User Action: 3 NOGOCDO< 008D954A A DEC DATATRIEVE <...> cannot be stored in a CDO directory. Explanation:D The CDO format dictionary does not support certain DEC DATATRIEVEC object types. These types include tables, procedures, plots, and DEC DATATRIEVE databases. User Action:0 Define the object in a DMU format dictionary. 3 NOGODMUC 008D96F2 Definition contains attributes that cannot be stored in DMU dictionary. Explanation:X> The object being defined contains attributes that cannot beA stored in the DMU format dictionary. Such an object might be aB record that contains a CDO field-level definition included in a@ FROM clause or a domain that refers to a CDD$DATABASE object. User Action:) Define the object in a CDO dictionary. 3 NOGROPRMT4 008D86E2 Illegal assignment to a group data item. Explanation:@ When you assign a value from one group field to another, both@ groupY fields must have at least one elementary field with the! same field name or query name. User Action:= Reenter the STORE USING or MODIFY USING statement, using aC legal assignment to a group field or to its component elementary fields. 3 NOLISTKEYA 008D8EFA Field "" is part of an OCCURS list, so it cannot be used as a key. Explanation:A The field you specified for a key field in DEFINE FILE is partA of an OCCURS list. That means thaZt either the field itself hasD an OCCURS clause in its definition or a group field that contains@ the field has an OCCURS clause. Since the field you specifiedD will occur multiple times in the same record, it cannot be a key. User Action:B If you want to specify a key somewhere within the OCCURS group,C you must REDEFINE the entire OCCURS group and specify one of the redefine fields as the key. 3 NOLOGFILE< 008D8CEA Expected log file name, encountered end of l[ine. Explanation:1 You must specify a file with the OPEN command. User Action:A Reenter the OPEN command and include a file specification. The1 format of the OPEN command is: OPEN file-spec. 3 NONAVIGATOR6 008D991A Unable to invoke the dictionary navigator. Explanation:: DEC DATATRIEVE is not able to invoke the DEC DATATRIEVE Dictionary Navigator window. User Action:B Contact your system manager to make sure that DEC DATATRIEVE is.\ properly set up to run on your workstation. 3 NOPGETPUT? 008D8CCA Storing and retrieving from ports is not allowed in interactive DEC DATATRIEVE. Explanation:< You tried to store data in or receive data from a port in interactive DEC DATATRIEVE. User Action:9 Use callable DEC DATATRIEVE if you must access a port. 3 NOPROJFLDD 008D8BB2 You can't have a project list that doesn't reference any fields. Explanation:C You tried to re]duce to a constant (REDUCE YACHTS TO $10,000, for@ example). The reduce key must be a variable or a field in the. record referred to in the REDUCE statement. User Action:B Reenter the statement, giving a global variable or field in the record as the reduce key. 3 NOREMANY5 008D8ADA Remote ANY expressions are not supported. Explanation:@ You cannot use the relational operator ANY through the remote interface. User Action:@ Rewrite the RSE^ so that it does not include the operator ANY. 3 NOREMEXP/ 008D8AFA Remote expression is not supported. Explanation:> The expression you used is not supported through the remote interface. User Action: Enter a legal expression. 3 NOSELECTION( 008D9702 No current selection exists. Explanation:= You attempted to perform a DEC DATATRIEVE DECwindows MotifA interface COPY or CUT operation; however, no text was selected: from the outp_ut window or from a dialog box text field. User Action:B Select text from the DEC DATATRIEVE output window or from a DEC2 DATATRIEVE dialog box and repeat the operation. 3 NOSELECTMEM> 008D96FA Unable to allocate memory for CUT or COPY or PASTE selection. Explanation:: Virtual memory cannot be allocated for a DEC DATATRIEVE< DECwindows Motif interface CUT, COPY, or PASTE operation.> The operation will not take place but you can still use the DECwind`ows Motif interface. User Action:C Try again when more virtual memory is available. If this problemB persists, contact your system manager to determine why there is insufficient memory. 3 NOSMG: 008D9582 The DEC DATATRIEVE SMG keyboard is not active. Explanation:B When the DECwindows Motif interface is active, the DTR$DTR call is not valid.= This call is valid only when the SMG keyboard interface is active. User Action:C You must maake the call DTR$FINISH_WINDOWS to exit the DECwindowsD Motif interface. You can then make the DTR$DTR call to enable theD SMG interface. Once the SMG interface is active, you can make the remaining calls. 3 NOSTORELD 008D8ACA Can't STORE into a relative file (domain ). Explanation:C You tried to store a record into a relative file. DEC DATATRIEVED allows you to retrieve data from a relative file but not to store in it. User Action:C b Store into the file through a program written in a language that supports relative files. 3 NOTDBNAM+ 008D8982 "<...>" is not a database name. Explanation:C You referred to a database whose domain definition uses the same? name for the domain path name, the record path name, and the< database path name. These three names must all be unique. User Action:D Redefine the domain using different names for the domain, record, and database. 3 NOTcDOMAINA 008D81E2 "<...>" is not a readied source, collection, or list. Explanation:? The source for a DEC DATATRIEVE collection must be a readiedD domain, relation, or Oracle CODASYL DBMS record; a collection; or a list. User Action:= Check that you have spelled all names correctly. Ready the? appropriate source, if necessary, and reenter the statement. 3 NOTDOMNAM) 008D81C2 "<...>" is not a domain name. Explanation:? DEC DATATRIEVE expedcted a domain name at the point the error> occurred. The name specified is the name of another type ofC dictionary object; for example, it might be the name of a record& or table in the current dictionary. User Action:C Check the list of available domain names for the specified name.? Type SHOW DOMAINS to see the list of domains in your currentD dictionary. Reenter the statement or command using a domain name. 3 NOTELEST9 008D9A92  Explanation:= A non-elementary field (e.g. a group field) is used with a statistical function. User Action:: Check to be sure that the field is an elementary field. 3 NOTFLDNAM& 008D97DA <...> is not a field name. Explanation:B The name specified is not the name of a field object. The errorD may occur when a name other than a defined field name is given as> the argument of a FROM FIELD clause in a frecord definition. User Action:A Check to be sure that the field definition exists and that you+ have used the field's correct path name. 3 NOTINFDIB 008D8C1A GET_FORM and PUT_FORM are allowed only in DISPLAY_FORM statements. Explanation:D You tried to use a GET_FORM or PUT_FORM outside of a DISPLAY_FORM statement. User Action:2 Reenter the statement using the correct syntax. 3 NOTMEMSET6 008D83EA Domain <...> is not a member of gset <...>. Explanation:C You specified a record type in a STORE or CONNECT statement that$ is not a member of the named set. User Action:D If you specify CURRENCY in STORE statements, make sure the recordD type is a member of the set. In CONNECT statements, make sure theC record type to be connected is a member of the set. Use the SHOWB SETS command to see the owner type and member type of each set. 3 NOTPLTNAM' 008D81DA "<...>" is not a plot name.h Explanation:C DEC DATATRIEVE expected a plot name at the point where the errorD occurred. The specified name belongs to a dictionary object other than a plot. User Action:> Check the specified name against the list of available plotB names. Type SHOW PLOTS to see the list of plots in your currentB dictionary. Reenter the statement or command using a plot name. 3 NOTPRCNAM, 008D81CA "<...>" is not a procedure name. Explanation:B DEC DATATRIEVE iexpected a procedure name at the point where theD error occurred. The specified name belongs to a dictionary object other than a procedure. User Action:C Check the name specified against the list of available procedureB names. Type SHOW PROCEDURES to see a list of procedures in your? current dictionary. Reenter the statement or command using a procedure name. 3 NOTRDYDOM, 008D81AA "<...>" is not a readied source. Explanation:B You tried to store injto or show fields for a record source thatA has not been readied, or you specified an invalid domain name. User Action:9 Check that you have spelled the source name correctly.A If you have not readied the source you want to access, use theD READY command to do so, and then reenter your statement. The SHOW9 READY command tells you what sources you have readied. 3 NOTRECNAM) 008D81BA "<...>" is not a record name. Explanation:? The statement or commankd requires a record name at the pointD where the error occurred. The name specified is not a record nameA but rather belongs to a dictionary object other than a record. User Action:@ Check the specified name against the list of available recordC names. Type SHOW RECORDS to see the list of record names in your? current dictionary. Reenter the statement or command using a record name. 3 NOTRELNAM= 008D0589 "<...>" is not a valid relation name for database l "<...>". Explanation:A The name you entered does not exist in the relational database you are using. User Action:B Enter the READY command with a valid relation name. To find out? what relations exist in your database, invoke the relational. utility and use the SHOW RELATIONS command. 3 NOTRGREC' 008D83BA No target record for <...>. Explanation:; You must specify a target record with an ERASE or MODIFY statement. User Action:mD Use a FOR loop or a SELECT statement to designate a target record% for the ERASE or MODIFY statement. 3 NOTSET! 008D8302 "<...>" is not a set. Explanation:C The name you specified in the WITHIN, MEMBER, or OWNER clause is not a set name. User Action:7 Use a SHOW SETS command to identify valid set names. 3 NOTSYNONYM1 008D8E82 "<...>" is not the name of a synonym. Explanation:? The name you specified in a RELEASE SYNONYM comnmand is not a synonym. User Action:? Enter the correct name with the RELEASE SYNONYM command. You@ can use the SHOW SYNONYM command to see the synonyms you have defined. 3 NOTTABNAM( 008D81D2 "<...>" is not a table name. Explanation:D The statement or command requires a table name at the point whereA the error occurred. The name specified is not a table name but5 belongs to a dictionary object other than a table. User Action:? Checko the specified name against the list of available tableA names. Type SHOW TABLES to see the list of table names in your? current dictionary. Reenter the statement or command using a table name. 3 NOTVALPRI2 008D846A "<...>" is not a valid privilege code. Explanation:= You can assign privileges only by using one or more of theC following privilege codes in the DEFINEP command: CDEFGHMPRSUWX. User Action:B Reenter the DEFINEP command, using one or morpe of the privilege/ codes in the GRANT, DENY, or BANISH clauses. 3 NOUDKSD 008D8CD2 User Defined Keywords are not allowed in interactive DEC DATATRIEVE. Explanation:: You can use User Defined Keywords only through the call interface. User Action:B Do not use User Defined Keywords in interactive DEC DATATRIEVE. 3 NOVALFROM1 008D83B2 Value not found from record or table. Explanation:> The table that verifies the value that you enteqred does not? contain the value you have specified. The table must contain the value you want to enter. User Action:C Check the value you have entered to be sure that it is accurate.@ If it is not, reenter a correct value. To see what values are2 included in the table, do one of the following:@ o For dictionary tables, use a SHOW table-path-name command.D o For domain tables, use a PRINT domain statement for the domain associated with the table.A If rthe value you entered is accurate, you might want to add to? the list of table values (in a dictionary table definition),C update the records in the source domain (for a domain table), orC add an ELSE clause to the table definition (in the definition of either type of table). 3 NOVIEWSTO& 008D8A92 Illegal STORE into a view. Explanation:, You cannot store data into a view domain. User Action:@ If you want a physical file corresponding to the view domsain,@ define another domain with a record definition and a physicalA file. Then use the view domain as a source for storing data in9 the new domain. Use a statement of the following form:: FOR view-domain STORE domain USING assignment-statement 3 NOWINDOWS> 008D956A The DEC DATATRIEVE window interface is not active. Explanation:. This error is generated in one of two ways:D o One of the following calls was made while the DECwindows Motif interface ist inactive: - DTR$FINISH_WINDOWS - DTR$WINDOW_MSG - DTR$WINDOW_OUTPUTA o DECwindows Motif cannot be initialized when the DTR$WINDOWSB call is made. This is indicated when a DTR$_NOWINDOWS status is returned to the caller. User Action:% Take one of the following actions:@ o If the error was generated because the user made a call to> DTR$FINISH_WINDOWS, DTR$WINDOW_MSG, or DTR$WINDOW_OUTPUT> prior to activating the DECwindo uws Motif interface, then@ make a DTR$FINISH call followed by a DTR$WINDOWS call. The@ DTR$WINDOWS call initializes the DECwindows Motif terminal@ handler. The call DTR$FINISH_WINDOWS ends a DEC DATATRIEVE$ session with DECwindows Motif.= o If the error was generated because the DECwindows MotifA interface could not be initialized, report the situation to your system manager. 3 NOWITHFD 008D9A0A It is not possible to use the WITH_FORM statement whven a SET NO FORM is active. Explanation:D The user tried to use a WITH_FORM statement when the use of forms is disabled. User Action:3 Enable the use of forms or avoid using DECforms. 3 NO_DFPID@ 008D80C2 One of PW, UIC, USER, or TERMINAL must be specified. Explanation:= You entered a DEFINEP command but did not specify any user identification criteria. User Action:B Reenter the command, specifying a password, user identificawtion9 code (for example, [100,100]), a username, or terminal& specification (for example, TTE1:). 3 NO_DFPPRI< 008D80CA One of GRANT, DENY, or BANISH must be specified. Explanation:D You entered a DEFINEP command but did not specify any privileges.B You must include at least one privilege for at least one of the privilege specifications. User Action:C Reenter the command with a privilege list in at least one of the" clauses GRANT, DENY, or BANISH.x 3 NULPRILIS 008D81FA Null print list. Explanation:B Unless you are working with a collection, you must specify what. you want to display in the PRINT statement. User Action:C Specify an RSE in the PRINT statement or establish a collection. 3 OBJTOOBIG5 008D8382 Print object is too large for line width. Explanation:< The print object is longer than the COLUMNS_PAGE setting. User Action:C Enter a SET COLUMNS_PAGE statement and asysign it a value that is9 greater than the character length of the print object. 3 OCCDEPOCCB 008D8B8A An OCCURS DEPENDING ON is not allowed within an OCCURS list. Explanation:B You cannot include a variable-length list within a fixed-length list. User Action:@ Reformulate the field definitions to specify a different list> structure. It is permissible to include a fixed-length list! within a variable-length list. 3 OCCNOTLASC 008D813A Onzly fields with higher level numbers are allowed after an OCCURS DEPENDING ON. Explanation:D No other field definition can follow the last elementary field in= the group field containing the OCCURS DEPENDING ON clause. User Action:A Reenter the DEFINE RECORD command, making sure that the OCCURSB DEPENDING ON group field and its elementary fields are the last- fields specified in the record definition. 3 OCCOUTRAN3 008D8142 OCCURS DEPENDING ON count ou{t of range. Explanation:C The list cannot contain the number of items specified. The rangeD of values allowed in this list is determined by the OCCURS clause in the list field definition. User Action:? Reenter a value within the range allowed for the list by theB record definition or edit the record definition and restructure< the domain so that the list field can contain more items. 3 OCCREQFRO? 008D8ABA OCCURS clause requires at least one FROM field| at a lower level. Explanation:D The view domain definition must contain at least one FROM clause. User Action:C Reenter the DEFINE DOMAIN command, specifying at least one field with a FROM clause. 3 OLDPLOT= 008D8E52 The plot is stored in an incompatible, format. You must extract and redefine it. Explanation:0 The plot is stored in an incompatible format. User Action:! Extract and redefine the plot. 3 ONEEP}ERM= 008D897A Only one "E" permitted in PICTURE or EDIT string. Explanation:@ Use only one E in an edit string to separate the two parts of) floating-point or scientific notation. User Action:D Reenter the field or variable definition. Place one E in the edit@ string, separating the mantissa and the exponent edit string. 3 OUTRANCOL6 008D835A Record number out of range for collection. Explanation:D The record number referred to by the SELECT s~tatement exceeds the' number of records in the collection. User Action:D Reenter the SELECT statement with a different value expression or other argument. 3 PASTELENGTH: 008D972A Item to be pasted is too large for text field. Explanation:@ The material that you are trying to paste from the DECwindowsC Motif clipboard to a text entry field is too large to fit in the text entry field area. User Action:B Paste the material to the scrollable area of the DEC DATATRIEVEA main application window. Select a portion of the material thatD will fit into the text field area and copy that to the clipboard.C Then, paste the shorter material into the text entry field area. 3 PATNOTDIR1 008D824A Path node "<...>" is not a directory. Explanation:: You used the SET DICTIONARY for an object that is not a dictionary. User Action:9 Specify a dictionary name in the command. Use the SHOWA DICTIONARIES command to see the dictionaries available to you. 3 PICUSAMATD 008D8152 PICTURE and USAGE clauses do not match in previous line. Explanation:> The PICTURE clause is incompatible with the specified USAGEA clause. Both these clauses specify the internal storage format= of a data item. Most USAGE clauses define numeric data and= the PICTURE clause, when needed, must also specify numeric characters. User Action:: Correct the field definition so that the PICTURE string: characters are appropriate for the USAGE clause. If you? mistakenly used a PICTURE clause to format the data, replace1 the PICTURE clause with an EDIT_STRING clause. 3 PLOBADARG4 008D8442 Too many parameters for plot definition. Explanation:5 Your plot statement includes too many field names. User Action:@ Reenter the plot statement with the correct number of fields. 3 PLOENTMIS, 008D843A Plot entry point is not defined. Explanation:D The plot you tried to use is corrupt; it does not contain a valid entry point. User Action:C If the plot is from DIGITAL, submit an SPR, if you are eligible.B If the plot is user defined, redefine the plot with the correct entry point information. 3 PLOHDRLNG; 008D941A A title for a plot cannot exceed 49 characters. Explanation:= The title line you entered for the plot was longer than 49B characters. The PLOT TITLE statement centers one to three linesD of a title above the base plot. Each line of the title must be 49 characters or less. User Action:< Reenter the PLOT TITLE statement and reduce the number of) characters in each line to 49 or less. 3 PLOIDXRANB 008D845A Plot index out of range. Vector: <...>, index: "<...>" Explanation:" The plot index is out of range. User Action:@ When you see this error in interactive DEC DATATRIEVE, please% submit an SPR if you are eligible. 3 PLOLOCRAN= 008D8462 Plot location fn out of range. Fn: , value:  Explanation:D The plot cannot handle all of the data. The coordinates cannot be plotted on the screen. User Action:: Make sure the record stream specified contains records. 3 PLOTOOBIG' 008D945A Maximum plot size exceeded. Explanation:D The internal data structures needed to produce this plot exceeded the DEC DATATRIEVE limits. User Action:3 Reduce the number of records used for this plot. 3 PRIVVIOL. 008D80E2 Privilege violation-access denied. Explanation:> You do not have sufficient privileges for the operation you attempted to perform. User Action:> Use the SHOW PRIVILEGES command to see your privileges. Use? the DEFINEP command to grant yourself additional privileges.B Check with your system manager if you cannot grant yourself the necessary privileges. 3 PROTNOTSUPP; 008D9822 Use CDO to define protection for element <...>. Explanation:? The element for which you are attempting to define, display,> or delete protection is not a domain, record, or dictionary directory. User Action:A You must use the CDO utility to define, display, or delete the ACLs for this object. 3 PURELMSEMB 008D92FA You cannot purge a specific version of object "<...>". Explanation:< The PURGE command deletes all but the highest versions ofD dictionary objects. Therefore, you cannot specify version numbers in an object path name. User Action:A Do not include version numbers within an object path name when@ using the PURGE command. To delete specific versions, use the DELETE command. 3 PURKEEPBAD? 008D92E2 The KEEP value for PURGE must be greater than zero. Explanation:B When you use the KEEP argument of the PURGE command, you cannot. specify a value less than or equal to zero. User Action:@ Make sure you specify a number greater than zero for the KEEP! argument of the PURGE command. 3 RDBCOMPOUNDA 008D92C2 Compound statements referencing relational fields may not contain COMMITs. Explanation:? You used a COMMIT statement within a compound statement. TheB compound statement contained a record selection expression thatB referred to a relation or relational field. DEC DATATRIEVE does not allow this. User Action:; Make sure compound statements that refer to relations or6 relational fields do not contain COMMIT statements. 3 RDBNORELC 008D932A Database "<...>" cannot be readied since it contains no relations. Explanation:@ You cannot ready a relational database that does not have any relations defined for it. User Action:0 Define relations for the relational database. 3 RDBREQSYNC> 008D92CA Statement aborted by relational database due to an invalid request for data. Explanation:C An invalid data request has been sent from DEC DATATRIEVE to the relational database system. User Action:, Please submit an SPR if you are eligible. 3 RDSNOTACT6 008D82B2 Remote DDMF server could not be activated. Explanation:B You tried to access a remote domain, but DEC DATATRIEVE was not6 able to start the DDMF server on the remote system. User Action:% The problem is on the remote node. 3 RDSTERMIN7 008D82BA Remote DDMF server terminated unexpectedly. Explanation:B The DDMF server on the remote node was unexpectedly terminated. User Action:4 Find the cause of termination on the remote node. 3 RDYNOTOPT: 008D9420 Use of optimization for record "<...>" failed. Processing will continue. Explanation:A Use of optimization to define the file or to ready the domain,B relation, or Oracle CODASYL DBMS record has failed. The commandB is processed, but the process takes longer because optimization is not used. User Action: None. 3 RECERSD? 008D83CA You can not use a field from a record that has been erased. Explanation:> You tried to retrieve information from a record you erased. User Action:< Use the STORE command to store a new record, or select an existing record. 3 RECEXCMAX( 008D92D2 Record size exceeds maximum. Explanation:@ You created a record longer than 65,535 bytes. Records longer! than 65,535 bytes are illegal. User Action:? Make sure the record definitions you create are shorter thanC 65,535 bytes. To avoid such long records, use care when defining( records with multiple OCCURS clauses. 3 RECNOTCURB 008D9430 Record "<...>" uses old record format. Processing will; continue, but for optimization you must redefine record. Explanation:@ A record that is defined using the OPTIMIZE qualifier under a@ previous version of DEC DATATRIEVE is not compatible with the@ current version of DEC DATATRIEVE. The process will continue;% however, optimization is not used. User Action:@ To update the record so that formats are compatible, you must* redefine the record in one of two ways:1 o Edit the record without making any changes.C o Extract the record using the full dictionary or relative path? name; make no changes to the definition; then execute the resulting command file. 3 RECNOTOPT> 008D9410 Record will be defined, but will not be optimized. Explanation:A Optimization of the record failed. The record will be defined,@ but it will not be optimized. DEC DATATRIEVE removes the word' OPTIMIZE from the record definition. User Action:D If a message concerning insufficient virtual memory preceded thisD message, then free up memory space by using the FINISH command toD end access to other readied domains, relations, or Oracle CODASYL? DBMS records. Edit the record again and replace the OPTIMIZE qualifier. 3 RECPREDRO8 008D8482 Record has been dropped from the collection. Explanation:D You selected a record, dropped it, then tried to access it again. User Action: Find the collection again. 3 RELINKD 008D9522 Please relink your DEC DATATRIEVE image or reinstall DEC DATATRIEVE. Explanation:B The DTR image was linked under a OpenVMS V4 system and is being run from a OpenVMS V5 system. User Action:; Please relink your DEC DATATRIEVE image or reinstall DEC DATATRIEVE. 3 REMCROSS@ 008D9212 CROSS can only be used on domains with the same node specifications. Explanation:B You tried to cross a remote domain with a local domain. This is not allowed. User Action:B Reenter the statement, making sure all domains are local or all are remote. 3 REMNOCROSS4 008D921A This remote node does not support CROSS. Explanation:A The system on which you attempted to perform a CROSS operation% does not support the CROSS clause. User Action:B If you wish to perform the cross, transfer the data to a system= which has a DEC DATATRIEVE that supports the CROSS clause. 3 REMSELBOO= 008D8FAA SELECT with a boolean is not supported for remote collections. Explanation: This is a restriction. User Action:> Do not use the SELECT statement with Boolean expressions on remote collections. 3 REMSYNERR. 008D82F2 DDMF remote synchronization error. Explanation:; While you were accessing a remote domain, DEC DATATRIEVE( encountered a software inconsistency. User Action:> See the person responsible for DEC DATATRIEVE on the remote system. 3 REPNOTFIT; 008D869A Print object(s) too long to fit on report line. Explanation:A The print object is longer than the Report Writer COLUMNS_PAGE specification. User Action:A Reenter the report specification and use a larger value in the SET COLUMNS_PAGE statement. 3 REQDICMIS8 008D8232 Required dictionary attribute <...> missing. Explanation:A A Oracle CDD/Repository object did not have the attributes DECA DATATRIEVE expected. Either it is the wrong type of object for> the operation attempted (for example, a Oracle CODASYL DBMS@ record used in a DEC DATATRIEVE domain) or the object did not/ get stored in the data dictionary correctly. User Action:A Check that you are using the correct type of dictionary object@ for the operation. If so, and the object was stored correctly? in the data dictionary, you may have encountered an error inC the software. If you are eligible, submit a Software Performance Report. 3 RERDYFAIL; 008D82A2 Re-ready failed. Domain automatically finished. Explanation:? You tried to ready domain based on a RMS file again, but RMS? returned an error. DEC DATATRIEVE automatically finished the! domain at the old access mode. User Action:@ Try reentering the READY command. If the error continues, see your system manager. 3 RMSCHG@ 008D8EE2 You cannot modify the value of an RMS key field that does not allow changes. Explanation:D Some RMS key fields are defined so that once a value is stored in" the field it cannot be changed. User Action:B Since you cannot change the value of the field, the only way to@ have a record with that change is to erase the old record andB store a new one. It is better to store before you erase the oldB record. If you made the change accidentally at a *.prompt, thenD retype the query and press TAB and RETURN at that prompt. You canD find out which fields are keys by entering a SHOW FIELDS command. 3 RMSDUPB 008D8EEA You cannot store a duplicate value in an RMS key field! that doesn't allow duplicates. Explanation:= Some fields that areRMS keys are defined so that it is notB possible to have two records with the same value stored in that field. User Action:D If you made a mistake in entering data at a *.prompt, then retype> the query and enter the proper data. You can find out which5 fields are keys by entering a SHOW FIELDS command. 3 RPODUPAT8 008D844A Duplicate control break specified for <...>. Explanation:A You specified more than one control break for a single control group. User Action:1 Include only one control break for each group. 3 RPOEXCPRI2 008D841A Excessive PRINT statements for REPORT. Explanation:7 You can only include one PRINT statement in a report specification. User Action:@ Eliminate one of the PRINT statements or combine the two intoD one. You may include one or more AT statements in addition to the PRINT statement. 3 RPOFMTRJT4 008D8422 REPORT formatting clause out of context. Explanation:? The NEW_SECTION, REPORT_HEADER, or COLUMN_HEADER clause in a( report is entered in the wrong place. User Action:( Enter the clauses in the right order. 3 SELBADBOOA 008D8B22 Unable to select a record that satisfies the Boolean. Explanation:A There is no record in the collection that meets the conditions' set forth in the Boolean expression. User Action:< If you still require a selected record, either change the= composition of the source collection or change the Boolean expression within the RSE. 3 SELNOTFND& 008D8362 Selected record not found. Explanation:A You selected a record from a collection, erased it, then triedA to select it again. (A READY command generates this message ifC during a reready of a domain another user readies the domain and erases your selected record.) User Action:$ None. The record has been erased. 3 SELRECREQ- 008D83DA No selected record in collection. Explanation:C There is no record in the collection that meets the condition of$ your record selection expression. User Action:< If you still require a selected record, either change the< composition of the source collection or change the record selection expression. 3 SETNOTUSEC 008D8B62 Set "" can not be used - either an owner or a member source is not ready. Explanation:@ The statement you entered referred to a set for which not all@ necessary Oracle CODASYL DBMS domains or records are readied. User Action:7 Ready the missing sources and reenter the statement. 3 SORTOPEN7 008D8B4A Error creating the work files for the sort. Explanation:A The SORT statement could not open its work files. This usuallyB means you have exceeded your quota for open files or run out of disk space. User Action:A Check your quotas for open files and disk space and have these quotas enlarged if necessary. 3 SYNTAX0 008D8112 Expected <...>, encountered "<...>". Explanation: You have made a syntax error. User Action:B See help for the statement, command, clause, or expression that> you used. Correct the syntax error and enter the command or statement again. 3  SYNTAX_ERR" Syntax error at or near "!AD" . Explanation:= A general syntax error has been discovered which cannot beA considered in the general schema of Expected X, Encountered Y. User Action:) Check the syntax of command/statement. 3 TOOMANDIG: 008D815A Too many digits in numeric string (max is 18). Explanation:C A numeric PICTURE clause cannot specify more than 31 digits (PIC@ 9(31)). When an item is defined as USAGE COMP, the associated@ PICTURE clause cannot specify more than 18 digits (PIC9(18)). User Action:A Correct the PICTURE clause for the field so that the number ofD digits specified is no larger than the maximum number allowed for that field. 3 TOOMNYFLD. 008D8B72 Maximum number of fields exceeded. Explanation:C In the report writer, you have specified too many fields for the number of columns specified. User Action: Reduce the number of fields. 3 TXTNOTFND: 008D826A Source text for <...> not found in dictionary. Explanation:< You tried to show a dictionary object such as a record or: procedure but there was no text in the data dictionary. User Action:$ See your system manager for help. 3 UNSCONV( 008D8212 Unsupported data conversion. Explanation:1 Your definition uses an unsupported data type. User Action:= Redefine the field or variable to use a data type that DEC? DATATRIEVE supports. See the DEC DATATRIEVE Reference Manual" for a list of valid data types. 3 UNTERQUO' 008D817A Unterminated quoted string. Explanation:C You entered an alphanumeric literal string without including the terminating quotation mark. User Action:< Reenter the statement and add the missing quotation mark. 3 UNWIND- 008D821A Execution terminated by operator. Explanation:? You entered a CTRL/C to terminate your command or statement. User Action:? None. DEC DATATRIEVE will handle all the cleanup. If you are2 storing or modifying records, data may be lost. 3 USESLOEXH= 008D8102 DDMF user slots are exhausted - cannot initialize! another DEC DATATRIEVE stream. Explanation:C In callable DEC DATATRIEVE, your program has used all five slots! available for DAB information. User Action:! Call DTR$FINISH to free slots. 3 VALIDERR4 008D838A Validation error for field . Explanation:A The value assignment for a field or variable does not meet the9 Boolean test in the VALID IF clause of the definition. User Action:= Check the definition to see which values are allowed. Then> reenter the Assignment statement using an acceptable value. 3 VIEDOMUNDD 008D8492 Domain was not included in domain list for view. Explanation:; The view you tried to ready references a domain that DEC  DATATRIEVE cannot find. User Action:A Define a domain for the view or redefine the view to referenceB an existing domain, then reready the view. You can use the SHOW? DOMAINS commands to see what existing domains are available. 3 VIEFIEUNDA 008D848A Field cannot be found in domain . Explanation:C The view you tried to ready contains a field that does not exist% in the domain the view references. User Action:D  Redefine the view to specify only those fields that are contained in the domain. 3 WRIACCREQ1 008D823A Write access is required for "<...>". Explanation:@ You cannot store or erase records unless the record source is readied for WRITE access. User Action:C Reready the source for write access and enter the STORE or ERASE statement. 3 WRODOMTYP8 008D8372 "<...>" is not a domain based on a RMS file. Explanation:D You tried to define a file, but the domain you specified is not a domain based on a RMS file. User Action:3 Reenter the definition with a valid domain name. 3 WRONGSTALL. 008D810A Wrong call for current stallpoint. Explanation:C Your program calls the wrong callable DEC DATATRIEVE routine forA the stallpoint. For example, DTR$GET_STRING can be called only( when the stallpoint is DTR$K_STL_UDK. User Action:D Make sure you are at the correct stallpoint for this call. If youA see this error in interactive DEC DATATRIEVE, please submit an SPR if you are eligible. 2 Warning_Messages 3 ADTECANTOPENB 008D8D30 ADT could not open a file with that name. Please enter another file name. 3 ADTEDUPNAME? 008D8D40 duplicates another name. Please enter a unique name. 3 ADTEFLDSMLD 008D8DB0 A field in a record cannot have a length of zero. Please answer with an integer. 3 ADTEINVDATEB 008D8D58 Please use one of these format numbers: 1, 2, 3, or 4. 3 ADTEINVFILEB 008D8D50 Please use a valid file name. Enter up to 9 letters orA digits, and optionally a period and up to 3 letters or digits. 3 ADTEINVNAM> 008D8DB8 <...> violates the rules for DEC DATATRIEVE names. Please enter a valid name. 3 ADTEINVTYPE= 008D8D48 Please answer with DATE, PERCENT, MONEY, NUMBERS,A CHARACTERS, or GROUP. You can also use the abbreviations D, P, M, N, C, or G. 3 ADTEKEYDOMD 008D8D60 Do not use the domain name as the name of the key field.$ Please enter the name of a field. 3 ADTEKEYWORDA 008D8D38 That name duplicates a DEC DATATRIEVE keyword. Please enter another name. 3 ADTENAMBIG< 008D8DA8 This name exceeds the 30-character limit for DEC/ DATATRIEVE names. Please enter another name. 3 ADTENODOM7 008D8D68 You have not defined any domains or fields. 3 ADTENOHELP: 008D8E00 No HELP text has been supplied for this state. 3 ADTENOPROMPT< 008D8E08 No prompt text has been supplied for this state. 3 ADTENOTCR3 008D8D80 Do not respond by only pressing RETURN. 3 ADTENOTFLDA 008D8D88 To specify an index key name, use the name of a field you have previously defined. 3 ADTENOTNULL. 008D8D28 Do not use all spaces and/or tabs. 3 ADTENOTNUM* 008D8D70 Please answer with an integer. 3 ADTENOTPOS: 008D8D78 Please answer with a number greater than zero. 3 ADTENOTUNQ6 008D8D90 You have already used this field as a key. 3 ADTENUMBIG> 008D8D98 This field is too long for the type of data it can- contain. Its size cannot exceed 18 digits. 3 ADTENUMSML> 008D8DA0 The total number of digits is zero. Please enter a larger number of digits. 3 ADTEYESNO8 008D8DC0 Please answer with either YES (Y) or NO (N). 3 ASSNEGUNSC 008D8B00 Assignment of negative value to unsigned item; absolute value used. 3 ASSUMELIT/ 008D84E0 "<...>" not field, assumed literal. 3 BADASSIGNB 008D939A Variable "<...>" may contain an incorrect value due to error during assignment. 3 BADFLDEXP> 008D9958 Field <...> ignored because of invalid expression. 3 BADFLDTYPD 008D9290 Field ignored because unsupported datatype. 3 BADHLPLINC 008D8C10 Help line number out of range or not enough lines. Top: Bottom: . 3 BADLOGNAM; 008D99A0 Error found while processing logical name <...> 3 BADMISLEN> 008D8690 Missing value edit string longer than edit string. 3 BADMODSTOC 008D93A8 Field "" may contain an incorrect value due# to error during STORE or MODIFY. 3 BADRDYMOD> 008D9448 The value of DTR$READY_MODE "<...>" is not a valid access option. 3 BADRELNAM= 008D97C0 Invalid relation name. <...> will be used and the remainder dropped. 3 BADSEGEDITB 008D9330 Segmented string field must have "T" edit) string, defaulting to T(COLUMNS_PAGE). 3 BADSIGN2 008D94F0 Invalid sign or signs in string <...>. 3 CANRRDYDOMD 008D8AA8 Source cannot be re-readied at this access mode unless a) COMMIT, ROLLBACK, or FINISH is issued. 3 CANTSPAWN, 008D9920 Subprocess could not be spawned. 3 CDDONLYD 008D9530 You cannot perform this operation on CDO dictionary node <...>. 3 CHGSNAPAC? 008D93C8 SNAPSHOT WRITE is not a valid access mode. Readying "<...>" SNAPSHOT READ. 3 CHILDMSGB 008D9748 <...> is related to an entity whose relationships have, changed, triggered by <...> entity <...>. 3 CLAIGNGRP; 008D8EC8 <...> clause ignored in group field definition. 3 CLAIGNORE> 008D8EB8 <...> clause is ignored when you use a COMPUTED BY clause. 3 COMPLEX7 008D84A8 Data conversion error on complex data type. 3 COMPURCOL@ 008D8510 COMMIT or ROLLBACK executed; collection automatically released. 3 CONSIGUSAA 008D84C0 Conflicting SIGN and USAGE clauses, ignoring "<...>". 3 CONVALCOM3 008D84C8 Conflicting VALID and COMPUTED clauses. 3 CTXMAGICD 008D8538 Not enough context. Some field names resolved by Context Searcher. 3 DATCNVERR4 008D84A0 Conversion error in date string "<...>". 3 DATINPERR> 008D8A88 Error translating DTR$DATE_INPUT (translated value "<...>"). 3 DEFSCROLLINA 008D9950 Unable to allocate scroll lines, defaulting to <...>. 3 DELNOPRIV2 008D9310 No privilege to delete object "<...>". 3 DIFFERENTDB= 008D93E0 "<...>" cannot be readied with the same name as a currently readied source. 3 DIVBYZERO? 008D84F8 Attempt to divide by zero. Returning -1 as a value. 3 DROPRELATE? 008D9550 Relationships cannot be applied to DMU objects. The> RELATIONSHIPS QUALIFIER has been removed from domain <...>. 3 ENDOFSTR= 008D8BE0 End of string - no more tokens available for user defined keyword. 3 EXPCOTAVA@ 008D8530 Expected collection, table, or variable, encountered "<...>". 3 FLDTYPCNVB 008D9A70 Field converted to because of unsupported data type. 3 IGNVALEXP> 008D9960 Invalid VALID IF expression in field <...> will be ignored. 3 ILLASCIICHAR, 008D8F78 Illegal ASCII character "<...>". 3 ILLASCNUM* 008D89D0 Illegal ASCII numeric "<...>". 3 INVKEYMOD9 008D94A8 "<...>" is not a valid alternate keypad mode. 3 INVMSG> 008D9740 <...> is invalid, triggered by <...> entity <...>. 3 LITTYPCVN9 008D9A78 A literal was converted to because of unsupported data type. 3 MISCLAMIS> 008D8520 MISSING VALUE not defined for <...>, using default value. 3 MSGPROBB 008D9768 An error occurred while fetching Oracle CDD/Repository messages for <...>. 3 NEWVERMSGB 008D9758 <...> uses an entity which has new versions, triggered by <...> entity <...>. 3 NOACCCHG5 008D84D8 Couldn't change access to readied domain. 3 NOBANISH8 008D9838 BANISH option ignored for CDO element <...>. 3 NOCONSIST= 008D93D8 CONSISTENCY/CONCURRENCY is being ignored for non- relational source "<...>". 3 NODELETE/ 008D9A28 Could not delete temporary file !AS 3 NODMUEXTENDD 008D9868 X (EXTEND) protection option ignored for CDO dictionary. 3 NOFORWARD9 008D9870 F (FORWARD) protection option ignored for CDO dictionary. 3 NOGLOBDELETE? 008D9858 G (GLOBAL_DELETE) protection option ignored for CDO dictionary. 3 NOHISTORY9 008D9878 H (HISTORY) protection option ignored for CDO dictionary. 3 NONDIGIT? 008D84B8 Non-digit in string "<...>", ignoring character(s). 3 NOPASSTHRU; 008D9860 P (PASS_THRU) protection option ignored for CDO dictionary. 3 NOPASSWORD3 008D9828 Password ignored for CDO element <...>. 3 NORECSEL: 008D8528 No record selected, printing whole collection. 3 NOSEGASSC 008D9380 Ignoring illegal assignment to or from segmented string field . 3 NOSEGDEFAULT= 008D9338 Segmented string field cannot have a0 default value, default value will be ignored. 3 NOSEGMISSING= 008D9340 Segmented string field cannot have a0 missing value, missing value will be ignored. 3 NOSNAPCOMC 008D93F8 A COMMIT cannot be done while there is a Oracle CODASYL( DBMS source readied in SNAPSHOT mode. 3 NOTALLREL? 008D97E0 Some domains referenced by view are defined without> RELATIONSHIPS. Therefore not all view relationships will be formed. 3 NOTERMINAL@ 008D9830 Terminal option <...> ignored for CDO element <...>. 3 NOTINTAB% 008D83A8 Value not found in table. 3 NOTRDYSNAPA 008D93F0 Oracle CODASYL DBMS source does not permit snapshots.& "<...>" cannot be readied SNAPSHOT. 3 OVERFLOW% 008D84D0 Data conversion overflow. 3 OVFDURMUL+ 008D8508 Overflow during multiplication. 3 PLONUMARG? 008D8E58 Wrong number of arguments supplied to internal plot call. 3 POSMSG@ 008D9738 <...> is possible invalid, triggered by <...> entity <...>. 3 PURNOTDICTA 008D92F0 No objects purged for the current default dictionary. 3 PURELMNOT= 008D92E8 No objects purged for dictionary element "<...>". 3 PURNOTDTRB 008D9308 Element "<...>" is not a Domain, Record, Procedure, or Table. 3 PURNOTFND1 008D9300 Dictionary element "<...>" not found. 3 RDBCOMMITSTAC 008D92B8 Statement containing COMMIT aborted after first COMMIT. 3 RDBERRFIN> 008D93B0 Unable to start a relational database transaction,$ finishing all relational domains. 3 RDYMODIGN: 008D9450 The preceding error occurred while translating? DTR$READY_MODE. Therefore, the DEC DATATRIEVE default access option will be used. 3 REDEFINEA 008D0588 Element to be redefined not found in dictionary - new element defined. 3 RELMSGD 008D9730 <...> is related to an invalid <...>, triggered by <...> entity <...>. 3 RELONLYCDO>  008D9558 RELATIONSHIPS will be applied only to CDO objects. 3 RESATTNAM/ 008D99AA <...> is a reserved attribute name. 3 ROLLBACK: 008D8A60 COMMIT failed, automatic ROLLBACK in progress. 3 ROLPURCOL= 008D92D8 ROLLBACK executed; collection <...> automatically released. 3 SEGCANCERROR> 008D9350 Error canceling segmented string created for field . 3 SEGCLOSERRORB 008D9358 Error closing segmented string for field . 3 SEGCREAERROR? 008D9368 Error creating segmented string for output to field . 3 SEGOPENERRORC 008D9370 Error opening segmented string from field . 3 SEGREADERRORC 008D9360 Error reading segmented string from field . 3 SEGWRITERRORA 008D9348 Error writing to segmented string field . 3 SNAPTOSHAREC 008D92A0 Some record sources currently READYed SNAPSHOT will now be accessed SHARED READ. 3 SYNALDEC2 008D8C30 "<...>" is already declared a synonym. 3 TOOMANDECC 008D8A80 Too many decimal points in string "<...>", ignoring all but first. 3 TOOMANSIG> 008D8A78 Too many signs in string "<...>", ignoring all but first. 3 TRAPURCOL@ 008D9270 New relational transaction started; collection <...> automatically released. 3 TRUDURASS) 008D8500 Truncation during assignment. 3 TRUNCSTR? 008D8BF0 Truncated a token. Remainder returned on next call. 3 UNDERFLOW& 008D84B0 Data conversion underflow. 3 UNKMSGB 008D9760 <...> has a message of unknown type triggered by <...> entity <...>. 3 UNSHOWDB5 008D94D8 Unable to show <...> relational database. 2 Informational_Messages 3 ADTFCHAR; 008D8DCB <(query-name)> characters 3 ADTFDATE1 008D8DD3 <(query-name)> is a date 3 ADTFGROUP' 008D8DDB <(query-name)> 3 ADTFMONEYC 008D8DE3 <(query-name)> digits left (and 2) digits right) of the decimal, is money 3 ADTFNUMBERS@ 008D8DEB <(query-name)> digits left and' digits right of the decimal 3 ADTFPERCENT4 008D8DF3 <(query-name)> is a percent 3 ADTIBACKUP$ 008D8E2B ADT backing up one state 3 ADTIDEF> 008D8DFB The DEC DATATRIEVE definitions for your domain areD  located in file . The record length is bytes. 3 ADTIVIDEO@ 008D8E33 A D T? - Help! - Fields < -Back up PF2 - Screen Help 3 APPKEYPAD' 008D94E3 < Application keypad mode > 3 BACKTRACE" 008D863B  3 COLLECTIONS 008D8623 Collections: 3 COMROLLCOMP( 008D92B3 COMMIT / ROLLBACK completed. 3 DATABASES 008D898B Databases: 3 DELNOTFOU- 008D85E3 Dictionary object does not exist. 3 D%ICTIONARIES 008D85DB Dictionaries: 3 DICTIONARY0 008D8593 The default directory is  3 DISPLAY 008D860B DISPLAY: <...> 3 DOMAINS 008D859B Domains: 3 EDITBACK 008D8F53 Edit backup 3 EDITNOBACK 008D8F5B Edit no backup 3 FORMINLIB. 008D8E98 Form in  3 FORMS 008D8E8B Loaded forms: 3 GHEALL< 008D88A3 Use all of the records in the current collection 3 GHEALPHA 008D87FB Alpha/numeric field 3 GHEALPHAQ8 008D8803 Alpha/numeric field (alias for ) 3 GHEANY 008D8993 Search list 3 GHEAT? 008D906B Print values when the page or a field value changes 3 GHEAVERAGE 008D9193 Average of a field 3 GHEBOTTOM< 008D9073 Print values at the end of a page or field value 3 GHEBY) 008D9073 Required word in the language 3 GHECDDPATHD 008D9083 Dictionary names (A-Z, 0-9, _, $) se%parated with periods 3 GHECHAR 008D91E3  3 GHECOLECT 008D87DB Record collection 3 GHECOMMA& 008D908B Comma to separate elements 3 GHECOMP 008D91D3  3 GHECOMPU 008D882B A computed value 3 GHECOMPUQ5 008D8833 A computed value (alias for ) 3 GHECONTAI" 008D894B Containing a substring 3 GHECOUNT 008D919B Number of records 3 GHECROSS7 008D8C68 Join another recor$d source to prior sources 3 GHEDATE 008D881B Date field 3 GHEDATEQ/ 008D8823 Date field (alias for ) 3 GHEDECR/ 008D9093 Sort field from largest to smallest 3 GHEDECREA 008D88B3 Sort backwards 3 GHEDICT= 008D909B Change dictionary for your domains and procedures 3 GHEDOMAIN 008D87D3 Record domain 3 GHEENDREP' 008D90A3 Finish the report statement 3 GHEEQUAL 008D90AB Equals 3 GHEFILNAM!) 008D90B3 Filename or device for output 3 GHEFIND, 008D878B Retrieve a collection of records 3 GHEFIRST* 008D90BB First record of the collection 3 GHEGE! 008D892B Greater than or equal 3 GHEGROUP 008D884B Group field 3 GHEGROUPQ0 008D8853 Group field (alias for ) 3 GHEGT 008D8933 Greater than 3 GHEINCR/ 008D90C3 Sort field from largest to smallest 3 GHELAST) 008D90CB Last record of the colle(ction 3 GHELE 008D893B Less than or equal 3 GHELEAVE+ 008D87AB Return to normal DEC DATATRIEVE 3 GHELFPAREN* 008D90D3 Parenthesized value expression 3 GHELIST 008D883B List 3 GHELISTQ) 008D8843 List (alias for ) 3 GHELITERAL 008D90DB Quoted string 3 GHELT 008D8943 Less than 3 GHEMAX$ 008D91C3 Maximum value of a field 3 GHEMIN$ 008D91CB Minimum value of a field 3 GHEMODI!FY3 008D876B Update field values for selected record 3 GHENEWLINE1 008D90E3 Finish the current line of the report 3 GHENEXT8 008D8913 Next record of the collection (default case) 3 GHENOT/ 008D90EB Reverse the sense of the comparison 3 GHENUMBER 008D90F3 A number 3 GHENUMBR 008D880B Numeric field 3 GHENUMBRQ2 008D8813 Numeric field (alias for ) 3 GHEOF) 008D90FB Required word in the language 3  GHEON2 008D9103 Send report output to a file or device 3 GHEOPER- 008D910B Arithmetic operator: +, -, * or / 3 GHEOVER# 008D8C73 Qualify a record stream 3 GHEPAGE8 008D9113 Print values at the start or end of the page 3 GHEPLOT2 008D8C63 Graph data from the current collection 3 GHEPLOTS0 008D911B Change the dictionary for your plots 3 GHEPRINT% 008D8773 Print a record or records 3 GHEPRIOR 008D891B Previous record# 3 GHEPROC- 008D8C5B Invoke a DEC DATATRIEVE procedure 3 GHEQUOTE+ 008D9123 Any character, end with a quote 3 GHEREADY! 008D879B Make domain available 3 GHEREADYM' 008D895B Read and modify access only 3 GHEREADYR 008D8953 Read access only 3 GHEREADYW) 008D8963 Read, modify and store access 3 GHEREPORT% 008D912B Create a formatted report 3 GHEREPPRI) 008D9133 Print values for every record 3 GHEREPREP: 008D913B Print values at the start or end of the report 3 GHERETURN 008D890B Finish statement 3 GHERTPAREN 008D9143 Closing parenthesis 3 GHERUNNING/ 008D91B3 Compute statistical for each record 3 GHESELECT3 008D8783 Pick out a particular record for update 3 GHESET5 008D8FB3 Set default dictionary or plot dictionary 3 GHESHOCOL) 008D914B Display available collections 3 GHESHOCUR8 008D9153 Display details abou!t the current collection 3 GHESHODOM% 008D915B Display available domains 3 GHESHOPLO# 008D9163 Display available plots 3 GHESHOPRO( 008D916B Display available procedures 3 GHESHORDY1 008D9173 Display details about readied domains 3 GHESHOW& 008D87A3 Display status information 3 GHESORT" 008D877B Rearrange a collection 3 GHESTART% 008D917B Starting with a substring 3 GHESTDDEV) 008D91A3 Standard deviation of a %field 3 GHESTORE 008D8793 Store a new record 3 GHETERM 008D91DB  3 GHETOP> 008D9183 Print values at the start of a page or field value 3 GHETOTAL 008D91AB Sum of a field 3 GHEWITH! 008D87EB Qualify record search 3 GPRALL% 008D91EB All value expression list 3 GPRALLFLD+ 008D8883 ALL, fieldname list or  3 GPRALLVALRET- 008D8FE3 ALL, value expression or  3 GPRALPHA 008#D8E6B alphanumeric field 3 GPRATBOT& 008D8F1B AT BOTTOM OF or END-REPORT 3 GPRATPRIEND1 008D8FEB AT control break, PRINT or END_REPORT 3 GPRATTOP 008D8F13 AT TOP OF or PRINT 3 GPRBREAK- 008D8FF3 PAGE, REPORT or sorted field name 3 GPRBY 008D8FFB BY sorted field list 3 GPRCDDPATH 008D918B dictionary path name 3 GPRCOLECT 008D8733 collection name 3 GPRCOMAND+ 008D8703 Enter command, type ? for help. & 3 GPRCOMPAR 008D87F3 comparison 3 GPRCOMRET 008D8873 comma or  3 GPRCROSS: 008D8C7B CROSS record-source, WITH boolean, or  3 GPRDATE 008D8E73 date field 3 GPRDECINCFLD0 008D9003 DECREASING, INCREASING or field name 3 GPRDOMAIN' 008D870B domain name, end with space 3 GPRDOMCOL% 008D87CB domain or collection name 3 GPRFIELD 008D8723 field name 3 GPRFILNAM 008D900B file name 3 & GPRFLDDEC# 008D88AB fieldname or DECREASING 3 GPRFLDPAG 008D8F23 Field name or PAGE 3 GPRFLDRET& 008D887B fieldname list or  3 GPRFLOAT 008D8E63 numeric field 3 GPRLIST 008D899B list 3 GPRMORE" 008D86FB More? (type N for no): 3 GPRNUMBER 008D8CAB number 3 GPRNUMRET2 008D9013 number, end with a or  3 GPROF 008D901B OF control break 3 GPRON# 008D9023 ON filename or  3 GPROCOMRET0 008D902B one of +, -, *, /, comma or  3 GPROPER( 008D8CE3 Optional arithmetic operator 3 GPROPPARRET- 008D903B one of +, -, *, /, ), or  3 GPROPRET) 008D9033 one of +, -, *, / or  3 GPROVER* 008D8C83 OVER, CROSS, WITH, or  3 GPRPLOT 008D8C43 plot name 3 GPRPLOTARG 008D91F3 <...> 3 GPRPRINT 008D8F2B PRINT 3 GPRPROC 008D8C53 procedure name ' 3 GPRQUOTE. 008D886B character string, end with a quote 3 GPRRDYMOD# 008D8713 ready mode, or  3 GPRRETURN 008D8E7B  3 GPRRUNNING 008D91BB running statistical 3 GPRSELOPT$ 008D8923 which record or  3 GPRSETOPT 008D9043 set option 3 GPRSHOCAT 008D872B category 3 GPRSHOWOPT 008D904B show option 3 GPRTOPBOT* 008D9053 TOP or BOTTOM of control break 3 GPRVALRET( 008D9%05B value expression or  3 GPRVALUE 008D9063 value expression 3 GPRWITH 008D871B WITH or  3 GUIBADCHR> 008D87C3 Unusable character, type ? to get valid responses. 3 GUIBRETB 008D87BB  3 GUIEXECUT 008D885B [Executing...] 3 GUILEAVNG. 008D8863 You're on your own now. Good luck! 3 GUINOLINE 008D8E4B Can't complete line 3 GUINOMORE 008D8B1B No more 3 GUINOWORD 008D8E23 Can'%t complete word 3 GUINUMBER 008D8F43  3 GUINXTCMD" 008D89B3 Ready for next command 3 GUIPOSRES# 008D87B3 Possible responses are: 3 GUIWORKING 008D91FB [Working...] 3 HELPCONTIN& 008D8FD3 Type to continue. 3 HELPLINES& 008D8C0B Lines to  3 HLPACTIVE6 008D9943 DEC DATATRIEVE help window already active. 3 HLPNOPMPT 008D8D0B No prompting 3 HLPNOWNDW 008D8D1B No win"dow 3 HLPPROMPT 008D8D13 Prompting 3 HLPWINDOW 008D8D23 Window 3 KEYATRBTSD 008D94A3 [no]echo, [no]terminate, [no]erase, [no]lock, [set state =]. 3 KEYDEF' 008D949B <...> = "". 3 KEYSTATE+ 008D9493 <...> state keypad definitions: 3 LOADEDTAB 008D8893 Loaded tables: 3 LOOKINFOR 008D857B [Looking for <...>] 3 LOSSOFPREC< 008D8FA3 Loss of precision during arithmetic calculation. 3 MAGICFAIL< 008D8B0B Context Searcher failed trying to resolve field. 3 MORESTR< 008D8BEB There are more tokens available for user defined keyword. 3 NEWDOMVERA 008D9802 DEFINE FILE parameters conflict with previous values.5 Therefore a new version of <...> has been created. 3 NODBMDOMD 008D8403 No Oracle CODASYL DBMS domains readied-nothing to COMMIT or ROLLBACK. 3 NODOMGLO: 008D85A3 No ready sources or global variables dec"lared. 3 NOESTCOLL' 008D862B No established collections. 3 NOFORMS 008D8E93 No loaded forms. 3 NOGLOVAR- 008D89C3 No global variables are declared. 3 NOLOADTAB 008D889B No loaded tables. 3 NOMESSAGES" 008D9753 <...> has no messages. 3 NOMORESEL> 008D8F9B Collection will no longer have a selected record. 3 NOREADOM 008D85BB No ready sources. 3 NOSETSUSE) 008D8633 No sets are currently useful. 3 NOSNAPSDBMA 008D93EB "<...>" cannot be accessed in SNAPSHOT mode. Changing mode to SHARED READ. 3 NOTINIMAGB 008D8E43 That DEC DATATRIEVE feature was not included when this image was built. 3 NUMKEYPAD# 008D94EB < Numeric keypad mode > 3 OPENFILE) 008D8BC3 Creating file ... 3 OPENLP( 008D8BD3 Spooling output to . 3 OPENTERM0 008D8BCB Sending output to terminal . 3 PLOTS" 008D85B3 Plots: 3 PLOTSAT 008D8ED3 Plots from <...>: 3 PROCEDURES 008D85AB Procedures: 3 PROMPT 008D8543 Enter <...>: 3 PW_PROMPT% 008D8553 Enter password for <...>: 3 RDBRB 008D0582 Relational Database 3 RDSSIGNOFF@ 008D920B DEC DATATRIEVE Remote Server terminating with status <...> 3 RDSSIGNON= 008D9203 DEC DATATRIEVE Remote Server Protocol <...>.<...> 3 RDYSNPTOSHR@ 008D92AB READY SNAPSHOT (RE!AD) mode has been changed to READY6 SHARED READ mode for the current RMS record source. 3 RECFOUND& 008D8613 [ record(s) found] 3 RECLENGTH. 008D858B [Record is byte(s) long.] 3 RECORDS 008D85CB Records: 3 REINITCDD8 008D946B Starting a new Oracle CDD/Repository stream. 3 REMCMD 008D8CF3 REMCMD> <...> 3 REMOTEMSG 008D8603 [DDMF] <...>. 3 REMPACKET( 008D861B Packet received, type <...>. 3 RE_PROMPT 008D854B Reenter <...>: 3 RMSERROR/ 008D8EDB Error using RMS file "". 3 RMSKEYUSEC 008D8EB3 Performing <...> boolean on RMS key field . 3 RMSLKWAIT. 008D8F63 Waiting for a locked RMS record... 3 SELPURCOLB 008D8A53 Parent collection de-selected, collection automatically released. 3 SELRECCLE* 008D8F8B SELECT failed due to deadlock. 3 SELRECLOS@ 008D8F93 Failed to retrieve a sel&ected record following a re- ready. 3 SHOABORT 008D88D3 Abort 3 SHOCOLCOL( 008D864B Collection  3 SHOCOLDOM! 008D8653 Domain:  3 SHOCOLNREC' 008D865B Number of Records:  3 SHOCOLNSR 008D867B No Selected Record 3 SHOCOLREL 008D931B Relation: <...> 3 SHOCOLPAG" 008D88C3 Columns-page:  3 SHOCOLSOR 008D86C3 Sort order: <...> 3 SHOCOLSR2 008D86CB )<...> 3 SHOCOLSRN% 008D8663 Selected Record:  3 SHOCOLSRND/ 008D8673 Selected Record: (Dropped) 3 SHOCOLSRNE. 008D866B Selected Record: (Erased) 3 SHOFORM 008D88E3 Form 3 SHOLCKWAT 008D8F6B Lock wait 3 SHONOABO 008D88CB No abort 3 SHONOFOR 008D88DB No form 3 SHONOLCKWAT 008D8F73 No lock wait 3 SHONOPRO 008D88FB No prompt 3 SHONOSEA 008D88EB No search 3 SHONOSEMI 008D8E1B No semicolon 3 SHONOVERI 008D8CFB No verify 3 SHOPRIVCD 008D89FB C (CONTROL) - may issue DEFINEP, SHOWP, DELETEP commands 3 SHOPRIVD= 008D8A03 D (LOCAL_DELETE) - may delete a dictionary object 3 SHOPRIVEC 008D89F3 E (DTR_EXTEND/EXECUTE) - may ready to EXTEND, or access table or procedure 3 SHOPRIVF4 008D8A0B F (FORWARD) - may create a subdictionary 3 SHOPRIVG> 008D8A13 G (GLOBAL_DELETE) - may delete a directory and its descendents 3 SHOPRIVHB 008D8A1B H (HISTORY) - may add entries to object's history list 3 SHOPRIVM7 008D89EB M (DTR_MODIFY) - may ready for READ, MODIFY 3 SHOPRIVNO< 008D8A43 No privileges to directory or dictionary object. 3 SHOPRIVP> 008D8A23 P (PASS_THRU) - may use given name of directory or object in pathname 3 SHOPRIVRC 008D89DB R (DTR_READ) - may ready for READ, use SHOW and EXTRACT 3 S#HOPRIVS/ 008D8A2B S (SEE) - may see (read) dictionary 3 SHOPRIVU5 008D8A33 U (UPDATE) - may update dictionary object 3 SHOPRIVWA 008D89E3 W (DTR_WRITE) - may ready for READ, WRITE, MODIFY, or EXTEND 3 SHOPRIVX> 008D8A3B X (EXTEND) - may create directory or object within directory 3 SHOPROMPT 008D8903 Prompt 3 SHOSEARCH 008D88F3 Search 3 SHOSEMI 008D8E13 Semicolon 3 SHOSETUP 008D88BB Set-up: 3 # SHOVERIFY 008D8D03 Verify 3 SHOWEDIT 008D8F4B Edit setting: 3 SHOWHELP 008D8C03 Help Settings: 3 SHOWPROC& 008D8AE3 PROCEDURE  3 SHOWSYN# 008D8EAB for  3 SHOWTEXT 008DAC3  3 SHUTDOWN* 008D856B Shut down DEC DATATRIEVE/DDMF. 3 SIGNOND 008D855B DEC DATATRIEVE Digital Query and Report System Type HELP for help 3 SIGNON_FTD 008D8B2B DEC DATATRIEVE! Digital Query and Report System Type HELP for help 3 SOURCE 008D9223 Ready sources: 3 STACKSIZE2 008D943B DEC DATATRIEVE stack size is . 3 STAMISDATB 008D851B [Function computed using of values.] 3 SUCCESS- 008D8563 Statement completed successfully. 3 SYNONYMS 008D8EA3 Synonyms: 3 TABLES 008D85D3 Tables: 3 TARRECDRO3 008D8763 Target record has already been dropped. 3  UDKUNWIND, 008D8C9B Unwind UDK processing one level. 3 VARIABLES 008D868B Global variables 3 VIDEOHELPB 008D8BFB H E L P - type for help. Type to change help topics. 3 ZEROOBJ< 008D83A3 Can't take MAX, MIN, or AVERAGE of zero objects. 32 DEC_DATATRIEVE_Client_for_Windows_Error_Messages> The following error messages are specific to DEC DATATRIEVE? Client for Windows and any client application that calls the4 DEC DATATRIEVE server through the call interface. 3 DTR_E_ABORTPRSD? 9284842 Operation has been aborted because of user requests. 3 DTR_E_BADGETCTX 9285346 Invalid get context. 3 DTR_E_BADHANDLE= 9273586 Invalid identifier for the DEC DATATRIEVE session. 3 DTR_E_BADTRANSPORT# 9282172 Invalid transport value. 3 DTR_E_BRKNGETSTRMB 9285354 Attempt to call a get while another one was in process. 3 DTR_E_BUFTOOSMALL 9281378 Buffer is too small. 3 DTR_E_CGETINTERNAL, 9285364 Internal error on the Client end. 3 DTR_E_CSINTERNAL? 9282180 Client Server internal error: EXIT THE PROGRAM! ThisC error may appear when you use the DECnet protocol and either theA DDMFVxx.COM file associated to port number 30 is not found, or' port number 30 has not been defined. 3 DTR_E_DNHSTNF@ 9284692 The Authoritative Answer Host was not found. The node? name is either wrong or it has not been defined in the Host. 3 DTR_E_EACCESSB 9284858 Socket error: access denied at connection request. ThisB error may appear when you use the DECnet protocol and you enter1 either an invalid user or an invalid password. 3 DTR_E_EADDRINUSE3 9284698 The specified address is already in use. 3 DTR_E_EADDRNOTAVAIL@ 9284706 The specified address is not available from the local machine. 3 DTR_E_EAFNOSUPPORT? 9284644 The addresses in the specified family cannot be usedC with this socket (network communication endpoint). The Client is6 probably not using the correct WINSOCK.DLL library. 3 DTR_E_EBADF 9284556 Invalid argument. 3 DTR_E_ECONNABORTED= 9284812 The connection was aborted due to timeout or other failure. 3 DTR_E_ECONNREFUSED? 9284714 The attempt to connect was forcefully rejected. ThisB error may appear when you use the TCP/IP protocol and the REXEC9 service on the server is either not found or disabled. 3  DTR_E_ECONNRESET7 9284740 The connection was reset by the remote side. 3 DTR_E_EDESTADDRREQ- 9284722 A destination address is required. 3 DTR_E_EFAULT? 9284788 The pointer to the buffer in which the value for the= requested option is supplied is not in a valid part of the process address space. 3 DTR_E_EHOSTUNREACH: 9284746 The Authoritative Answer Host is not reachable. 3 DTR_E_EINPROGRESS: 9284610 A blocking Windows Sockets call is in progress. 3 DTR_E_EINTR/ 9284572 The blocking call has been canceled. 3 DTR_E_EINVAL> 9284564 The command is not applicable to the type of socket- (network communication endpoint) supplied. 3 DTR_E_EISCONNA 9284778 The socket (network communication endpoint) is already connected. 3 DTR_E_EMFILE2 9284652 No more file descriptors are available. 3 DTR_E_EMSGSIZE? 9284636 The datagram was too large to fit into the specified buffer and was truncated. 3 DTR_E_ENETDOWN, 9284596 The network subsystem has failed. 3 DTR_E_ENETRESETC 9284764 The connection must be reset because the Windows Sockets implementation dropped it. 3 DTR_E_ENETUNREACH? 9284588 The network cannot be reached from this host at this= time. This error may appear when you try to use the TCP/IPA protocol but you have only configured the DECnet protocol, and vice versa. 3 DTR_E_ENOBUFSD 9284660 No buffer space is available. The attempted operation has failed. 3 DTR_E_ENOTCONN= 9284628 The socket (network communication endpoint) is not connected. 3 DTR_E_ENOTSOCK@ 9284604 The descriptor is not a socket (network communication endpoint). 3 DTR_E_EPROTONOSUPPORT3 9284668 The specified protocol is not supported. 3 DTR_E_EPROTOTYPEC 9284676 The specified protocol is the wrong type for this socket$ (network communication endpoint). 3 D TR_E_ESOCKTNOSUPPORT@ 9284684 The specified socket (network communication endpoint)0 type is not supported in this address family. 3 DTR_E_ETIMEDOUT> 9284730 Attempt to connect timed out without establishing a9 connection. This error appears in the following cases:> o When you use the DECnet protocol and the executable file< on the server either crashed or is not found. For more< information, see the NETSERVER.LOG file located in the# server's top level directory.A o When you use the TCP/IP protocol and the executable file onD the server crashed before connection with the client. For moreA information, see the UCX$REXECD_STARTUP.LOG file located in' the server's top level directory.? o When you use the TCP/IP protocol and you try to connect a> DEC DATATRIEVE Client for Windows Version 1.1 with a DEC$ DATATRIEVE server Version 7.0. 3 DTR_E_ETOOMANYREFS; 9284756 Too many socket (network communication endpoint) references. 3 DTR_E_EWOULDBLOCKC 9284618 The socket (network communication endpoint) is marked as8 non-blocking and the requested operation would block. 3 DTR_E_INSENDMSG? 9284868 Unable to perform network operation in a SendMessage execution thread. 3 DTR_E_INVCONNID) 9284818 Invalid connection identifier. 3 DTR_E_INVCONTEXT 9281370 Invalid context. 3 DTR_E_INVDDMFVERA 9284548 DDMF server version mismatch. Unable to connect to the client. 3 DTR_E_INVMDBHND 9283746 Invalid MDB handle. 3 DTR_E_INVSTR 9282154 Invalid string. 3 DTR_E_MAXSESSIONA 9282146 Maximum number of available sessions has been reached. 3 DTR_E_NOMEM 9281362 Out of memory. 3 DTR_E_NORMAL' 9274723 Call completed successfully. 3 DTR_E_NOTINITIALISED? 9284580 Before using this Application Programming Interface,? you must initialize the underlying Windows DLL (Dynamic Link Library). 3 DTR_E_NTASKREINTRNTD 9285378 Attempt to call a get while one was in process in another Windows task. 3 DTR_E_NULLCONID> 9282162 Caller specified an incorrect address to return the connection identifier. 3 DTR_E_NULLCTX0 9284770 The caller did not specify a context. 3 DTR_E_NULLPTR- 9281346 Caller specified invalid pointers. 3 DTR_E_OSCTXFAULT; 9284836 Fault while working on operating system context. 3  DTR_E_OVERLAPFLT. 9284852 Lost communication synchronization. 3 DTR_E_OVERTASKMAX8 9284826 Five Windows tasks are already using the DLL. 3 DTR_E_PATNOTDIR0 9273930 The pathname is not a directory name. 3 DTR_E_SGETINTERNAL, 9285372 Internal error on the Server end. 3 DTR_E_STRTOOLONG 9281354 String is too long. 3 DTR_E_SYSNOTREADYD 9284794 The underlying network subsystem is not ready for network communication. 3 DTR_E_TCP_ACTIMAGED This is a TCP/IP error occurring when you try to connect to a DECA DATATRIEVE server and the executable file on the server is not found. 3 DTR_E_TCP_INVPWDD This is a TCP/IP error occurring when you try to connect to a DEC7 DATATRIEVE server and you enter an invalid password. 3 DTR_E_TCP_NOTVALIDD This is a TCP/IP error occurring when you try to connect to a DEC. DATATRIEVE server and the login is invalid. 3 DTR_E_TCP_OPENIND This is a TCP/IP error occurring when you try to connect to a DECD DATATRIEVE server and either the file DDMFVxx.COM is not found on@ the server, or the logical name DTR$TCPSERVER is not defined. 3 DTR_E_TOOMANYFLD 9281386 Too many fields. 3 DTR_E_UNKNOWNOBJ 9281394 Unknown object. 3 DTR_E_UNWIND, 9273874 Execution terminated by operator. 3 DTR_E_USESLOEXHD 9273602 Five concurrent DEC DATATRIEVE sessions have already been. initialized. You cannot initialize another. 3 DTR_E_VERNOTSUPPORTEDB 9284804 The requested version of Windows Sockets API support isB not provided by this particular Windows Sockets implementation.ww