|  | 
|  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 | 
|  | 
| 
 |