16.07.2008, 13:39 | #1 |
Участник
|
Баг SysDataImport
При стандартном импорте SysDataImport
есть неприятный баг. Если испортируемые таблицы связаны по RecId и в таблице содержащей ссылку refrecId нет индекса по RecId то ссылка импортируется некорректно - происходит ошибка времени выполнения, некорректный SQL запрос, но транзакция не откатывается и кривые записи импортируются Ошибка содержится тут : \Classes\SysDataImport\recIdSimpleSqlUpdate X++: // sql+=' FROM ' + dictTable.name(DbBackend::Sql); // эта строка не нужна в Update запросе // pkoz 16.07.2008 Последний раз редактировалось Logger; 16.07.2008 в 13:48. |
|
|
За это сообщение автора поблагодарили: gl00mie (5). |
16.07.2008, 14:49 | #2 |
Developer
|
Как я понимаю, необходимо отключить "Резервирование кодов записей", чтобы попасть в SysDataImport.recIdSimpleSqlUpdate() ?
Но все-равно воспроизвести на AX3 SP2 + SQL 2000 не удалось. Запрос в указанном методе имеет вид PHP код:
Как именно жалуется SQL-сервер? Модифицировали импорт? |
|
16.07.2008, 15:16 | #3 |
Участник
|
Цитата:
Сообщение от vallys
Как я понимаю, необходимо отключить "Резервирование кодов записей", чтобы попасть в SysDataImport.recIdSimpleSqlUpdate() ?
Но все-равно воспроизвести на AX3 SP2 + SQL 2000 не удалось. Запрос в указанном методе имеет вид PHP код:
Как именно жалуется SQL-сервер? Модифицировали импорт? Резервирование кодов записи было отключено. Оракл выругался на FROM TABLE в теле запроса - убрал FROM TABLE - все заработало. Ругань такая Цитата:
Оракл
ORA-00933: SQL command not properly ended UPDATE MARKUPAUTOLINE SET TABLERECID = -307756916 FROM MARKUPAUTOLINE WHERE SUBSTR(NLS_LOWER(DATAAREAID),1,3) = NLS_LOWER('100') AND RECID = -307757021 SQL2000 Как выяснилось не ругается :-) Просто стандартный update_recordset из X++ выдает на SQL2000 запрос без FROM MARKUPAUTOLINE - я это увидел и решил что для SQL синтаксис c FROM MARKUPAUTOLINE также недопустим, не стал перепроверять. В общем под SQL сервер все работает. SQL понимает UPDATE запрос как с конструкцией FROM так и без неё. Оракл требует всегда без FROM P.S. Ax3.0 SP5 |
|
|
За это сообщение автора поблагодарили: vallys (1). |
Теги |
oracle, recid, баг, импорт данных, ошибка, ax3.0 |
|
|