Query Reference Manual
Query Reference Manual
Reference Manual
Disclaimer
Information of a technical nature, and particulars of the product and its use, is given by AVEVA
Solutions Ltd and its subsidiaries without warranty. AVEVA Solutions Ltd and its subsidiaries disclaim
any and all warranties and conditions, expressed or implied, to the fullest extent permitted by law.
Neither the author nor AVEVA Solutions Ltd, or any of its subsidiaries, shall be liable to any person or
entity for any actions, claims, loss or damage arising from the use or possession of any information,
particulars, or errors in this publication, or any incorrect use of the product, whatsoever.
Copyright
Copyright and all other intellectual property rights in this manual and the associated software, and every
part of it (including source code, object code, any data contained in it, the manual and any other
documentation supplied with it) belongs to AVEVA Solutions Ltd or its subsidiaries.
All other rights are reserved to AVEVA Solutions Ltd and its subsidiaries. The information contained in
this document is commercially sensitive, and shall not be copied, reproduced, stored in a retrieval
system, or transmitted without the prior written permission of AVEVA Solutions Ltd. Where such
permission is granted, it expressly requires that this Disclaimer and Copyright notice is prominently
displayed at the beginning of every copy that is made.
The manual and associated documentation may not be adapted, reproduced, or copied, in any material
or electronic form, without the prior written permission of AVEVA Solutions Ltd. The user may also not
reverse engineer, decompile, copy, or adapt the associated software. Neither the whole, nor part of the
product described in this publication may be incorporated into any third-party software, product,
machine, or system without the prior written permission of AVEVA Solutions Ltd, save as permitted by
law. Any such unauthorised action is strictly prohibited, and may give rise to civil liabilities and criminal
prosecution.
The AVEVA products described in this guide are to be installed and operated strictly in accordance with
the terms and conditions of the respective license agreements, and in accordance with the relevant
User Documentation. Unauthorised or unlicensed use of the product is strictly prohibited.
First published September 2007
AVEVA Solutions Ltd, and its subsidiaries
AVEVA Solutions Ltd, High Cross, Madingley Road, Cambridge, CB3 0HB, United Kingdom
Trademarks
AVEVA and Tribon are registered trademarks of AVEVA Solutions Ltd or its subsidiaries. Unauthorised
use of the AVEVA or Tribon trademarks is strictly forbidden.
AVEVA product names are trademarks or registered trademarks of AVEVA Solutions Ltd or its
subsidiaries, registered in the UK, Europe and other countries (worldwide).
The copyright, trade mark rights, or other intellectual property rights in any other product, its name or
logo belongs to its respective owner.
Contents
Page
Reference Manual
Introducing QUERY. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1:1
What QUERY Does . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1:1
Who this Manual is Meant For . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1:1
How the Manual is Set Out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1:2
Conventions used in the Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1:2
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3:3
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3:3
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3:3
12.0
EXTERNAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3:4
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3:5
GET
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3:5
OPEN
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3:6
SEND
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3:6
START
TOGGLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3:7
ii
12.0
Introducing QUERY
1.1
1.2
1:1
12.0
1.3
The functions of PDMS or REVIEW and the ways in which these are controlled via the
standard user interface, as detailed in the user documentation (including online help)
for those products.
The data server commands necessary to insert, delete, query and protect data in your
chosen database.
The concepts of writing and running macro command files, including the use of
Programmable Macro Language (PML), as detailed in the Software Customisation
Guide.
The design and implementation of a forms and menus graphical user interface, as
detailed in the User Interface Customisation Reference Manual.
1.4
Command Syntax is the commands reference section and describes the command
syntax which you can use to control PDMS from within QUERY.
QUERY and Server Daemons describes the server daemon architecture used by
QUERY on UNIX machines and environment and other setup requirements.
QUERY and ODBC describes the ODBC architecture used by QUERY on Windows
machines and its setup requirements and special features.
Command arguments are shown in lowercase italic type; for example, argument.
Parts of the command enclosed between square brackets are optional; for example, ...
[ignore this part of the command if not relevant]
Examples of interactive input and output sequences are shown in a different typeface,
thus
Character strings which begin with the slash character / are either names of elements
in the databases or the names of files in the operating system directories. For example,
/ELEMENT or /filename.
Character strings enclosed between angled brackets are the names of individual command
syntax diagrams. For example, <diagram_name>.
1:2
12.0
2.1
2.2
EXTERnal
The remaining part of the line may comprise either:
This prefix in incorporated into all commands described in the remainder of this chapter.
2.3
2:1
12.0
Example:
2.4
As individual command lines, each of which is sent as soon as the newline character is
entered to terminate the command line.
2:2
12.0
In continuous mode, such that a sequence of command lines is concatenated and sent
as a single command string. The maximum length for an individual command line is
120 characters; continuous mode allows you to send longer command sequences.
To send an individual command line to the data server, simply prefix the command text thus:
EXTERnal SENd
token
command_text
where token is the token for the communication channel which was supplied by a successful
EXTERNAL OPEN command (and stored in the token_var variable) and command_text is
the command string to be sent to the data server.
Example:
STArt
where token is the token for the communication channel which was supplied by a successful
EXTERNAL OPEN command (and stored in the token_var variable) and command_text_1
etc. are the command strings to be sent to the data server.
Example:
2:3
12.0
2.5
$!datarow[1]
C1101
$!datarow[2]
182
$!datarow[3]
22-AUG-94
$!datarow[1]
E1201
$!datarow[2]
31
$!datarow[3]
07-JUL-94
and so on for subsequent data records. If the newly read record has less completed fields
than the preceding record, some elements of the array variable will remain with their
previous settings unchanged.
You can control the writing of data to an array variable explicitly by using the variable-setting
syntax. For example, to read in a record such that its first field is stored in element 10 of the
array variable, rather than starting from element 1 by default, you could use the syntax
2:4
12.0
To read a record and append the resulting data to the array variable, rather than overwriting
the current settings of the array elements, you could use the syntax
VAR varname
VAR varname
These commands always return the first row of the result of the last request sent to the data
server identified by token (typically, but not necessarily, header information resulting from an
SQL database SELECT command).
For example, the querying command
$!header[1]
refno
$!header[2]
servint
$!header[3]
lastserv
Note: As with the data fields, no heading should be longer than 120 characters. If a
heading exceeds 120 characters, nothing will be returned by the query.
2:5
12.0
2.6
Area
Catalytic Cracker
Plant
Reflux~Heater
Code
DES21142
would be received by QUERY, using the default ~ delimiter, as the data block
Catalytic Cracker~Reflux~Heater~DES21142
and would be split, incorrectly, into the fields
$!a[1]
Catalytic Cracker
$!a[2]
Reflux
$!a[3]
Heater
$!a[4]
DES21142
To prevent this effect, you can redefine the delimiter character to be any single character
which is not used within any database field. To do so, use the command
EXTERnal DELImit
token
text_char
where token is the token for the communication channel which was supplied by a successful
EXTERNAL OPEN command (and stored in the token_var variable) and text_char is the
required data field delimiter character.
For example, the specification
Catalytic Cracker&Reflux~Heater&DES21142
which would be correctly split at the points identified by the & characters.
2.7
2:6
12.0
(79, 3)
(79, 4)
(79, 5)
(79, 6)
(79, 7)
(79, 8)
(79, 9)
(79, 10)
No more data
For example, the most recent EXTERNAL GET ...NEXT
command has failed because there are no more rows of data to
retrieve. This is a very useful error number to trap, since it allows
you to use an infinite DO loop to retrieve consecutive rows from a
table of any length and then to escape when all the rows have
been read; you will find an example of the syntax for doing this in
Section Setting Variables from the Data Server Responses.
The text of a data server error message is usually explicit, since it is generated from the
database, and so its meaning, and the method of resolving it, should be clear. For example,
if you are communicating with an ORACLE database, the command
2:7
12.0
(79, 51)
(79, 52)
(79, 53)
(79, 54)
(79, 55)
(79, 56)
(79, 57)
(79, 58)
(79, 59)
(79, 60)
(79, 63)
2.8
2:8
12.0
Command Syntax
This section gives detailed information on how to use the relevant commands for using
QUERY to communicate with other data servers.
The commands described in the main part of this appendix have their legal command and
interrogation options presented in the form of syntax diagrams. These diagrams formalise
the precise command sequences which may be used and supplement the explanations
given in the appropriate sections of this manual.
The following conventions apply to the syntax diagrams in this appendix:
Commands to be input from the terminal are shown in a combination of uppercase and
lowercase letters. In general, these commands can be abbreviated; the capital letters
indicate the minimum permissible abbreviation. (NOTE: This convention does not
mean that the second part of the command must be typed in lowercase letters;
commands may be entered in any combination of uppercase and lowercase letters.)
CONnect
may be input in any of the following forms:
CON
CONN
CONNE
CONNEC
CONNECT
Commands shown wholly in uppercase letters cannot be abbreviated.
Syntax diagrams are generally read from top left to bottom right.
Points marked with a plus sign (+) are option junctions which allow you to input any
one of the commands to the right of the junction. Thus
3:1
12.0
points marked with an asterisk (*) are loop back junctions. Command options
following these may be repeated as required. Thus
.-----<-------.
/
|
>---*--- option1 ---|
|
|
|--- option2 ---|
|
|
--- option3 ---+--->
permits any combination of option1 and/or option2 and/or option3 to be used (where
the options may define commands, other syntax diagrams, or command arguments).
This may form an exception to the rule of reading from top left to bottom right.
The simplified format
.----<-----.
/
|
>---*--- name ---+--->
means that you may type in a list of PDMS names, separated from each other by at
least one space.
Note: The need to press the Return (or Enter or
) key to complete each command line
is implicit in all syntax diagrams and is not usually shown. Only in cases where the
need to press Return/Enter/
has some particular significance is this indicated
specifically by the abbreviation nl.
3.1
Command Arguments
These are inputs which are necessary to qualify command words. They are distinguished by
appearing in italics.
3.2
Name
Definition
Example
filename
/DATLISTS/SITE1
int
A positive integer
0, 3
name
An element name
/ABCD
nodeid
sg36
text
An alphanumeric string
val
varid
A variable identifier
3, !NAME
nl
New line
key
Commands
The information is given under the following headings:
3:2
12.0
Description:
A brief explanation of what the command enables you to do and when you might use it.
Example:
Examples of the permitted command variations. (Examples are omitted in trivial cases.)
Syntax:
The full command syntax, given in diagrammatic form.
3.2.1
CLOSE
Description:
Disconnects QUERY from a specified data server (to which it is currently connected as a
result of an OPEN command).
Example:
3.2.2
DELIMIT
Description:
Allows you to specify the delimiting character which separates the individual data fields
when querying a specified data server. The default delimiter is the ~ (tilde) character.
Example:
3.2.3
END
Description:
Terminates the sending of a long command string to a data server.
3:3
12.0
All command lines following a START entry will be concatenated to form a composite
command of any required length until terminated by a corresponding END entry.
The maximum length for a single query line is 120 characters.
The maximum total length for the overall query string (i.e. all lines between the START and
END commands) is 4095 characters.
Example:
.----<----.
|
>-- EXTERnal SENd server_token START --*-- text nl --+-- END -->
where:
server_token is an integer identifying the required data server channel.
3.2.4
EXTERNAL
Description:
Allows you to send to a specified data server any valid text string which represents a
command to read from, or write to, a database.
For details of subsidiary commands relevant to EXTERNAL mode, see under the following
headings:
CLOSE
DELIMIT
END
GET
OPEN
SEND
START
TOGGLE
Example:
3:4
12.0
Syntax:
3.2.5
GET
Description:
Allows you to set to data values returned from a data server (using NEXT). Note that all of
the standard syntax for setting is available for use within QUERY.
Also allows you to store the column headings returned by a data server query in an array
variable (using RESULT or HEADER).
Example:
3.2.6
OPEN
Description:
Connects QUERY to a specified data server (via a server daemon).
Many communication channels may be open concurrently, each being identified by a token
(an integer) which is returned by the server and stored in a named variable for subsequent
reference.
Example:
3:5
12.0
Syntax:
>- EXTERnal OPEn synonym token_var -+- ON hostid-.
|
|
------------+- AS connect_string -.
|
|
--------------------+->
where:
synonym is a text string which identifies the server daemon through which
communication is to be channelled. The synonyms must be defined in the
daemon_file - see Appendix A or B.
token_var identifies a variable to be used to store the integer token returned by the
server when the communication channel is successfully opened. You use the setting
of this variable for all subsequent references to that server daemon.
hostid is a text string which identifies the node on which the server daemon resides
(not required if the daemon is running on the same node as QUERY).
connect_string is any text string needed to allow you to connect/login to the data
server (typically contents and database name, username and password).
3.2.7
SEND
Description:
Allows you to send a command string to a specified data server.
You can send short command strings (up to 120 characters) within the SEND command
line, or you can concatenate multiple command strings by using the START and END
commands (q.v.).
Example:
3.2.8
START
Description:
Allows you to send a long command string to a specified data server (by extending the
SEND command).
All command lines following a START entry will be concatenated to form a composite
command of any required length until terminated by a corresponding END entry.
The maximum length for a single query line is 120 characters.
The maximum total length for the overall query string (i.e. all lines between the START and
END commands) is 4095 characters.
Example:
3:6
12.0
END
Note: the use of multiple delimiting characters for nesting text within text in this example.
You could, alternatively, write the example using vertical bar text delimiters, thus:
3.2.9
TOGGLE
Description:
Allows you to toggle on or off any tracing facilities built into a server daemon.
(This facility is particularly useful to developers using the QUERY Daemon Toolkit.)
Example:
EXTERNAL TOGGLE $!!MAINT TRACE
Syntax:
3:7
12.0
3:8
12.0
A.1
The control of the server daemons and the communication between the QUERY product s
and the daemons are managed the AVEVA product. However, the communication between
the sever daemon and the data server are managed by the user supplied part of the sever
daemons. Server daemons are built using a special server daemon toolkit.
A.2
A:1
12.0
MAINTENANCE
/net/cadsys/rpq/pdora
Oracle
/net/cadsys/rpq/pdora
daemon_tester
/net/cadsys/rpq/daemon_tester
With daemon_file set up this way the connection to the daemon server would be made with
a Query command such as:
areyouthere
communicator
fatc
You may also need to check the settings of the following environment variables:
DAEMON_LOG_DIR
If this environment variable is set to a directory pathname, the stderr and stdout
streams from any subsequent server daemon process will be redirected to files in that
directory. Note that this directory must be visible to the server daemon on its host
machine.
This environment variable must be set if you intend to toggle daemon tracing,
otherwise your trace output may be lost.
TIMEOUT_FOR_CONNECT
If this environment variable is set to a number, this will determine the number of
seconds that QUERY will allow for the server daemon to connect/login to the data
server before timing out. The default is 60 seconds, and you should not normally need
to change this.
TIMEOUT_FOR_GETRESULT
If this environment variable is set to a number, this will determine the number of
seconds that QUERY will allow for the server daemon to return the result of the last
request to the data server before timing out. The default is 30 seconds, and you
should not normally need to change this.
This facility is provided because the server daemon acknowledges receipt of a request
before passing it on to the data server in case the request requires a lot of processing
on the server. QUERY may, however, demand the result of the request before the
server has finished its processing.
A:2
12.0
B.1
B:1
12.0
ODBC Driver Manager loads and unloads drivers on behalf of QUERY and processes
ODBC requests or passes them to an ODBC driver.
ODBC Driver processes ODBC requests, submits SQL requests to a specific data
source, and returns results to QUERY. If necessary, the driver modifies an applications
request so that the request conforms to syntax supported by the associated database.
Data source consists of the data the user wants to access and its associated
management system and network communications (if any) used to access it.
When making a connection to a database, ODBC uses a Data Source Name (DSN). Each
DSN fully specifies the database including the identity of the ODBC driver and whatever
driver specific information it requires.
The ODBC Administrator is a Windows desktop program that configures and manages data
sources. The user can run it to create a DSN and either select an existing database file or
create a new one. The ODBC Administrator prompts the user for the driver to use and then
uses it while prompting for driver specific information and completing its operations.
The DSN forms part of a connection string which may include other optional parameters
such as user name and password. Note that for all ODBC connections that the ON hostid
clause of the EXTERNAL OPEN command is not used. All the information it needs is
supplied by the DSN any other parts of the connection string.
In the following sections there are some general details of ODBC, its components and
facilities. For more information, refer to the appropriate ODBC document or help file.
B.2
synonym
delimiter
information
where synonym is the name of the of the target server, delimiter is white space(space or tab
characters), and information gives details of the target server. Unlike other QUERY
architectures, the ODBC target server is completely described by its connection string and
the information is always set to ODBC.
Example:
MAINTENANCE
ENGINEERING
ODBC
...
ODBC
ODBC
ODBC
With daemon_file set up this way the connection to the daemon server would be made with
a Query command such as:
B:2
12.0
ODBC_DRIVER_TRACE_FILE
If this environment variable is set to a pathname, the trace output produced by ODBC
drivers will be set to this log file instead of the ODBC default filename. Trace output is
switched on and off with the EXTERNAL TRACE command. Note that the ODBC Data
Source Administrator also provides control over this logging.
B.3
Connection Strings
A connection string consists of a number of parameter definitions, each of which has a
keyword, an = character and a value. A semicolon separates each parameter definition
from the next and is also placed at the end of the string. For example:
DSN=MyDB;UID=myname;PWD=mypassword;
Usually, the DSN, UID and PWD keywords are the only keywords that are needed.
The following table describes the attribute values of all the common keywords:
B.4
Keyword
DSN
FILEDSN
Name of a .DSN file from which a connection string will be built for the data
source.
DRIVER
UID
A user ID.
PWD
SAVEFILE
The file name of a .DSN file in which the attribute values of keywords used
in making the present, successful connection should be saved.
Special Facilities
QUERY includes some general enquiry facilities for DSN's and ODBC driver names and
provides access to them using the same method used for tables of an ODBC data source.
The DSN to use to access this information is AdminSpecial and the table names are DSN
and Drivers. They make it possible for a user interface designer to create a selection of
available DSN's from which to make a connection. Here are the main QUERY commands
for AdminSpecial and the only supported SQL commands:
external
external
external
external
B:3
12.0
Example:
$* clear the user interface gadgets
var _PARA1 ||
$* clear the user interface gadgets
var _PARA1 ||
var list _TABLE1 clear
exit
$* connect to the AdminSpecial DSN
external open |ODBC| !TOK as |DSN=AdminSpecial;|
handle any
error |$!!ERROR.TEXT|
endhandle
$* select all of the records from the DSN table
external send $!TOK |select * from DSN|
handle any
error |$!!ERROR.TEXT|
endhandle
$* fetch the first column header to the paragraph gadget
var !HEAD delete
var !HEAD external get $!TOK HEADER
handle any
error |$!!ERROR.TEXT|
endhandle
var _PARA1 (trim(vtext(!HEAD[1])))
do
var !INFO delete
var !INFO external get $!TOK NEXT
handle ( 79, 10 )
break
$* end of data
endhandle
var list _TABLE1 add (trim(vtext(!INFO[1])))
exit
enddo
$* close the connection
external close $!TOK
handle any
error |$!!ERROR.TEXT|
endhandle
return
Important: It is important to remember that these facilities are not based on the system
ODBC libraries and that the commands that are shown are the only ones that
are supported.
B.5
B:4
12.0
standards bodies have defined standard syntaxes. For that reason, ODBC has defined its
own escape sequences for some standard syntaxes. These language features are:
Scalar functions such as numeric, string, and data type conversion functions
Outer joins
Procedure calls
The escape sequence is recognised and parsed by ODBC drivers, which replace the
escape sequences with the correct database-specific grammar. Note however, that the
drivers only support those escape sequences that they can map to underlying language
features. For example, if the data source does not support outer joins, neither will the driver.
It is thus possible to choose to use either the ODBC escape sequence or the databasespecific syntax. However, applications that use the database-specific syntax will not be
interoperable.
ODBC escape sequences are enclosed in braces, eg {extension}. Examples of some types
of escape sequence are as follows:
Date, time, and timestamp escape sequence literals are:
{literal-type 'value'}
e.g. {d '1997-06-30'}
where literal-type is one of the following:
literal-type
Meaning
Format of value
Date
yyyy-mm-dd
Time
hh:mm:ss
ts
Timestamp
yyyy-mm-dd hh:mm:ss[.f...]
B:5
12.0
B:6
12.0
Application Sample
C.1
Vessels
Exchangers
Mechanical
Instruments
All
For each element type, the maintenance interval, specified in terms of the date when
maintenance is next due, may be any of the following:
Overdue
Due today
When the type of element and the maintenance interval are applied, all available data will be
displayed to show which elements require maintenance and when. Further selection from
these elements can then make further maintenance enquiries with the following options:
Maintenance Schedule
Maintenance History
Parts Inventory
Isolation List
The form definition macro FMAINTAIN for creating and displaying a maintenance form.
The application macro MMAINTAIN which when run from the maintenance form reads
the specified records from the external database, displays them and prepares to make
further enquiries on them.
The other macros which would complete this example are not listed here.
C:1
12.0
The connection to the external database will have been established earlier with the
commands:
$* Connect to the database driver
var !!DBCONSTR |DSN=MAINTDB;|
external open |MAINTENANCE| !!MAINT as |$!!DBCONSTR|
handle any
error |Cannot connect to database as $!!DBCONSTR|
var !!MAINT ||
return
endhandle
The form which is displayed by when FMAINTAIN has been run looks as follows:
To access data for items needing maintenance within the specified periods, the form would
be used as follows:
1. Use the two option gadgets at the top of the form to set the combination of item Type
(e.g. Vessels) and the time when the next maintenance operation is due, shown ad
Due When (e.g. Due in next week).
2. Click Apply to display elements meeting the selection criteria.
3. The Name, Description and Inspection Date for each item will be listed on the form
under the corresponding headers.
Although not shown in this example, the element names obtained (e.g. /C1101) could be
used at this point to select or highlight the corresponding in the main application program.
To obtain detailed maintenance data for any item, select the item in the scrollable list and
click the appropriate button under Further data for selected item.
C:2
12.0
C.2
C:3
12.0
C.3
C:4
12.0
Index
AS command . . . . . . . . . . . . . . . . . . . . . 3:5
AS command . . . . . . . . . . . . . . . . . 2:1, 2:2
O
C
CLOSE command . . . . . . . . . . . . . . . . . . 3:3
CLOSE command . . . . . . . . . . . . . . . . . . 2:2
Command abbreviations . . . . . . . . . . . . . 3:1
ON command . . . . . . . . . . . . . . . . . . . . .
ON command . . . . . . . . . . . . . . . . . . . . .
OPEN command . . . . . . . . . . . . . . . . . .
OPEN command . . . . . . . . . . . . . . . 2:1,
Daemon_file . . . . . . . . . . . . . . . . . . . . . . A:1
DELIMIT command . . . . . . . . . . . . . . . . . 3:3
DELIMIT command . . . . . . . . . . . . . . . . . 2:6
3:5
2:2
3:5
2:2
TOGGLE command . . . . . . . . . . . . . . . .
TOGGLE command . . . . . . . . . . . . . . . .
token . . . . . . . . . . . . . . . . . . . . . . . . . . .
Token (data server) . . . . . . . . . . . . . 2:1,
TRACE command . . . . . . . . . . . . . . . . .
Index page i
3:7
2:8
3:5
3:5
2:8
12.0