Мельница данных  (17.11.2025)
Функция cursor

Функция cursor позволяет выполнить запрос к определенному классу и получить данные в формате XML или в формате JSON, соответствующие структуре и условиям переданного запроса.

Допустимые расширения:

Функция имеет параметр query, который должен представлять собой стандартный XML документ или стандартный объект JSON, который будет содержать информацию о классе, к которому должен быть сделан запрос, наборе свойств и/или результатов выполнения методов, которые хотелось бы получить, об условиях отбора, о применении сортировки и группировки к возвращаемым данным. 

В зависимости от того, с каким расширением вызвана функция, ответ будет возвращен в формате XML-документа стандартной структуры или в виде объекта JSON стандартной структуры.

Допустимы все сочетания формата представления значения параметра query и расширения вызова функции. Например, функция может вызваться с расширением .js, а значение параметра query может иметь формат XML. В этом случае ответ будет возвращен в виде объекта JSON.

Пример
Пример вызова функции с расширением .xml и с параметром query в формате XML:
01https://techmill.ru/demo/cursor.xml?query=
02<query class="TWorker" fetchall="1">
03  <item part="what" name="LastName" />
04  <item part="what" name="FirstName"/>
05  <item part="what" name="BirthDate"/>
06  <item part="what" name="AcademicDegree"/>
07  <item part="what" name="ContactList" value="TPerson.GetContactList" special="function">
08    <parameters>
09      <ContactType>63474</ContactType>
10    </parameters>
11  </item>
12  <item part="where" name="LastName" value="A*"/>
13  <item part="order" name="LastName"/>
14  <item part="order" name="FirstName"/>
15</query>
Пример возвращаемого ответа в формате XML:
01<data handle="{FDF9EE70-9948-4A99-8233-349C3ADD3CE8}" eof="1">
02  <row>
03    <LastName>Abrams</LastName>
04    <FirstName>Steven</FirstName>
05    <BirthDate type="date">10.06.2014</BirthDate>
06    <AcademicDegree>PhD</AcademicDegree>
07    <ContactList>856 45 12 46;756 12 45 41</ContactList>
08  </row>
09  <row>
10    <LastName>Adkisson</LastName>
11    <FirstName>Amalia</FirstName>
12    <BirthDate type="date">24.08.2016</BirthDate>
13    <AcademicDegree>Doctor of Arts</AcademicDegree>
14    <ContactList/>
15  </row>
16  <row>
17    <LastName>Adkisson</LastName>
18    <FirstName>Maria</FirstName>
19    <BirthDate type="date">05.09.2016</BirthDate>
20    <AcademicDegree/>
21    <ContactList>656 545 12 54</ContactList>
22  </row>
23</data>

Пример
Пример вызова функции с расширением .js и с параметром query  в формате JSON:
01https://techmill.ru/demo/cursor.js?query=
02{
03  "class": "TWorker",
04  "items":
05    [
06      {
07        "part": "what",
08        "name": "LastName"
09      },
10      {
11        "part": "what",
12        "name": "FirstName"
13      },
14      {
15        "part": "what",
16        "name": "BirthDate"
17      },
18      {
19        "part": "what",
20        "name": "AcademicStatus"
21      },
22      {
23        "part": "what",
24        "name": "ContactList",
25        "value": "TPerson.GetContactList",
26        "special": "function",
27        "parameters":
28          {
29            "ContactType": "63474"
30          }
31      },
32      {
33        "part": "where",
34        "name": "LastName",
35        "value": "А*"
36      },
37      {
38        "part": "order",
39        "name": "LastName"
40      },
41      {
42        "part": "order",
43        "name": "FirstName"
44      }
45    ]
46}
Пример ответа в формате JSON:
01{
02  "handle": "{C57F629E-583C-4477-ACBF-E436F6D01628}",
03  "eof": 1,
04  "data":
05    [
06      {
07        "LastName": "Abrams",
08        "FirstName": "Steven",
09        "BirthDate":
10          {
11            "year": 2014,
12            "month": 5,
13            "day": 10
14          },
15        "AcademicStatus": "PhD",
16        "ContactList": "+49 856-456-542;+34 656-451-542"
17      },
18      {
19        "LastName": "Adkisson",
20        "FirstName": "Amalia",
21        "BirthDate":
22          {
23            "year": 2016,
24            "month": 7,
25            "day": 24
26          },
27        "AcademicStatus": "Doctor of Arts",
28        "ContactList": "+44 652 523 412"
29      },
30      {
31        "LastName": "Adkisson",
32        "FirstName": "Maria",
33        "BirthDate":
34          {
35            "year": 2016,
36            "month": 8,
37            "day": 5
38          },
39        "AcademicStatus": null,
40        "ContactList": null
41      }
42    ]
43}