Content deleted Content added
Format code snippets with <code> |
"code" with DL/1 (use straight double (and single) quotes?). Ndash (snd) is the spaced one. |
||
Line 3:
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
The structure of any database is presented to the application program as a ''PCB'' (Program Communication Block), and this is used as one of the [[parameter]]s passed to the stub. Other types of PCB are used to send and receive [[transaction processing]] messages, access and write to the user’s [[computer display|VDU]] screen, and to print reports etc.
Line 9:
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]], the first parameter in a call is the ''Function Code''
A typical call from a [[COBOL]] program might be '''<code>CALL “CBLTDLI” USING GU, Stores-Database-PCB, Stores-Segment-Area, Stores-Root-SSA</code>'''. 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.
Line 19:
==External links==
* [http://publib.boulder.ibm.com/infocenter/dzichelp/v2r2/index.jsp Information Management Software for z/OS Solutions Information Center]
* [http://publib.boulder.ibm.com/infocenter/iadthelp/v6r0/index.jsp?topic=/com.ibm.etools.egl.doc/topics/ceglasm0401.html Basic DL/I database concepts]
[[Category:Data-structured programming languages]]
|