Страница 1 из 1

Вынос мозга

Добавлено: 10 июл 2008, 10:59
galover
Просматриваю код доставшийся в наследство, встречаю вот такой хинт:

Код: Выделить всё

for (i := 1; i <= 9; Inc(i))
{
    if (SaldTune.WKau[i] = 22)
    ....                  
}
Т.е. обращение с полями (WKau[1].. WKau[9]) идет как с массивом WKau. Это так объектное представление таблицы SaldTune устроено?? В каком разделе справки такое вот описывается?

Добавлено: 10 июл 2008, 11:12
siteadmin
здесь описано

Код: Выделить всё

Create table D_GAL.SALDTUNE "Настр.объектов учта целевого назначения"
  Using "SaldTune.dat"
  With Table_Code = 1176
  With replace With TableOptions Corpo, Branched
  (
    NREC             : Comp                 "Номер записи",
    ATL_LASTDATE     : Date                 "Дата последней модификации",
    ATL_LASTTIME     : Time                 "Время последней модификации",
    ATL_LASTUSER     : ref(X$USERS)         "Код пользователя",
    ATL_ORIGINOFFICE : Word                 "Номер офиса, в котором занесена запись",
    ATL_OWNER        : Comp                 "Код владельца записи",
    ATL_BRANCH       : Comp                 "Филиал",
    WATTR            : Word                 "Атрибуты",
    WTYPE            : Word                 "Тип настройки",
    CODE             : String[20]           "Код настройки",
    NAME             : String[80]           "Наименование настройки",
    WOBJ             : Word                 "Общесистемный код для объекта учета",
    WKAU             : Array [1..9] of Word "Общесистемный код аналитики",
    CROLEOBJ         : Comp                 "Ссылка на роль объекта учета",
    CROLE            : Array [1..9] of Comp "Ссылка на роль аналитики"
  )

  with index
  (
    SALDTUNE01 = NREC(Unique,Surrogate,Journal),
    SALDTUNE02 = WATTR+WTYPE,
    SALDTUNE03 = WTYPE+NAME,
    SALDTUNE04 = WTYPE+CODE,
    SALDTUNE05 = WOBJ+WTYPE,
    SALDTUNELM = ATL_LASTDATE+ATL_LASTTIME,
    SALDTUNELU = ATL_LASTUSER
  );

Добавлено: 10 июл 2008, 11:13
Den
В разделе "массивы"

Добавлено: 10 июл 2008, 11:13
edward_K
вы можете использовать тип array of при создании таблиц, чем разработчики и пользуються. Не во всех операторах sql работает обращение к ним и только(update set например).

Добавлено: 10 июл 2008, 12:27
galover
Да это то понятно все, просто интересно стало как у них мапируется массив в объектном представлении таблицы на поля реальной таблицы БД. Прикольно

Добавлено: 10 июл 2008, 13:31
Max_Fin
знаешь, меня больше интересует как они смогли добиться такого синтаксиса языка, когда существуют куча дублирующих операторов и прочее :-D