powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите пжл
8 сообщений из 33, страница 2 из 2
Помогите пжл
    #35695810
Kruchinin Pahan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FAMИ Galyamov Rinat пытается это объяснить, а Вы не понимаете, о чем речь.
И с Ринатом мы ни в одном слове не разошлись. Что самое интересное.
...
Рейтинг: 0 / 0
Помогите пжл
    #35696986
qqшка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Господа! Не недо ругаться, я очень извиняюсь за наивные вопросы, которые вызывают у вас такую бурю эмоций.
Сотворил цикл, включив в него sleep (попозже попробую inkey, о результатах сообщу) все работает, ресурсы остаются достаточные. Но теперь VFP не видит изменений в таблице, в которую вносят пользователи сети из под FPD? Что-то не так с конфигурацией VFP?
...
Рейтинг: 0 / 0
Помогите пжл
    #35699013
Kruchinin Pahan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qqшкаГоспода! Не недо ругаться, я очень извиняюсь за наивные вопросы, которые вызывают у вас такую бурю эмоций.
Сотворил цикл, включив в него sleep (попозже попробую inkey, о результатах сообщу) все работает, ресурсы остаются достаточные. Но теперь VFP не видит изменений в таблице, в которую вносят пользователи сети из под FPD? Что-то не так с конфигурацией VFP?
Код покажите свой... Для примера еще раз приведу репрокод:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
SET REPROCESS TO  5  && Попыток открыть таблицу...
ON SHUTDOWN EXIT && Если программу пытаются завершить, покинем цикл...
lnMilliSeconds =  1000 

DO WHILE .T.
  USE MyTable IN  0  SHARED && Попытка открыть таблицу неэксклюзивно.
  IF USED("MyTable")
    IF "нужное_нам_условие_достигнуто"
      ...
    ENDIF
    USE IN SELECT("MyTable") && Закрываем таблицу, чтобы в следующем цикле обновить данные.
  ENDIF
  Sleep(lnMilliSeconds)
ENDDO
ON SHUTDOWN && Восстановим ON SHUTDOWN
...
Рейтинг: 0 / 0
Помогите пжл
    #35699065
qqшка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
USE IN SELECT("MyTable") && Закрываем таблицу, чтобы в следующем цикле обновить данные.

А что, для того чтобы увидеть изменения обязательно закрывать таблицу?
...
Рейтинг: 0 / 0
Помогите пжл
    #35699095
Kruchinin Pahan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qqшкаUSE IN SELECT("MyTable") && Закрываем таблицу, чтобы в следующем цикле обновить данные.

А что, для того чтобы увидеть изменения обязательно закрывать таблицу?
Нет, не обязательно. Можно просто передернуть запись...
Код: plaintext
1.
2.
3.
lnSaveRec = RECNO()
GO BOTTOM
GOTO lnSaveRec
Но! Я вам настоятельно рекомендую все-таки отпускать таблицу между проверками. Иначе, никто не сможет заполучить эту же таблицу на эксклюзивные операции, типа PACK и т.п. Несуразности опять же могут быть в случае обрыва связи.
...
Рейтинг: 0 / 0
Помогите пжл
    #35699619
FAM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qqшка
Но теперь VFP не видит изменений в таблице, в которую вносят пользователи сети из под FPD? Что-то не так с конфигурацией VFP?

Закрывать- открывать таблицу - это очень, очень плохой тон. В нормальном приложении, если Вы контролируете таблицу, в которую пишут пользователи по сети следует применять:
1. Для записи пользователей конструкцию INSERT INTO
2. Для контроля - не сидеть в таблице напрямую, а через определенные промежутки времени делать запрос к таблице Select * from Tablica INTO CURSOR MyCr

И производить сравнения данных, полученных в сурсоре с теми, что были запомнены в предыдущей итерации. Ориентировочно так:

do while .T.
select from....
select MyCr
if YorArray(1)<> MyCr->f1
пищим
endif
if YorArray(2)<> MyCr->f2
сваливаем
endif
scat to YorArray
inkey(10)
endo

В этом случае все будет технологично - таблица всегда доступна всем пользователям сети, а Ваше приложение-сервер, которое мониторит содержание таблицы работает с курсором, никоме не мешая.
Такой подход позволяет делать гораздо более глубокий анализ. Например, когда каждый пользователь создает свою строку и пишет только в нее, а Вы можете отслеживать состояние записи по каждому юзеру и соответственно реагировать (например, послав ему автоматическое сообщение или вырубив программу...)
...
Рейтинг: 0 / 0
Помогите пжл
    #35699721
54321зайчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FAM прежде чем что-то писать почитайте хотя бы HELP
авторНичего INKEY(10) не ждет. С таким параметром он вообще ничего не ждет. Это - 10-и секундная пауза

Из HELP
авторВозвращает соответствующий код нажатой клавиши или кнопки мышки, находящийся в буфере клавиатуры.


INKEY([nSeconds] [, cHideCursor])



Параметры
nSeconds
Определяет временной интервал ожидания нажатия клавиши (в секундах). Если данный параметр nSeconds - отсутствует, INKEY( ) возвращает код нажатой клавиши немедленно .
...
Рейтинг: 0 / 0
Помогите пжл
    #35700004
Kruchinin Pahan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FAM
Закрывать- открывать таблицу - это очень, очень плохой тон.
Я бы не был столь категоричен. Все зависит от логики приложения. Если бы это было обычное приложение, я бы с вами был абсолютно согласен.

В данном случае, мы имеем приложение-монитор. Для мониторов часто оказывается выгодней кратковременно захватывать файл ACCESS_SHARE, а затем отпускать дескриптор. Но! Если частота опроса таблицы достаточно высока (несколько раз в секунду), то закрывать таблицу смысла не имеет, слишком высоки накладные расходы на открытие файла.
...
Рейтинг: 0 / 0
8 сообщений из 33, страница 2 из 2
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Помогите пжл
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]