Если вы желаете собрать значения, которые пользователь приложения ввел в форме, вы можете создать переменные для хранения этих значений и затем использовать их немедленно в предложении SQL SELECT или исполнить предложение позже. Для получения более подробной информации о настройке запросов с помощью SQL SELECT предложений смотрите Как: настраивать запросы (Queries) с помощью предложений SQL SELECT и Команда SELECT - SQL.
Для сбора значения ввода пользователя для немедленного использования
-
В предложении SQL SELECT включите имя формы или ссылку на форму там, где это применимо.
Приведенный ниже пример иллюстрирует, как собрать значения ввода пользователя из формы
используя ссылку-ярлык, которая появляется в опции WHERE предложения SQL SELECT.
Ссылка-ярлык, THISFORM
,
ссылается на текущую активную форму. Вы должны подставить имена элементов управления для ControlName1
и ControlName2
.
![]() | |
---|---|
SELECT * ; FROM tastrade!customer ; WHERE customer.country = ; THISFORM.ControlName1.Value ; AND customer.region = THISFORM.ControlName2.Value ; GROUP BY customer.postal_code ; ORDER BY customer.postal_code, customer.company_name |
Для хранения значений ввода пользователя из формы, когда вам не требуется использовать их пока форма активна, используйте в программном коде переменные. Например, если вы не желаете использовать ссылки на элемент управления, вы можете определить переменные в коде для хранения значений, возвращаемых элементом управления.
Для сбора значения ввода пользователя для использования в дальнейшем
-
Определите переменные, которые вы желаете использовать для хранения значений ввода пользователя.
-
В предложении SQL SELECT включите имя переменной там, где это применимо.
Приведенный ниже пример иллюстрирует, как собрать значения ввода пользователя из формы с использованием переменной, cValue
,
для хранения значения,
возвращаемого элементом управления в текущей активной форме. Ярлык-ссылка, THISFORM
,
ссылается на текущую активную форму.
Переменная появится в опции WHERE предложения SQL SELECT для выбора страны, которая
соответствует значению cValue
.
![]() | |
---|---|
cValue = THISFORM.ControlName.Value SELECT * ; FROM tastrade!customer ; WHERE customer.country = cValue ; GROUP BY customer.postal_code ; ORDER BY customer.postal_code, ; customer.company_name |
Если вы не определите переменной до запуска запроса, появится сообщение об ошибке, указывающее, что переменная не найдена. Если переменная не была определена в коде, Visual FoxPro подразумевает, что переменная была инициализирована ранее.