Запросы

Запросы

Аналогично сценариям создания и изменения, с помощью Visual Studio .NET можно генерировать запросы. За исключением тривиальных запросов, конструктор запросов с графическим пользовательским интерфейсом позволяет более эффективно и безошибочно создавать самые сложные запросы.

Далее работа в режиме конструктора запросов демонстрируется на примере создания параметрического запроса на обновление, который обновляет оптовые цены всех товаров на складе на указанную в процентах величину.

РИС. 8.13. Режим конструктора запросов с диалоговым окном Add Table

1. Откройте окно Solution Explorer и щелкните правой кнопкой мыши на любой папке, за исключением Database References. В контекстном меню выберите команду Add Query (Создать запрос), и на экране отобразится диалоговое окно Add New Item (Создать новый объект), показанное на рис. 8.2.

РИС. 8.14. Запрос на обновление поля WholesalePrice в таблице tblInventory

2. Выберите в области шаблонов Templates шаблон Database Query (Шаблон базы данных), укажите в текстовом поле Name имя нового запроса UpdateWholesale.dtq и щелкните на кнопке Open. (После этого на экране отобразится диалоговое окно Set Database Reference for Query для указания используемой ссылки на базу данных. — Прим. ред.) Далее в режиме конструктора запросов отобразится диалоговое окно Add Table (Включить таблицу), которое показано на рис. 8.13.

3. В диалоговом окне Add Table выберите таблицу tblInventory и щелкните на кнопке Add, а затем на кнопке Close.

4. Далее нужно изменить тип запроса с помощью команды меню Query?Change Туре?Update (Запрос?Изменить тип?Обновление).

5. В панели Diagram (Схема) конструктора запросов установите флажок в поле WholesalePrice, данные в котором предполагается обновить.

6. В панели Grid (Сетка) в столбце NewValue введите формулу: WholesalePrice * (1 + ? /100).

7. Эта формула принимает один параметр, который обозначает, на сколько процентов повышается оптовая цена товаров. При выполнении запроса символ подстановки в виде вопросительного знака будет заменен фактическим значением этого параметра. После выполнения этих действий окно конструктора запросов будет иметь такой вид, как на рис. 8.14.

 8. Хотя данный запрос можно запустить сразу же после его создания в режиме конструктора запросов, в данном примере он будет запущен из окна Solution Explorer.

9. Закройте окно конструктора запросов и щелкните на кнопке Yes в ответ на предложение сохранить созданный запрос UpdateWholesale.dtq.

10. Щелкните дважды на таблице tblInventory в окне Server Explorer для отображения всех текущих данных в поле WholesalePrice этой таблицы. Именно эти данные об оптовых ценах на товары будут изменены в результате выполнения запроса UpdateWholesale.dtq.

СОВЕТ

Для сверки исходного и последующего после выполнения запроса состояний можно сделать снимок экрана. Например, можно выделить и скопировать все строки, а затем вставить их в текстовый файл с помощью программы Notepad.

11. Как и при запуске сценария, запрос можно запустить, просто перетаскивая и опуская его на нужную ссылку базы данных. Кроме того, можно щелкнуть правой кнопкой мыши на запросе и выбрать в контекстном меню команду Open.

НА ЗАМЕТКУ

Данное контекстное меню также содержит команды Design и Design которые открывают конструктор запросов по отношению к используемой по умолчанию или указанной ссылке на базу данных.

РИС. 8.15. Обновленные данные в таблице tblInventory после увеличения значений в поле WholesalePrice на 10%

12. Перетащите и опустите запрос UpdateWholesale.dtq на ссылку на базу данных Novelty в окне Solution Explorer.

13. После этого в диалоговом окне Execute Scripts or Queries (Выполнить сценарий или запрос) подтвердите желание выполнить запрос по отношению к выбранной ссылке на базу данных, щелкнув на кнопке Yes.

14. В диалоговом окне Define Query Parameters (Определить параметры запроса) введите значение 10 в столбце Parameter Value (Значение параметра) и щелкните на кнопке OK.

15. После этого на экране появится диалоговое окно с сообщением о результате выполнения запроса и количестве охваченных им записей. Для продолжения работы закройте его, щелкнув на кнопке OK.

16. Повторите действия, описанные в п. 9, для отображения обновленных значений поле WholesalePrice таблицы tblInventory, как показано на рис. 8.15.