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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 26.10.2005, 13:00   #1  
DA_NEAL is offline
DA_NEAL
Участник
Аватар для DA_NEAL
Лучший по профессии 2017
Лучший по профессии 2009
 
788 / 54 (3) ++++
Регистрация: 05.08.2002
Адрес: Королев
Господа. Не могу сделать следующую вещь. Есть RecordRef.
Необходимо изменить ключевые поля записи в RecordRef. Знаю номера ключевых полей знаю старые и новые значения. Естстественно RecordRef.Modify не срабатывает если переименовал ключевые поля...
Как их изменить без использования Record.Rename. Так как в RecordRef в принципе может находиться любая таблица то заводить их как переменные record не хочется.
__________________
Want to believe...
Старый 26.10.2005, 13:08   #2  
Dzemon is offline
Dzemon
Moderator
 
1,247 / 12 (3) ++
Регистрация: 09.09.2004
Ну попробуйте DELETE - INSERT.
Старый 26.10.2005, 13:13   #3  
DA_NEAL is offline
DA_NEAL
Участник
Аватар для DA_NEAL
Лучший по профессии 2017
Лучший по профессии 2009
 
788 / 54 (3) ++++
Регистрация: 05.08.2002
Адрес: Королев
Таблица может являтся справочником. В том то и задача запустить штатный механизм переименования. Похоже задача не решаема без переменной типа Record.

из хелпа:
Comments
Select the record you want to replace using the primary key fields. The record's current key and filters do not affect the operation.

__________________
Want to believe...
Старый 26.10.2005, 13:28   #4  
Галина is offline
Галина
Участник
 
1,132 / 28 (3) +++
Регистрация: 01.07.2003
Я правда как то не совсем поняла проблему. Но насколько я знаю-ключевые поля переименовываются без проблем-если в момент переименовывания-у вас сортировка не использует эти ключи. Ну и соответственно фильтров нет на эти поля.
Когда мне нужно переименовать в таблице ключевые поля-я их нахожу - фильтрирую-после помечаю (Ctrl+F1), снимаю фильтры, выбираю ключ-который не использует эти поля. И делаю только отмеченные показать. Ну и после переименовываю.
Может как то поможет?
Старый 26.10.2005, 13:42   #5  
DA_NEAL is offline
DA_NEAL
Участник
Аватар для DA_NEAL
Лучший по профессии 2017
Лучший по профессии 2009
 
788 / 54 (3) ++++
Регистрация: 05.08.2002
Адрес: Королев
Проблема в том что я не знаю какая таблица у меня содержится в RecordRef. Кроме того у неё може быть только первичный ключ или куча ключей в которые входит ключевое поле.

А переименовываете через Modify?
__________________
Want to believe...
Старый 26.10.2005, 13:48   #6  
Галина is offline
Галина
Участник
 
1,132 / 28 (3) +++
Регистрация: 01.07.2003
Нет - я описала переименовывания в таблице-через "Правка"-"Заменить". А вы что хотите перименовать первичный ключ?
Старый 26.10.2005, 13:55   #7  
DA_NEAL is offline
DA_NEAL
Участник
Аватар для DA_NEAL
Лучший по профессии 2017
Лучший по профессии 2009
 
788 / 54 (3) ++++
Регистрация: 05.08.2002
Адрес: Королев
Да я решаю задачу синхронизации данных в разных базах данных. При изменении например в таблице Item 27 кода в связанной базе данных также должен изменится код этого товара со всеми валидэйтами. При изменении неключевых полей все замечательно а вот с ключами беда.
__________________
Want to believe...
Старый 26.10.2005, 14:04   #8  
Галина is offline
Галина
Участник
 
1,132 / 28 (3) +++
Регистрация: 01.07.2003
Интересно-а как переименовывается Фин.Счет например в плане счетов? Переименовывается во всех связанных таблицах. Интересно стандартно или действительно - открывается таблица связанная и там меняется?
Старый 26.10.2005, 14:11   #9  
DA_NEAL is offline
DA_NEAL
Участник
Аватар для DA_NEAL
Лучший по профессии 2017
Лучший по профессии 2009
 
788 / 54 (3) ++++
Регистрация: 05.08.2002
Адрес: Королев
Если отрабатывает триггер Rename то менятеся во всех связанных таблицах тоже. Вот вызвать rename из RecordRef не получается... и это обидно...
__________________
Want to believe...
Старый 26.10.2005, 18:55   #10  
zub is offline
zub
Участник
 
40 / 10 (1) +
Регистрация: 23.08.2005
Cкажите пожалуйста, вы осуществляете синхронизацию между базами или фирмами.
Мне для осуществления синхронизации между базами пришлось писать SQL триггера, если есть другой путь, не могли бы вы его описать, если это вас не затруднит
Старый 27.10.2005, 10:48   #11  
DA_NEAL is offline
DA_NEAL
Участник
Аватар для DA_NEAL
Лучший по профессии 2017
Лучший по профессии 2009
 
788 / 54 (3) ++++
Регистрация: 05.08.2002
Адрес: Королев
Синхронизация именно между базами данных. В обеих базах данных созданы буферные таблицы синхронизации содержащие грубо говоря операцию изменения данных и содержание полей измененной записи. Через ADO отправляется Insert в синхронизуемую базу данных а в ней уже клиент Navision выполняет предписанное действие с выполнением всех валидейтов при модификации (вставке, удалении) записи. Соответвенно переписаны триггера на синхронизуемых таблицах чтобы при изменении записи заполнялся буфер. Можно было и на триггеры Global но нужно синхронизировать не поголовно все данные а только содержание справочников и документов.
__________________
Want to believe...
Старый 27.10.2005, 10:50   #12  
DA_NEAL is offline
DA_NEAL
Участник
Аватар для DA_NEAL
Лучший по профессии 2017
Лучший по профессии 2009
 
788 / 54 (3) ++++
Регистрация: 05.08.2002
Адрес: Королев
удалено
__________________
Want to believe...
Старый 27.10.2005, 13:26   #13  
zub is offline
zub
Участник
 
40 / 10 (1) +
Регистрация: 23.08.2005
Большое спасибо за идею.
Я так понимаю, что клиент должен самостоятельно запускать "обновления" предназначеные ему.
Старый 27.10.2005, 15:09   #14  
DA_NEAL is offline
DA_NEAL
Участник
Аватар для DA_NEAL
Лучший по профессии 2017
Лучший по профессии 2009
 
788 / 54 (3) ++++
Регистрация: 05.08.2002
Адрес: Королев
в этом то вся идея
__________________
Want to believe...
Старый 28.10.2005, 09:44   #15  
rmv is offline
rmv
Участник
 
481 / 11 (1) +
Регистрация: 15.02.2005
Ну если rename не дружит с recordref остается только программно сгененирть кодеюнит с с case на каждую таблицу и передавать в него recordref.
Старый 28.10.2005, 14:49   #16  
DA_NEAL is offline
DA_NEAL
Участник
Аватар для DA_NEAL
Лучший по профессии 2017
Лучший по профессии 2009
 
788 / 54 (3) ++++
Регистрация: 05.08.2002
Адрес: Королев
Сделал как всегда просто.... запретил на редактирование ключевые поля для синхронизуемых таблиц
__________________
Want to believe...
 


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

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

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