Показать сообщение отдельно
  #5  
Старый 31.07.2011, 13:06
delphicoding delphicoding вне форума
Активный
 
Регистрация: 04.07.2011
Сообщения: 206
Репутация: -461
По умолчанию

Профи, помогайте, сам пока разобраться не могу - не хватает опыта с SQL...

Проверил в БД все входящие данные, всё передано из программы верно.
Код:
   insert into "_TEST_TEMP" (TEXT) VALUES (:list_value); (1)
for
  select id from list_to_values (:list_value) into :id
  do
   insert into "_TEST_TEMP" (TEXT) VALUES (:id); (2)
    if (:status_id=5) then
      update Offices set OFFICE_STATUS_ID=5
      where OFFICE_ID=:ID;
    if (:status_id=3 or :status_id=4) then
      update Offices set OFFICE_STATUS_ID=3
      where OFFICE_ID=:ID;
Положим передаём список из 3х номеров "100,101,102"...
Главная процедура п.2.А получила весь список "100,101,102" (1), процедура разбиения списка п.2 разбила список и вернула таблицу (проверено вручную запросом и проверкой результата), после чего процедура п.2.А отработала (2) - согласно проверочной записе вставленной после слова "do" - 3 раза, тк при каждом цикле в тестовую таблицу добавлялись номера "100","101","102"... но в реальности данные изменились только у последней записи номер "102"!

Впечатление, что у конструкции функция корректировки записей работает после ВСЕХ циклов, а не в каждом цикле...

Или же наоборот - начинается цикл с конца списка и сразу после обработки первой в исполнении записи (последней в списке - "102") цикл работает вхолостую не корректируя нужные записи...

Подскажите что нужно скорректировать для этого...
Ответить с цитированием