Data Language Interface: Difference between revisions

Content deleted Content added
m link disambiguation fix
m formatting fix
Line 1:
'''Data Language One''' (Data Language/I, DL/I, Data Language/One, Data Language/One<ref>{{cite web|url=http://www-03.ibm.com/servers/eserver/zseries/zvse/products/database.html#dli|title=IBM z/VSE Products and components|publisher=[[IBM]]|accessdate=2009-06-27}}</ref>) is the language system used to access [[IBM]]'s [[IBM Information Management System|IMS]] [[database]]s and its data communication system.
 
It is implemented from many languages 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.
Line 5:
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{{snd}} 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 Communication Block), and this is used as one of the [[Parameter (computer programming)|parameters]] 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 displaymonitor|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.