This topic follows on from the Arcos overview, and describes additional concepts that you need to know.
A recordset is a set of records. For example, a recordset can be the result of joining two or more tables or a subset of fields from a single table.
Arcos uses a recordset as an interface to the database that is used by the web site. A recordset provides a way of easily displaying records that are returned for a particular query.
Constraint components can be attached to the fields of a recordset to ensure that users have entered the required information in the correct format (for example, an integer for their age).
In addition to just displaying data from a database, a recordset can also be defined to display data from the database in a more useful format. For example, the path of an image file can be stored as text in a database, but a recordset can be defined to take the path and display the field as the image itself.
A datasource is a special type of component. Essentially, it is a recordset that is loaded with records for a database according to some criteria defined by one or more other components.
At the heart of the Arcos architecture are the class files. These perform core system functionality, such as directly communicating with the database, performing operations on a recordset, or parsing the XML.
Components often generate code that uses methods of these classes.
The most important class is the K_Manager class, which runs each page when required. It also maintains the Session, State and Post (see below) with a series of get, set and query methods.
The Session and Post values (values posted to a page either by a form or through the URL) are familiar concepts. Arcos also employs another method of moving data from page to page, and this is known as the State. The State is similar to the Session except that when a user opens a new browser window from their existing one, the State splits into two — one for each browser. This avoids problems that can occur when a user is surfing the same web site with two different browsers, and actions performed on one browser can cause interference with that on the other. The State also prevents users from posting values to recordsets for which they do not have permission.
The State works by appearing as a hidden input tag ('ss') in a form on a page, or as a parameter after the "?" in the URL of the page, with its value as an encrypted string.