:: Visual Foxpro, Foxpro for DOS
Непонятки с DEBUG
Каратаев
Автор

Сообщений: 4091
Откуда: Алматы
Дата регистрации: 04.12.2001
Добрый день. Никак не могу понять такой момент: делаю выборку в курсор, а DEBUG показывает, что он не открыт. Хотя на долю секунды USED(...) мелькает в значение .T., а потом упорно выставляет .F. На скрине видно, какая команда в данный момент выполняется, и в то же время он якобы не открыт.

Хотелось бы понять каким образом он закрывается...
[attachment 36609 2023-07-05_133916.png]


------------------
Никогда не бывает настолько плохо, чтобы не могло быть еще хуже.
Ratings: 0 negative/0 positive
Re: Непонятки с DEBUG
PaulWist

Сообщений: 14819
Дата регистрации: 01.04.2004
Таймер?


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: Непонятки с DEBUG
Каратаев
Автор

Сообщений: 4091
Откуда: Алматы
Дата регистрации: 04.12.2001
Что ещё интересно: если после команды GO TOP (на скрине) поставить BROWSE, то этот курсор спокойно себе отображается, при USED(...) = .F.
Вот как такое может быть?


------------------
Никогда не бывает настолько плохо, чтобы не могло быть еще хуже.
Ratings: 0 negative/0 positive
Re: Непонятки с DEBUG
Каратаев
Автор

Сообщений: 4091
Откуда: Алматы
Дата регистрации: 04.12.2001
Нет никаких таймеров там в принципе...


------------------
Никогда не бывает настолько плохо, чтобы не могло быть еще хуже.
Ratings: 0 negative/0 positive
Re: Непонятки с DEBUG
dimag

Сообщений: 484
Откуда: Одинцово
Дата регистрации: 17.12.2002
[attachment 36610 Screenshot2023-07-05123246.png]
В таких случаях просто установить точку останова работает 100%
Покажет строку кода, где изменилось значение


------------------
Never judge a book by its cover.




Исправлено 1 раз(а). Последнее : dimag, 05.07.23 12:36
Ratings: 0 negative/0 positive
Re: Непонятки с DEBUG
Каратаев
Автор

Сообщений: 4091
Откуда: Алматы
Дата регистрации: 04.12.2001
Точка останова не помогла. Никак не реагирует... Но что странно, так это ситуация на скрине - и browse курсор нормально отображает, и messagebox() утверждает, что курсор открыт...
[attachment 36611 2023-07-05_133916.png]


------------------
Никогда не бывает настолько плохо, чтобы не могло быть еще хуже.
Ratings: 0 negative/0 positive
Re: Непонятки с DEBUG
Каратаев
Автор

Сообщений: 4091
Откуда: Алматы
Дата регистрации: 04.12.2001
[attachment 36612 2023-07-05_133916.png]
Из значения .F. на долю секунды мелькает .T. и снова .F....


------------------
Никогда не бывает настолько плохо, чтобы не могло быть еще хуже.
Ratings: 0 negative/0 positive
Re: Непонятки с DEBUG
dimag

Сообщений: 484
Откуда: Одинцово
Дата регистрации: 17.12.2002
Я думаю т.к. ты закрываешь родительский курсор у тебя закрывается и выборка. Объясню почему, это работает рашмор он иногда просто накладывает фильтр на таблицу, а не создает новый курсор физически. Это легко проверить используя DBF(cur_avn). Чтобы создавался полностью независимый курсор используй WITH (BUFFERING = lExpr)] в выражении запроса.
select * from (lcAlias) with (BUFFERING = .t.) where m_ = .t. into cursor (lcCursor)


------------------
Never judge a book by its cover.




Исправлено 1 раз(а). Последнее : dimag, 05.07.23 15:52
Ratings: 0 negative/0 positive
Re: Непонятки с DEBUG
Taran

Сообщений: 13872
Откуда: Красноярск
Дата регистрации: 16.01.2008
Может сессии дергаются?
Ratings: 0 negative/0 positive
Re: Непонятки с DEBUG
akvvohinc

Сообщений: 4720
Откуда: Москва
Дата регистрации: 11.11.2008
Цитата:
Я думаю т.к. ты закрываешь родительский курсор у тебя закрывается и выборка.
Если выборка закрылась, то как отрабатывают все последующие команды от SELECT и до BROWSE?
Ratings: 0 negative/0 positive
Re: Непонятки с DEBUG
dimag

Сообщений: 484
Откуда: Одинцово
Дата регистрации: 17.12.2002
akvvohinc
Цитата:
Я думаю т.к. ты закрываешь родительский курсор у тебя закрывается и выборка.
Если выборка закрылась, то как отрабатывают все последующие команды от SELECT и до BROWSE?

Да очень просто, где то в Deactivate формы снова открывается табла или при потери фокуса в поле. Хоть browse и системное окно, но события то никто не отменял.


------------------
Never judge a book by its cover.




Исправлено 1 раз(а). Последнее : dimag, 05.07.23 19:52
Ratings: 0 negative/0 positive
Re: Непонятки с DEBUG
dimag

Сообщений: 484
Откуда: Одинцово
Дата регистрации: 17.12.2002
вообще, если не поможет, то самый действенный способ, это
set coverage to
я так COM объекты на фоксе отлаживал. Анализ логов влет выдаст всю инфу. Ставишь вывод в main.prg и вперед. Если кому нужно, отличный анализатор лога для таких дел: https://mega.nz/file/s9ExkbgI#hvaTYjZpFM_RjFXbFTCeopKVkWRnTO6Q0GKUjU9Upto


P.S. FoxCOM+ вообще никаким дебаггером не отладить. Отладил prg, скомпилил COM, а оно не работает, как пример CreateObject() для COM ставит объекту Set("default") C:\Windows\System32, а не каталог запуска или регистрации COM, а ты сидишь и думаешь, че не работает, а он тупо пути не находит


------------------
Never judge a book by its cover.




Исправлено 2 раз(а). Последнее : dimag, 05.07.23 20:16
Ratings: 0 negative/0 positive
Re: Непонятки с DEBUG
akvvohinc

Сообщений: 4720
Откуда: Москва
Дата регистрации: 11.11.2008
Цитата:
Да очень просто, где то в Deactivate формы снова открывается табла или при потери фокуса в поле. Хоть browse и системное окно, но события то никто не отменял.
Не понял - все команды показаны на экране.
После какой из них срабатывает Deactivate и о какой такой табле речь?
Ratings: 0 negative/0 positive
Re: Непонятки с DEBUG
dimag

Сообщений: 484
Откуда: Одинцово
Дата регистрации: 17.12.2002
akvvohinc
Цитата:
Да очень просто, где то в Deactivate формы снова открывается табла или при потери фокуса в поле. Хоть browse и системное окно, но события то никто не отменял.
Не понял - все команды показаны на экране.
После какой из них срабатывает Deactivate и о какой такой табле речь?

Пусть не Deactivate а таймер, что то срабатывает, видно, что какой то goApp есть, там и bindevent на какое нибудь свойство может быть. А табла avn у него на картинке.

Мне вообще по барабану, я предлагаю -> решение.


------------------
Never judge a book by its cover.




Исправлено 2 раз(а). Последнее : dimag, 05.07.23 21:01
Ratings: 0 negative/0 positive
Re: Непонятки с DEBUG
akvvohinc

Сообщений: 4720
Откуда: Москва
Дата регистрации: 11.11.2008
Цитата:
А табла avn у него на картинке.
На картинке он работает с курсором cur_avn, который, как вы предположили, закрылся вместе с таблой avn, после чего сработало некое событие, в котором avn вновь открылась (и курсор, видимо, тоже?).

Не понимаю, как всё это может объяснить, что USED() от открытого курсора возвращает .F.
А если такого алиаса нет, то почему не вываливаются в ошибку все команды, начиная с SELECT на этот курсор и кончая его BROWSE.

Цитата:
Мне вообще по барабану, я предлагаю -> решение.
А я не понял, есть ли вообще проблема, которую надо решать.
Ну, показывает что-то не то DEBUG, но на самом-то деле курсор открыт или нет? Неясно.



Исправлено 1 раз(а). Последнее : akvvohinc, 05.07.23 22:25
Ratings: 0 negative/0 positive
Re: Непонятки с DEBUG
andrewk

Сообщений: 221
Откуда: Красноярск
Дата регистрации: 15.05.2005
Цитата:
делаю выборку в курсор, а DEBUG показывает, что он не открыт.
Добавьте в дебаггер кроме used() ещё sele(0), под go top добавьте "? select(0)". Совпадают?
Ratings: 0 negative/0 positive
Re: Непонятки с DEBUG
andrewk

Сообщений: 221
Откуда: Красноярск
Дата регистрации: 15.05.2005
andrewk
Добавьте в дебаггер кроме used() ещё sele(0), под go top добавьте "? select(0)". Совпадают?
Блин, думал об одном, написал другое Конечно же имел в виду Set("Datasession")
Ratings: 0 negative/0 positive
Re: Непонятки с DEBUG
lemenev

Сообщений: 314
Дата регистрации: 23.06.2022
А если сделать так:
m.lcFileAvn = goApp.PathFile + "avn.dbf"
IF FILE(m.lcFileAvn)
USE IN SELECT(JUSTSTEM(m.lcFileAvn))
SELECT * ;
FROM (m.lcFileAvn) ;
WHERE !DELETED() AND (mon_ = toForm.nmon AND year = toForm.nyear) ;
INTO CURSOR cur_avn READWRITE
SELECT cur_avn
INDEX on id_us TAG id_us
GO TOP
BROWSE
MESSAGEBOX(USED("cur_avn"))
ENDIF
Ratings: 0 negative/0 positive
Re: Непонятки с DEBUG
akvvohinc

Сообщений: 4720
Откуда: Москва
Дата регистрации: 11.11.2008
Цитата:
А если сделать так
Даже если б такое могло помочь, то просто возник бы другой вопрос - а что изменилось от того, что вы убрали этот SELECT?
Ratings: 0 negative/0 positive
Re: Непонятки с DEBUG
Каратаев
Автор

Сообщений: 4091
Откуда: Алматы
Дата регистрации: 04.12.2001
Что-то вразумительное смогу ответить только в понедельник... У нас тут 4 выходных, а исходники на работе...
Единственное, что пока приходит в голову - форма, из которой вызывается код, немодальная. Датасессия там приватная. Но проверял, выводя в коде DatasessionId формы и актуальную в момент исполнения кода - совпадают... Пока други мыслей нет...


------------------
Никогда не бывает настолько плохо, чтобы не могло быть еще хуже.
Ratings: 0 negative/0 positive


Эта тема закрыта.

On-line: 22 DmitryKn Владимир Максимов  (Гостей: 20)

© 2000-2025 Fox Club 
Яндекс.Метрика