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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.09.2006, 16:17   #1  
murick is offline
murick
Участник
Аватар для murick
 
59 / 10 (1) +
Регистрация: 10.04.2006
->
День добрый, уважаемые участники форума. Тут столкнулся кое с какой проблемкой, даже стыдно как-то говорить...
Для доступа к таблицам в нави используются типы Record и Recordref, в зависимости от условия. Если надо связать Recordref с таблицей, то используем Recordref.OPEN и всё тип-топ. А как быть, когда таблица находится в другой базе и/или на другом серваке? Вариант типа Recordref.OPEN(Database::TableName) ( где Database - имя базы данных, а TableName - таблица) не катит: нави ругается, на необъявленные переменные.
Подскажите пожалуйста, где я туплю?
Старый 12.09.2006, 17:34   #2  
IGG is offline
IGG
Участник
 
665 / 29 (2) +++
Регистрация: 24.08.2005
Адрес: СПб/Москва
Все это работает в текущей базе а для доступа для другой базы или серверу это неверно. Это просто невозможно по моему
Старый 12.09.2006, 17:34   #3  
NeNavision_imported is offline
NeNavision_imported
Участник
Аватар для NeNavision_imported
 
241 / 10 (1) +
Регистрация: 12.08.2005
Нигде. Невозможно привязать RecordRef к таблице в другой базе. Это всего лишь ссылка на любую нав. таблицу.
__________________
Должен остаться только один.
Старый 12.09.2006, 18:56   #4  
Yoil is offline
Yoil
NavAx
NavAx Club
Лучший по профессии 2017
Лучший по профессии 2009
 
1,574 / 70 (6) ++++
Регистрация: 20.11.2002
Адрес: Msk
Если речь про навыжн на SQL-серваке:
Создайте вьюху, которая показывает таблицу из другой фирмы.
В Навыжне создайте таблицу, которая показывает вьюху.
Поможет?
__________________
"Моей лошадке ядрышком полмордочки снесло..."
А.В.Суворов, письма к дочери
Старый 13.09.2006, 09:41   #5  
EDVard_imported is offline
EDVard_imported
Участник
 
49 / 10 (1) +
Регистрация: 22.07.2004
Цитата:
Сообщение от Дуд Посмотреть сообщение
Если речь про навыжн на SQL-серваке:
Создайте вьюху, которая показывает таблицу из другой фирмы.
В Навыжне создайте таблицу, которая показывает вьюху.
Поможет?
Я так понимаю, что речь даже не о другой фирме, а о другой базе...
Тут поможет ADO (ODBC).
Старый 13.09.2006, 10:12   #6  
murick is offline
murick
Участник
Аватар для murick
 
59 / 10 (1) +
Регистрация: 10.04.2006
Поясню, зачем мне это нужно:
Есть две базы. В одну из них ежедневно (иногда дважды в день) вносится курс валют (табл. 330 - Currency Exchange Rate). Требование заключалось в том, чтобы при вводе курса в одну базу, в другую он вносился автоматически. Это можно реализовать на самом SQL серваке, в триггере таблички при апдейте. Помимо этого попросили создать две кнопки на форме типа "обновить кукрс валюты за определённую дату" и "обновить за всё время". Эти кнопари должны были копировать либо курс за определённое число, либо содержимое всей таблицы с курсами валют из одной базы в другую. Хотелось бы сделать это средствами самого нави, а не играться на серваке, если такое возможно.
Старый 13.09.2006, 10:52   #7  
konrad_imported is offline
konrad_imported
Участник
 
183 / 10 (1) +
Регистрация: 25.11.2004
Если сервер не трогать - то только через АДО.
Старый 13.09.2006, 11:15   #8  
romeo is offline
romeo
Участник
Аватар для romeo
 
564 / 10 (2) +
Регистрация: 31.03.2004
Цитата:
Сообщение от Neovision Посмотреть сообщение
Поясню, зачем мне это нужно:
Есть две базы. В одну из них ежедневно (иногда дважды в день) вносится курс валют (табл. 330 - Currency Exchange Rate). Требование заключалось в том, чтобы при вводе курса в одну базу, в другую он вносился автоматически. Это можно реализовать на самом SQL серваке, в триггере таблички при апдейте. Помимо этого попросили создать две кнопки на форме типа "обновить кукрс валюты за определённую дату" и "обновить за всё время". Эти кнопари должны были копировать либо курс за определённое число, либо содержимое всей таблицы с курсами валют из одной базы в другую. Хотелось бы сделать это средствами самого нави, а не играться на серваке, если такое возможно.
Репликации?
Старый 13.09.2006, 11:36   #9  
Yoil is offline
Yoil
NavAx
NavAx Club
Лучший по профессии 2017
Лучший по профессии 2009
 
1,574 / 70 (6) ++++
Регистрация: 20.11.2002
Адрес: Msk
Факт.
Почему не сделать из базы с курсами своевременную выгрузку в файлик, а в Навыжне, соответственно, загрузку?
__________________
"Моей лошадке ядрышком полмордочки снесло..."
А.В.Суворов, письма к дочери
Старый 13.09.2006, 16:17   #10  
murick is offline
murick
Участник
Аватар для murick
 
59 / 10 (1) +
Регистрация: 10.04.2006
Цитата:
Почему не сделать из базы с курсами своевременную выгрузку в файлик, а в Навыжне, соответственно, загрузку?
выгрузку производить через нави или сервак?
Извините, наверное я не точно сформулировал задачу. Есть две Базы А и В. В базу А заносится курс валюты. Кнопки следует расположить на форме базы В так, чтобы пользователи только тупо нажимали на них и получали курс из своей базы. При этом им не нужно знать откуда эти курсы копируются. Как реализовать выгрузку в файл данных из базы А, находясь при этом в базе В?
Старый 13.09.2006, 16:48   #11  
EDVard_imported is offline
EDVard_imported
Участник
 
49 / 10 (1) +
Регистрация: 22.07.2004
Цитата:
Сообщение от Neovision Посмотреть сообщение
Цитата:
Почему не сделать из базы с курсами своевременную выгрузку в файлик, а в Навыжне, соответственно, загрузку?
выгрузку производить через нави или сервак?
Извините, наверное я не точно сформулировал задачу. Есть две Базы А и В. В базу А заносится курс валюты. Кнопки следует расположить на форме базы В так, чтобы пользователи только тупо нажимали на них и получали курс из своей базы. При этом им не нужно знать откуда эти курсы копируются. Как реализовать выгрузку в файл данных из базы А, находясь при этом в базе В?
В базе А при добавлении/изменении записи (как вариант на OnValidate() поля "Relational Exch. Rate Amount") выгружайте эту запись либо всю таблицу в файл (можно тектовый через датапорт, тогда и ADO не нужен). Можно открывать файл, обновлять только эту запись. В общем, тут как фантазия подскажет и какое нужно быстродействие.
Далее в базе B при нажатии на кнопку, читаем файл и берем те записи, которые нужны.
Старый 13.09.2006, 17:15   #12  
murick is offline
murick
Участник
Аватар для murick
 
59 / 10 (1) +
Регистрация: 10.04.2006
Цитата:
В базе А при добавлении/изменении записи (как вариант на OnValidate() поля "Relational Exch. Rate Amount") выгружайте эту запись либо всю таблицу в файл (можно тектовый через датапорт, тогда и ADO не нужен). Можно открывать файл, обновлять только эту запись. В общем, тут как фантазия подскажет и какое нужно быстродействие.
Далее в базе B при нажатии на кнопку, читаем файл и берем те записи, которые нужны.
В данном случае, при вводе каждого нового значения курса валюты в базе А будет некоторое торможение, обусловленное формированием текстового файлика. Не хотелось бы, чтобы пользователи базы А испытывали неудобства в процессе копирования курсов в базу В.
С вводом текущего курса разобрался так: Создал на серваке процедуру для копирования курса определённой валюты в базу В на данное число. В триггере базы А при добавлении/изменении записи вызываю эту процедуру копирования.
А что насчёт тех двух кнопарей, то наверное придётся, как сказал EDVard, воспользоваться ADO.
Спасибо большое всем за помощь
Старый 13.09.2006, 18:25   #13  
konrad_imported is offline
konrad_imported
Участник
 
183 / 10 (1) +
Регистрация: 25.11.2004
Если уж до сервака таки добрались - сделайте таблицы валют и курсов базы Б как вьюхи на таблицы валют и курсов базы А. И забудьте о кнопках, тормозах и триггерах.
Правда, возможно юзерам базы Б, которые захотят добавить курс в базу А через вьюху, придется права db_owner на сервере дать. А может - и нет. Как система настроена.
 


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

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

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