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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 25.06.2008, 19:00   #1  
Guest1234 is offline
Guest1234
Участник
 
8 / 10 (1) +
Регистрация: 25.06.2008
Thumbs up
Уважаемые разработчики!
Такой вопрос:
есть база Навижна 4 SQL-ного. Там периодически запускается некий процесс через диспетчер задач,
он скачивает некие данные из другой SQL-ной базы в навиженскую, осуществляет разные проверки,
пишет много чего в разные таблицы, т.п.
Этот процесс работает на сервере.
Надо дать возможность пользователю этот процесс останавливать со своего компьютера.
Сделали специальную форму для пользователя в базе, через которую он может поставить галку "Остановить" в отдельной выделенной табличке.
А основной процесс проверяет в коде в нужных местах эту табличку, и, если есть эта галка, то выполняется команда exit.
Примерно так:
ImportSetup.GET; //это таблица, где пользователь поставил галку "Остановить"
Stop:=ImportSetup.AutoImportStop ;
IF Stop=true THEN
EXIT;

Т.е. процесс должен остановиться теоретически. Но практически он не останавливается, в отладчике видно, что поле этой галки=False, несмотря на то
что в таблице (когда на нее явно смотришь) стоит True, установленное пользователем. Т.е. код почему-то не воспринимает эту галку.
В чем может быть дело?
Старый 25.06.2008, 19:30   #2  
RedFox is offline
RedFox
Участник
 
1,441 / 10 (0) +
Регистрация: 28.12.2004
Адрес: Киев
Табличка, где производится запись галочки временная или постоянная?
Старый 25.06.2008, 19:45   #3  
Guest1234 is offline
Guest1234
Участник
 
8 / 10 (1) +
Регистрация: 25.06.2008
постоянная
Старый 25.06.2008, 20:21   #4  
DA_NEAL is offline
DA_NEAL
Участник
Аватар для DA_NEAL
Лучший по профессии 2017
Лучший по профессии 2009
 
788 / 54 (3) ++++
Регистрация: 05.08.2002
Адрес: Королев
1. Вы уверены что запись закомитилась в тот момент когда задание смотрит на эту запись?
2. Вы уверены что задание проверяет эту запись в каждый раз а не 1 раз когда стартует?
3. Убедитесь что вы используете одну и туже табличку.
__________________
Want to believe...
Старый 25.06.2008, 20:28   #5  
rootadmin is offline
rootadmin
Участник
Аватар для rootadmin
 
224 / 10 (1) +
Регистрация: 25.03.2003
Адрес: Москва
Я сижу рядом, поэтому могу ответить
1. Да. Даже коммит можно писать. Не помогает
2. Да. Каждый раз
3. Да. Конечно! В конце какого-то цикла там даже эта запись проявляется уже измененная

Вобще выглядит как-то странно. Такое впечатление, что программа закешировало какое-то значение (получило версию базы данных) и упорно не хочет обновлять ее
__________________
С уваженем,
rootadmin
Старый 26.06.2008, 00:03   #6  
Dadakhan is offline
Dadakhan
Участник
 
26 / 10 (1) +
Регистрация: 30.05.2007
Фирмы случайно не разные?
Старый 26.06.2008, 09:47   #7  
Fordewind is offline
Fordewind
Участник
 
1,134 / 10 (3) +
Регистрация: 01.12.2005
Да потому что в версии базы вашего процесса эта галка FALSE!

Guest1234, учите матчасть

Вот это вам поможет:

SELECTLATESTVERSION (Database)
This function forces the latest version of the database to be used.

SELECTLATESTVERSION
Comments
Navision Database Server
Due to the version principle, you are guaranteed that the database version that you use is consistent, even if you do some time-consuming processing, for example in a report, and other users update the database while the report is running.

In a situation where this is not desirable, and you need to use the latest version of data, you can use SELECTLATESTVERSION to enforce a reloading of the version that the client is using.

SQL Server
This function ensures that the data displayed is the most current data in the database. The function clears all non-locked records from the client cache, thereby ensuring that you read the most recent data.


Чутье rutadmееna не подвело
Старый 26.06.2008, 11:16   #8  
rmv is offline
rmv
Участник
 
481 / 11 (1) +
Регистрация: 15.02.2005
Цитата:
Сообщение от Fordewind Посмотреть сообщение
Да потому что в версии базы вашего процесса эта галка FALSE!

Guest1234, учите матчасть

Вот это вам поможет:

SELECTLATESTVERSION (Database)
This function forces the latest version of the database to be used.

SELECTLATESTVERSION
Comments
Navision Database Server
Due to the version principle, you are guaranteed that the database version that you use is consistent, even if you do some time-consuming processing, for example in a report, and other users update the database while the report is running.

In a situation where this is not desirable, and you need to use the latest version of data, you can use SELECTLATESTVERSION to enforce a reloading of the version that the client is using.

SQL Server
This function ensures that the data displayed is the most current data in the database. The function clears all non-locked records from the client cache, thereby ensuring that you read the most recent data.


Чутье rutadmееna не подвело
Что то я эту функцию в коде Нава не встречал .
Думаю что все же проблема не в ней.
Старый 26.06.2008, 11:45   #9  
RedFox is offline
RedFox
Участник
 
1,441 / 10 (0) +
Регистрация: 28.12.2004
Адрес: Киев
Цитата:
Сообщение от rutadmeen Посмотреть сообщение
Вобще выглядит как-то странно. Такое впечатление, что программа закешировало какое-то значение (получило версию базы данных) и упорно не хочет обновлять ее
Нав кешиует записи, поэтому всегда после исправления (ДО запуска задания) нужно получать последную версию из БД.
В Вашем случае перед каждой проверкой нужно получать новые занчение строки.
Старый 26.06.2008, 11:57   #10  
Fordewind is offline
Fordewind
Участник
 
1,134 / 10 (3) +
Регистрация: 01.12.2005
Цитата:
Сообщение от rmv Посмотреть сообщение
Что то я эту функцию в коде Нава не встречал .
Я в общем то тоже. Но с другой строны я не помню, где в стандарте это могло бы понадобиться У нас же везде "Оптимистическая Конкуренция" (второе слово мог перепутать)
Старый 26.06.2008, 13:38   #11  
Guest1234 is offline
Guest1234
Участник
 
8 / 10 (1) +
Регистрация: 25.06.2008
Большое спасибо, Fordewind ! SELECTLATESTVERSION помогает.
 

Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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