Страница 2 из 3

Re: Нужен Update поля в KATOS

Добавлено: 16 фев 2018, 12:26
igova
В накладных только одна позиция в спецификации. Одна накладная соответствует одной карточке ОС

Re: Нужен Update поля в KATOS

Добавлено: 16 фев 2018, 13:17
Den

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

sql
  select
    'sql update katos set katos.cInSpOrder=#comp(' || Cast(sporder.nrec as String) || ') where katos.nrec=#comp' || Cast(katos.nrec as String) || ')'
  from
   katsopr inner join sklorder on katsopr.nrec=sklorder.csopr and katsopr.vidsopr=101 and katsopr.name<>''
           inner join sporder on sklorder.nrec=sporder.csklorder
           inner join katos on katsopr.name=katos.innum
    where katos.innum<>''
  ;
проналаизировать что получается, ну строчку, другую попроловать выполнить на update из результата, если все ок, запустить весь результат.
Лучше ,если есть возможность. на тестовой БД )

Re: Нужен Update поля в KATOS

Добавлено: 16 фев 2018, 13:23
igova
Конечно проверки выполняю на тестовой. В ней несколько соответствий.
Проверю, отпишу.

Re: Нужен Update поля в KATOS

Добавлено: 16 фев 2018, 13:29
Den
...where katos.nrec=#comp('.. скобочку кнч тут забыл

Re: Нужен апдейт поля

Добавлено: 16 фев 2018, 13:39
igova
Выводит в редактор правильно.

Re: Нужен Update поля в KATOS

Добавлено: 16 фев 2018, 13:46
Den
так же как select в input-окне.

Re: Нужен Update поля в KATOS

Добавлено: 16 фев 2018, 13:51
igova
Нужно убрать sql select и одинарные кавычки в начале и конце 3-ей строки?

Re: Нужен Update поля в KATOS

Добавлено: 16 фев 2018, 13:55
Den
Нужно строку(и) результата , аля :

sql update katos set katos.cInSpOrder=#comp(123) where katos.nrec=#comp(456)

скопипастить в окно запроса и нажать ctrl+f9

Re: Нужен Update поля в KATOS

Добавлено: 16 фев 2018, 14:05
Den
там еще нужно. забыл, преобразовать нормуль нрек возвращаемый. Короче, конечный правильный вариант :

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

sql
  select
!  katos.innum
    'sql update katos set katos.cInSpOrder=#comp(' || Cast(int64(sporder.nrec) as String) || ') where katos.nrec=#comp(' || Cast(int64(katos.nrec) as String) || ');'
  from
   katsopr inner join sklorder on katsopr.nrec=sklorder.csopr and katsopr.vidsopr=101 and katsopr.name<>''
           inner join sporder on sklorder.nrec=sporder.csklorder
           inner join katos on katsopr.name=katos.innum
    where katos.innum<>''
  ;

Re: Нужен Update поля в KATOS

Добавлено: 16 фев 2018, 14:20
igova
ок

Re: Нужен Update поля в KATOS

Добавлено: 16 фев 2018, 14:27
Den
Попробовал ради интереса данный скрипт на Гал 9,1 под ораклом. Нигде не ругается. Модификация тоже проходит. ок

Re: Нужен Update поля в KATOS

Добавлено: 16 фев 2018, 14:28
Den
igova писал(а):В бд не апдейтит, просто вывод текста в редактор делает.

это то делали все 1:1 как Вам написали :
Нужно строку(и) результата , аля :

sql update katos set katos.cInSpOrder=#comp(123) where katos.nrec=#comp(456)

скопипастить в окно запроса и нажать ctrl+f9

Re: Нужен апдейт поля

Добавлено: 16 фев 2018, 14:41
igova
Я поправил кавычку, все отработало.

Re: Нужен Update поля в KATOS

Добавлено: 16 фев 2018, 14:44
Den
Это понятно с первого сообщения что нужен апдейт
Т.е., вы запускаете строку какую либо ИЗ РЕЗУЛЬТАТА ПРИВЕДЕННОГО МНОЙ SELECT на выполнение :

sql update katos set katos.cInSpOrder=#comp(123) where katos.nrec=#comp(456);

и ничего не модифицируется в базе ?

p.s. дяденька m0p3e намекал как бы, что можно сначала сформировать нужный скрипт для модификации из select. и Потом его уже запускать на выполнение. Мы попытались внять его совету :)

Re: Нужен апдейт поля

Добавлено: 16 фев 2018, 14:58
igova
В таком варианте отрабатывает.