Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как поступать / 4 сообщений из 4, страница 1 из 1
10.06.2007, 23:49
    #34587577
_mirror
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как поступать
я пишу обработчик нажатия кнопки поиск

как мне открывать и закрывать таблицу в этой процедуре

я написал

SELECT customer
LOCATE FOR customer.fio=ALLTRIM(thisform.text20.Value)
IF FOUND() then
thisform.text1.Value=customer.fio
ENDIF

при первом запуске он пишет

alias customer is not found

ладно хорошо таблица не открыта, делаем так

use customer.dbf
SELECT customer
LOCATE FOR customer.fio=ALLTRIM(thisform.text20.Value)
IF FOUND() then
thisform.text1.Value=customer.fio
ENDIF

но ведь при повторном запуске формы и нажатии кнопки fox пытается открыть уже открытую таблицу и естественно выдает file is in use

наверное надо закрывать таблицу в конце обработчика нажатия кнопки?
как это сделать и как решить целиком эту проблему?
...
Рейтинг: 0 / 0
11.06.2007, 09:14
    #34587711
Burn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как поступать
Всетаки хелп надо читать и поиском по форуму пользоватся.
Буквально на этой странице подобное обсуждали.

Открытие таблицы c проверкой
IF not Used('customer')
USE customer
ENDIF

Закрытие с проверкой
USE IN Select('customer')

Все таблицы надо открывать при окрытие формы и закрывать при выходе из нее. А не дергать каждый раз
...
Рейтинг: 0 / 0
11.06.2007, 09:24
    #34587716
anelsasha
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как поступать
* 1-й вариант
IF NOT USED('customer')
use customer.dbf
ENDIF
SELECT customer
LOCATE FOR customer.fio=ALLTRIM(thisform.text20.Value)
IF FOUND() then
thisform.text1.Value=customer.fio
ENDIF

* 2-й вариант
use customer.dbf
SELECT customer
LOCATE FOR customer.fio=ALLTRIM(thisform.text20.Value)
IF FOUND() then
thisform.text1.Value=customer.fio
ENDIF
USE IN customer

Но все зависит от конкретной идеологии работы с формой: можно закрытие "USE IN customer" разместить и в методе UNLOAD рассматриваемой формы, а открытие "use customer.dbf" в методе INIT рассматриваемой формы ... и тогда не нужно будет "открывать/закрывать" при каждом поиске....
...
Рейтинг: 0 / 0
11.06.2007, 11:04
    #34587822
BMJ
BMJ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как поступать
Чтобы на париться USE не USE

SELECT fio FROM customer where customer.fio=ALLTRIM(thisform.text20.Value) into CURSOR qcur
thisform.text1.Value=qcur.fio
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как поступать / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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