Таким же образом, каким вы можете создать параметризованное представление с помощью дизайнеров запросов и представлений или посредством языка программирования, вы можете создать параметризованный запрос SQL pass-through.

Для создания параметризованного запроса с SQL pass-through

  • Вставьте перед параметром Visual FoxPro знак вопроса (?) и, затем, включите параметр в SQL строку, которую вы посылаете с функцией SQLEXEC().

Предоставленный вами параметр оценивается, как выражение Visual FoxPro, и значение посылается, как часть предложения SQL представления. Если оценка выражения не прошла, Visual FoxPro запросит у вас значение параметра.

Например, если у вас есть таблица customer из базы данных Testdata, расположенной на удаленном сервере, приведенный ниже код создаст параметризованный запрос, который ограничит просмотр тех потребителей, чья страна соответствует предоставленному для cCountry параметру:

  CopyCode imageСкопировать код
? SQLEXEC(1,'SELECT * FROM customer WHERE customer.country = cCountry')

Если вы желаете запрашивать у пользователя значение параметра, поместите перед выражением параметра вопросительный знак (?). Для получения более подробной информации смотрите Как: создать параметризованные представления.

Ваш источник данных ODBC не акцептирует параметры в нижеприведенных местах:

  • В полях SELECT или в списке таблиц.

  • В качестве обоих выражений в предикате сравнения.

  • В качестве обоих операторов в бинарном операторе.

Источник данных ODBC не будет акцептировать параметры в приведенных ниже местах в опциях WHERE или HAVING предложения SELECT:

  • В качестве первого и второго оператов в предикате BETWEEN.

  • В качестве первого и третьего операторов в предикате BETWEEN.

  • В качестве выражения и первого значения в предикате IN.

  • В качестве оператора в унарном операторе + или -.

  • В качестве аргумента функции SET.

Для получения более подробной информации смотрите Использование параметров ввода/вывода SQL Server.

Смотрите также