Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Проблема с процедурой / 25 сообщений из 26, страница 1 из 2
19.08.2009, 09:38
    #36151468
yana_87
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с процедурой
Здравствуйте!
Такая проблема: в коде в самом начале необходимо использовать CLOSE ALL для вызова одной команды. Но далее в коде вызывается процедура, и в этом месте фокс начинает ругаться, что не знает такой процедуры. Я так понимаю, что CLOSE ALL "закрывает" все процедуры.
Подскажите пожалуйста как же мне их "открыть".
...
Рейтинг: 0 / 0
19.08.2009, 09:44
    #36151482
АлексейО
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с процедурой
yana_87необходимо использовать CLOSE ALL для вызова одной команды.
а для какой команды это вам нужно?
...
Рейтинг: 0 / 0
19.08.2009, 10:07
    #36151544
yana_87
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с процедурой
АлексейО,

я делаю переименование папки

o=CreateObject("Scripting.FileSystemObject")
o.MoveFolder(lcdb,lcrar)
...
Рейтинг: 0 / 0
19.08.2009, 10:53
    #36151646
АлексейО
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с процедурой
yana_87,
close all закроет слишком много. разберитесь какие именно файлы открыты вашей программой в переименнуемой папке и закройте только их.
...
Рейтинг: 0 / 0
19.08.2009, 10:55
    #36151652
yana_87
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с процедурой
АлексейО,

уже все пробовала, и CLOSE DATABASE ALL, CLOSE TABLES ALL, работает только с CLOSE ALL.
...
Рейтинг: 0 / 0
19.08.2009, 11:02
    #36151665
Проблема с процедурой
yana_87,
так что закрыть-то надо? Каким боком закрытие баз данных и таблиц относится к перименованию каталога?
...
Рейтинг: 0 / 0
19.08.2009, 11:13
    #36151684
yana_87
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с процедурой
проходящий.,

получается когда заходишь в программу, вызываешь какие-то другие режимы, а затем в этот мой режим, то именно в месте, где я переименовываю ошибка, я попробовала CLOSE ALL. Теперь переименование работает, и вот вызов процедуры нет.
...
Рейтинг: 0 / 0
19.08.2009, 11:29
    #36151736
-=AlexiS=-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с процедурой
Вам уже писали
АлексейО close all закроет слишком много. разберитесь какие именно файлы открыты вашей программой в переименнуемой папке и закройте только их.
возможно у вас открыты какие-то файлы "низким уровнем" , или перенаправление принтера сделано в файл в этой папке.
CLOSE ALL - это извините уж очень крайняя мера ."Из пушки по воробьям" ну или "серпом по ...."
на её последствия вы уже натолкнулись, где гарантия что кроме библиотек вы не закрыли еще что-то нужное.
...
Рейтинг: 0 / 0
19.08.2009, 11:43
    #36151800
Проблема с процедурой
yana_87проходящий.,

получается когда заходишь в программу, вызываешь какие-то другие режимы, а затем в этот мой режим, то именно в месте, где я переименовываю ошибка, я попробовала CLOSE ALL. Теперь переименование работает, и вот вызов процедуры нет.О какой проблеме речь в заголовке? О какой проблеме с этой процедурой? Какие режимы? Какая ошибка? Почему Вы решили использовать Close All? Вы можете по-человечески объяснить что Вы делаете, что получается и что Вы хотите получить?
...
Рейтинг: 0 / 0
19.08.2009, 12:36
    #36151965
прошелмимо
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с процедурой
вариант кода, с помощью которого можно закрыть
открытые таблички не используя close all
Код: plaintext
1.
2.
for lnAlias= 1  to  100 
   use in select(lnAlias)
endfor
...
Рейтинг: 0 / 0
19.08.2009, 13:59
    #36152232
yana_87
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с процедурой
прошелмимо,

Спасибо, попробую!
...
Рейтинг: 0 / 0
19.08.2009, 16:24
    #36152738
Проблема с процедурой
прошелмимо,

можно попросить вас прокоментировать код ? я только начинаю разбираться
непонятно - use in select(...) заранее спасибо.
...
Рейтинг: 0 / 0
19.08.2009, 16:58
    #36152871
прошелмимо
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с процедурой
авторвас прокоментировать код

гы, код тупой
перебрать все области и закрыть все открытые таблицы и курсоры

более предпочтиелен вариант
(пишу на коленке и не пробую)
Код: plaintext
1.
2.
3.
4.
local lnAlias, laUsed[ 1 ]
for lnAlias= 1  to aused(laUsed)  &&& можно сюда и параметр нужно сессии прибавить
    use in select(laUsed[lnAlias])
endfor

используем только для того, чтобы закрыть все используемые таблички и курсоры
(такая надобность иногда бывает)

Код: plaintext
 use in select(...) 
этот код дает возможность безошибочно закрыть
табличку или курсор не проверяя наличие факта открытости
...
Рейтинг: 0 / 0
19.08.2009, 17:25
    #36152945
Проблема с процедурой
прошелмимо,

спасибо:) вроде понятно, но все же где найти описание сочетания use in ... так и не смог яндыкс отказывается помогать
...
Рейтинг: 0 / 0
19.08.2009, 17:39
    #36153005
Проблема с процедурой
Вопрос_по_Бухпрошелмимо,

спасибо:) вроде понятно, но все же где найти описание сочетания use in ... так и не смог яндыкс отказывается помогатьВ хелпе, батенька, в хелпе.
...
Рейтинг: 0 / 0
20.08.2009, 11:22
    #36154126
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с процедурой
...
Рейтинг: 0 / 0
25.08.2009, 09:25
    #36160970
yana_87
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с процедурой
Не помогает закрыть все таблицы и курсоры.
Может все-таки можно как-то "открыть" конкретную процедуру?
...
Рейтинг: 0 / 0
25.08.2009, 09:27
    #36160974
yana_87
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с процедурой
Ошибка такая получается:

OLE error code 0x800a0046: Unknown COM status code
...
Рейтинг: 0 / 0
25.08.2009, 10:07
    #36161044
Проблема с процедурой
yana_87Не помогает закрыть все таблицы и курсоры.
Может все-таки можно как-то "открыть" конкретную процедуру?Процедуры не открываются и не закрываются. Вы, наконец-то, опИшете саму ситуацию, а не Ваше понимание этой ситуации? Что делаете, что происходит, что Вы ожидаете и, главное, почему ожидаете имено это?
...
Рейтинг: 0 / 0
25.08.2009, 10:14
    #36161058
yana_87
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с процедурой
проходящий.,

ладно. Код примерно такой

IF !DIRECTORY(lcrar) AND DIRECTORY(lcdb)
fso = createobject("scripting.filesystemobject")
fso.movefolder(lcdb, lcrar)
ENDIF

Если я вхожу в программу и сразу иду выполнять этот кусок, то все ок. А если я перед этим зашла в другие формы, а уже потом в эту, то получаю ошибку. Попробовала сделать CLOSE ALL в самом начале, кусок с директориями отработал, но пишет ошибку не может найти errhand1.prg здесь:

ON ERROR DO errhand1

Вот такая ситуация. Пробовала и CLOSE DATABASE, CLOSE TABLES ALL, ничего не помогает!
...
Рейтинг: 0 / 0
25.08.2009, 10:29
    #36161089
reware
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с процедурой
yana_87
Если я вхожу в программу и сразу иду выполнять этот кусок, то все ок. А если я перед этим зашла в другие формы, а уже потом в эту, то получаю ошибку. Попробовала сделать CLOSE ALL в самом начале, кусок с директориями отработал, но пишет ошибку не может найти errhand1.prg здесь:

Ну и что-тут непроходимого ?
1) Устанавливаем параметры приложения (т.е. разнообразные SETы).
2) Сохраняем где-то (в переменных, массивах и пр.) эти установки.
3) Делаем в нужный момент столь вами любимый CLOSE ALL (садизм).
4) Запускаем эту злосчастную процедуру.
5) Восстанавливаем ранее сохраненные установки и работаем себе спокойно дальше.

Хотя все это садо-мазохизм и надо разобраться, что именно закрывается по CLOSE ALL, чего не должно закрываться.
...
Рейтинг: 0 / 0
25.08.2009, 10:38
    #36161116
Проблема с процедурой
yana_87,
как же трудно с Вами общаться... Это ведь у нас проблемы и нам нужна помощь, да? А мы тут заставляем Вас делать нам одолжения?

IF !DIRECTORY(lcrar) AND DIRECTORY(lcdb)
fso = createobject("scripting.filesystemobject")
fso.movefolder(lcdb, lcrar)
ENDIF

Если я вхожу в программу и сразу иду выполнять этот кусок, то все ок. А если я перед этим зашла в другие формы, а уже потом в эту, то получаю ошибку. Попробовала сделать CLOSE ALL в самом начале, кусок с директориями отработал, но пишет ошибку не может найти errhand1.prg здесь:

ON ERROR DO errhand1 Отсюда можно сделать вывод, что в первом случае срабатывает Ваш обработчик ошибок, лежащий в errhand1.prg, и про который фокс знает при нормальной работе программы. Во втором случае в какой-то форме настройка на этот обработчик сбивается и ошибка при работе с fso не обрабатыватся. Своими Close в разных вариантах Вы еще больше все разрушаете.

Провертьте удачность моих предположений.
...
Рейтинг: 0 / 0
25.08.2009, 10:39
    #36161124
reware
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с процедурой
yana_87Попробовала сделать CLOSE ALL в самом начале, кусок с директориями отработал, но пишет ошибку не может найти errhand1.prg здесь:
ON ERROR DO errhand1


Перечитал еще раз внимательно ваш последний пост - при CLOSE ALL заодно ведь закрываются и все процедурные файлы, ранее назначенные командами SET PROCEDURE TO. Вы уж попробуйте не CLOSE ALL, a CLOSE PROCEDURE, а после выполненного куска кода восстановите те SET PROCEDURE TO, которые были установлены.
...
Рейтинг: 0 / 0
25.08.2009, 10:42
    #36161132
yana_87
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с процедурой
reware,

знаю. Пробовала так:

SET PROCEDURE TO errhand1
ON ERROR DO errhand1

та же самая ошибка((
...
Рейтинг: 0 / 0
25.08.2009, 10:52
    #36161171
yana_87
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с процедурой
Нашла в чем была ошибка!

Форма, которую я перед этим открывала была formset, и некоторые формы не закрывались. Сделала в своем коде проверку и все заработало!

Спасибо всем, кто ответил!
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Проблема с процедурой / 25 сообщений из 26, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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