Сергей Попов
Зарегистрирован: 05.03.2005 Сообщения: 299 Откуда: г. Тольятти - Самара - Копейск
|
Добавлено: Ср 09 Мар 2016 15:59 Заголовок сообщения: Поиск объекта по части идентификатора (ID) |
|
|
Опишу ситуацию.
1. Экспортировал в idf-файл содержимое некоторой карты.
2. В другую базу импортирую этот файл и получаю несколько сообщений следующего типа: Код: | inform iteration Импорт семантических данных объекта "0006001D3519"
error General SQL error. [Microsoft][ODBC SQL Server Driver]Переполнение поля даты и времени
|
Исходная база лежит в ORACLе, импортирую в MS-SQL.
Это так, на всякий случай.
При экспорте ошибка не идентифицируется.
При импорте все поля будут пустыми, не только поле - виновник ошибки.
Значит надо найти эти объекты, увидеть в таблицах даты типа "01.10.20016" или "25.05.215".
Как это сделать!
Слоев несколько, полей типа "ДАТА" тоже несколько.
Искать выпадающие их диапазона даты по большому количеству таблиц и полей очень муторно.
Что можно предложить:
1. Идентифицировать ошибку на этапе экспорта. В этот момент можно указать изначальный идентификатор объекта (ID), не претерпевший трансформации.
2. Можно дополнить проверку целостности базы проверкой дат.
За неимением вышеперечисленного решил искать по идентификатору в исходной базе после чего глазами найти ошибочное значение и руками его исправить для повторного экспорта/импорта.
Вариантов ДВА:
1. Вроде был такой модуль, который искал в любой карте объект по указанному идентификатору.
Тут есть одна загвоздка. Такой модуль надо использовать во второй базе, так как в первой базе у этого объекта возможно иной идентификатор (очень вероятно что первые 4 символа другие).
Потом переключаемся в первую базу и уже визуально находим изначальный объект.
2. С ходу придумал другой вариант: применить "Запрос по семантическим данным"
В поле "Условие отбора записей" пишу: Код: | Подобна({АДРЕС.ID}; "*001D3519") | Четыре первых симовла идентификатора заменил на *. Ура! Получилось! Особенность в том что специальные поля ID и SemID не отображаются в списке полей, но могут использоваться в формуле.
Может быть кому пригодится. Я искал в любой таблице 1 к 1, в данном случае в таблице АДРЕС. |
|