Цитата:
Сообщение от
DSPIC
А целостность данных?
Почему бы просто не сохранить данные в буфер, переключить компанию и вставить данные.
А потому что имеется такая ситуация. Была компания, в ней были данные. И вдруг, в какой-то момент - мы осознаем необходимость включения этой компании в виртуальную. changecompany в этом случае работать не будет - т.к. ДО внесения компании в виртуальную - мы просто не перейдем в виртуальную компанию. А после - мы уже не достанем наши старые данные (система будет искать записи с dataareaid равным виртуальной компании).
Переход в другую компанию, которая уже входит в виртуальную - это конечно вариант - но... ее может и не быть, например, мы решили объединить ряд компаний и создать новую виртуальную компанию.
Кстати, обращаю внимание, что нельзя перейти в саму виртуальную компанию. Можно только перейти в компанию, входящую в состав виртуальной.
На самом деле - мы отвлеклись от темы. Я привел пример - не для того, чтобы показать как это работает с виртуальными компаниями, а для того, чтобы показать, что прямое обращение к БД при замене dataAreaId если все делать по-честному - выливается не в одну строчку кода. И даже наоборот - мой вариант по сути применим только тогда, когда штатно (по аналогии как Вы показали) невозможно этого добиться. Хотя с т.з. функциональности оба примера работают одинаково - никакой целостности данных нигде не нарушается если нет связок по RecID (а если есть, то нарушается и там и там)
Кстати, Ваш код работать не будет. После changecompany временная таблица тоже ведь сменит компанию. Или я не понял хитрого хода конем?