Вынос мозга

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
galover
Местный житель
Сообщения: 794
Зарегистрирован: 16 ноя 2007, 13:52

Вынос мозга

Сообщение galover »

Просматриваю код доставшийся в наследство, встречаю вот такой хинт:

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

for (i := 1; i <= 9; Inc(i))
{
    if (SaldTune.WKau[i] = 22)
    ....                  
}
Т.е. обращение с полями (WKau[1].. WKau[9]) идет как с массивом WKau. Это так объектное представление таблицы SaldTune устроено?? В каком разделе справки такое вот описывается?
siteadmin
Site Admin
Сообщения: 38
Зарегистрирован: 26 апр 2005, 17:33

Сообщение 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
  );
Den
Местный житель
Сообщения: 1844
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Сообщение Den »

В разделе "массивы"
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5188
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

вы можете использовать тип array of при создании таблиц, чем разработчики и пользуються. Не во всех операторах sql работает обращение к ним и только(update set например).
galover
Местный житель
Сообщения: 794
Зарегистрирован: 16 ноя 2007, 13:52

Сообщение galover »

Да это то понятно все, просто интересно стало как у них мапируется массив в объектном представлении таблицы на поля реальной таблицы БД. Прикольно
Max_Fin
На пенсии
Сообщения: 797
Зарегистрирован: 29 мар 2005, 17:49
Откуда: г. Тюмень
Контактная информация:

Сообщение Max_Fin »

знаешь, меня больше интересует как они смогли добиться такого синтаксиса языка, когда существуют куча дублирующих операторов и прочее :-D
Жду выхода Вселенная 2.12!
Ответить