17.07.2008, 17:35 | #1 |
Участник
|
Невозможно выполнить команду языка определения данных в ()
Подскажите, плиз, синхронизация выдает в infolog().
Error Синхронизировать Невозможно выполнить команду языка определения данных в (). База данных SQL обнаружила ошибку. Error Синхронизировать Невозможно выполнить команду языка определения данных в (). База данных SQL обнаружила ошибку. Error Синхронизировать Невозможно выполнить команду языка определения данных в (). База данных SQL обнаружила ошибку. Error Синхронизировать Невозможно выполнить команду языка определения данных в (). База данных SQL обнаружила ошибку. Error Синхронизировать Ошибки во время синхронизации базы SQL со словарем данных системы. Операция закончилась неудачно. Info Синхронизировать Синхронизация 4 таблиц закончилась неудачно При это мнеясно какие таблицы и что за ошибка. С чем это может быть связано ? |
|
17.07.2008, 18:03 | #2 |
Administrator
|
Посмотрите метод syncApplTables в классе Application (4-ки с ходу под рукой нет - названия из 3-шки). Все ли таблицы из этого списка прошли синхронизацию?
Как правило - остается только эмпирическим путем догадываться - в каких таблицах проблема. Но на практике это и не бывает нужно. На практике это означает - что приложение "натравили" не на ту БД. Ну или есть модификации в системных классах (типа Application/Info), которые некомпилированы, либо используют таблицы, которые неотсинхронизированы.
__________________
Возможно сделать все. Вопрос времени |
|
17.07.2008, 18:07 | #3 |
Участник
|
Приложение не натравливали на чужую БД, а создавали с пустой путем синхронизации.
|
|
17.07.2008, 18:34 | #4 |
Участник
|
Причин подобных ошибок может быть несколько (объект уже существует в бд, наличие данных, не согласующихся с создаваемыми индексами и т.д.), надо смотреть в каждом конкретном случае. Так как при полной синхронизации используется прогрессБар, то для того чтобы быстро понять, на каких таблицах падает, я добавлял в SysOperationProgressBase в метод setText вывод в инфолог переменной _text (DAX 4.0). В этом случае в результирующем инфоЛоге перед сообщением о баге видно имя таблицы.
|
|
17.07.2008, 19:15 | #5 |
Administrator
|
Цитата:
Кстати - если это все-таки не поможет - тогда совершенно точно прокатит такой механизм: стираете все ваши слои. Натравливаете стандартный функционал на чистую БД. Синхронизируете. Затем подкладываете ваши слои и снова синхронизируете. Я как-то раз так делал - и из-за чего-то (уже не помню из-за чего - может быть из-за этого) мне именно так и пришлось сделать. Вспомнил! Лицензии. База -то пустая. Лицензий на VAR-слой нет.. и с него код запускать нельзя. А модификации, которые "трогали объекты" лежали на VAR-слое. (но это были не системные классы - а функции проверки прав доступа, которые также вызываются при запуске). Поэтому повторяю - сделайте синхронизацию без ваших наработок. Затем залейте лицензию. После чего - вливайте ваш код.
__________________
Возможно сделать все. Вопрос времени |
|
17.07.2008, 19:38 | #6 |
Модератор
|
смотрите Event log \ Application на AOS-е
__________________
-ТСЯ или -ТЬСЯ ? |
|
|
За это сообщение автора поблагодарили: Sergikrus (1). |
18.07.2008, 02:18 | #7 |
Microsoft Dynamics
|
|
|
18.07.2008, 09:02 | #8 |
Модератор
|
Права.
под кем запускается АОС, имеет ли этот логин права на SQL, в частности, db_creator. С Ув, Г |
|
18.07.2008, 10:56 | #9 |
Участник
|
Всем спасибо, по sql trace понял в каких таблицах не проходила синхронизация.
Не создавался первичный ключ из-за неправильных данных, почистил таблицы, работает. |
|