AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 10.04.2002, 11:28   #1  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Синхронизация таблиц
Иногда бывает следующая ситуация: разрабатывалась функциональность на одной копии Аксапты и одной базе данных.

На другой комии Аксапты и другой базе данных (ДРУГАЯ БАЗА ДАННЫХ - мне кажется здесь ключевым моментом), импортируем проект и запускается синхронизации.

В ходе синхронизации появляются ошибки примерно такого вида:

[Microsoft][ODBC SQL Server Driver][SQL Server]There is already an object named 'DEM_REQ_VERSION' in the database.

DEM_REQ_VERSION - это таблица.

Как я понимаю при синхронизации Аксапта пытается создать таблицу, но так как она там уже есть она не может сделать это.

В дальнейшем при работе в Аксапте с этими таблицами появляются следующие ошибки:

[Microsoft][ODBC SQL Server Driver][SQL Server]Invalid column name 'VERSION'.

То есть, как я понимаю, таблица на SQL Servere отличается от представления ожидаемого Аксаптой. Но синхронизировать ее я не могу.

Не сталкивались ли Вы в этом ? Как с этим бороться ?
Старый 10.04.2002, 11:32   #2  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Да еще, если предварительно экспортировать данные из таблиц, залезть в SQL Server, удалить эти таблицы, войти в Аксатпу, синхронизировать проект и закачать обратно данные - то все будет нормально.


Но ведь это же не выход ???
Старый 10.04.2002, 12:32   #3  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
Такая проблема возникала, когда на SQL-сервере уже существовала таблица созданная неким пользователем (например somebody), а Аксапта при синхронизации пытается создать такую же таблицу, но с другим пользователем (например dbo)... с тем самым, который указан в настройках Вашего ODBC.
Старый 10.04.2002, 13:37   #4  
slava is offline
slava
сибиряк
Самостоятельные клиенты AX
 
468 / 23 (1) +++
Регистрация: 28.12.2001
Адрес: Москва
Проблема точно в различии имени владельца объекта существующего на SQL-server и того, который импортируется.
Вообще, owner'ом всех объектов на SQL-сервере должен быть dbo. Уж не помню где, но читал об этом. Остальным пользователям должны бать только grant'ованы различные права на объекты.
Нормальная практика - после импорта разработок запускать на сервере stored procedure, которая бы приводила владельцев всех объектов к единому (лучше dbo ). А после этого синхронизировать базу средствами Аксапты.
__________________
С уважением, Вячеслав.
Старый 10.04.2002, 14:05   #5  
Михаил Андреев is offline
Михаил Андреев
Участник
Компания АМАНД
Лучший по профессии 2009
 
1,296 / 239 (10) ++++++
Регистрация: 09.11.2001
Адрес: Химки, Московская область
Прошу прощения за вмешательство, но...

Причина достаточно банальна. У каждой таблицы есть id, хранимый в приложении (а не БД, что очень важно!), при чем этот id зависит от слоя, где объявлена таблица и от порядка импорта проектов. Когда идет импорт проекта, экспортированного из одного приложения, в другое приложение, id таблиц в одном приложении и другом будут разные (правда, могут и совпасть).
Аксапта при синхронизации проверяет не только название таблиц, но и их id в базе и приложении. У нас такое постоянно происходит при перемещении проекта с одного слоя на другой.

Гарантированный выход я знаю только один: экспорт всех таких таблиц перед синхронизацией и импорт после синхронизации.

Другой способ: копирование приложения не экспортом-импортом проектов, а копированием самих файлов с приложением. Но это при работающей базе нереально.
__________________
Михаил Андреев
https://www.amand.ru
Старый 11.04.2002, 20:38   #6  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Присоединяюсь к диагнозу Михаилу Андрееву.
Однако Михаил предлагает слишком жесткое решение.

Рекомендую Best Practice. Раздел Cost Efficient Upgrades
http://technet.navision.com/usered/B...t_Upgrades.htm
Старый 12.04.2002, 10:29   #7  
Wamr is offline
Wamr
----------------
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
 
1,737 / 858 (32) +++++++
Регистрация: 15.01.2002
Адрес: Москва
Записей в блоге: 7
Из личного опыта -
При импорте-экспорте проекта в XPO файле нет информации о TableId
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Ре-синхронизация системных таблиц на основании AOT kashperuk DAX: Администрирование 7 28.05.2010 16:36
Владельцы таблиц в БД аксапты AxaptaUser DAX: Администрирование 11 23.05.2007 18:33
Синхронизация таблиц м/у 2-мя компаниями sparur DAX: Программирование 15 12.12.2006 18:47
Синхронизация таблиц при изменении EDT z_av DAX: Программирование 1 16.12.2004 11:55
синхронизация таблиц andreynikolai DAX: Программирование 3 11.12.2003 16:22
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 09:53.