- IBM Data Language One (DL/1)
Data Language/1 (DL/1, DL/I) is the language system used to access IBM’s IMS
database s, and its data communication system.It is implemented from any language by making calls to a software stub, DFSLI000. This stub has entry points to handle a variety of programming languages e.g. calling CBLTDLI from a
COBOL program. This stub is linked to the calling program, passes on the request to the IMS system, and returns the results and a status code.In any full-function IMS database, the smallest element that can be retrieved is a "segment". Each segment is made up of "fields", one of which, typically, will be a key field. The segments are arranged hierarchically in the database, the highest level segment type being a root segment. 255 different segment types, on up to 15 levels, are allowed in any database. A database "record" consists of a specific root segment and all its dependent child segments — there is no limit to the number of segments in a record, or to the number of records in a database (apart from physical limitations of storage space).
The structure of any database is presented to the application program as a "PCB" (Program Control Block), and this is used as one of the
parameter s passed to the stub. Other types of PCB are used to send and receivetransaction processing messages, access and write to the user’s VDU screen, and to print reports etc.When accessing a database segment the application program also uses an "SSA" (Segment Search Argument) as a parameter, to specify the segment or segments that it needs. This would typically contain the segment type required, and the contents of any key fields.
For all languages except
PL/I , first parameter in a call is the "Function Code" — a four character field, examples being: “GU ” (Get Unique), “GN ” (Get Next), “REPL” (Replace), and “ISRT” (Insert). With PL/1, due to the way this language does not mark the last parameter with a '1' in bit 0, the first parameter must instead be a fullword (Fixed Bin(31)) containing the number of following parameters.A typical call from a COBOL program might be . . . CALL “CBLTDLI” USING GU, Stores-Database-PCB, Stores-Segment-Area, Stores-Root-SSA. The program would then automatically wait till the requested data was retrieved and placed in the Segment-Area. The status code contained within the PCB would be updated with either blanks (if all went well) or some informational or error code.
A typical call from a PL/1 program might be . . . CALL PLITDLI(FOUR, GU, Stores-Database-PCB, Stores-Segment-Area, Stores-Root-SSA);
External links
* [http://www.geocities.com/s_sunil_raju/ims.htm A full account]
Wikimedia Foundation. 2010.