Таким же образом, каким вы можете создать параметризованное представление с помощью дизайнеров запросов и представлений или посредством языка программирования, вы можете создать параметризованный запрос SQL pass-through.
Для создания параметризованного запроса с SQL pass-through
-
Вставьте перед параметром Visual FoxPro знак вопроса (?) и, затем, включите параметр в SQL строку, которую вы посылаете с функцией SQLEXEC().
Предоставленный вами параметр оценивается, как выражение Visual FoxPro, и значение посылается, как часть предложения SQL представления. Если оценка выражения не прошла, Visual FoxPro запросит у вас значение параметра.
Например, если у вас есть таблица customer
из базы данных Testdata
, расположенной на удаленном сервере, приведенный ниже код создаст параметризованный запрос, который ограничит просмотр тех потребителей, чья страна соответствует предоставленному для cCountry
параметру:
Скопировать код | |
---|---|
? SQLEXEC(1,'SELECT * FROM customer WHERE customer.country = cCountry') |
Если вы желаете запрашивать у пользователя значение параметра, поместите перед выражением параметра вопросительный знак (?). Для получения более подробной информации смотрите Как: создать параметризованные представления.
Ваш источник данных ODBC не акцептирует параметры в нижеприведенных местах:
-
В полях SELECT или в списке таблиц.
-
В качестве обоих выражений в предикате сравнения.
-
В качестве обоих операторов в бинарном операторе.
Источник данных ODBC не будет акцептировать параметры в приведенных ниже местах в опциях WHERE или HAVING предложения SELECT:
-
В качестве первого и второго оператов в предикате BETWEEN.
-
В качестве первого и третьего операторов в предикате BETWEEN.
-
В качестве выражения и первого значения в предикате IN.
-
В качестве оператора в унарном операторе + или -.
-
В качестве аргумента функции SET.
Для получения более подробной информации смотрите Использование параметров ввода/вывода SQL Server.