
- •1. Вложенные запросы. Привести примеры.
- •2. Методы компонента adoTable. Привести примеры.
- •3. Подключение к базе данных.
- •1. Объединение таблиц. Привести примеры.
- •2. Свойства компонента adoTable.
- •3. Оператор выбора Select. Привести примеры.
- •1. Операция Like в sql-запросах. Привести примеры.
- •2. Доступ к значению поля. Привести примеры.
- •3. Создание базы данных. Создание таблиц. Привести примеры.
- •1. Свойства компонента adoTable. Методы навигации по набору данных. Привести примеры.
- •2. Динамические запросы с параметром. Привести примеры
- •1. Динамический запрос всегда выполняется в том-же коннекте и как отдельный пакет(batch). Другими словами при использовании такого запроса,
- •3. Компиляция запроса происходят непосредственно перед его вызовом. Т.Е. Обо всех синтаксических ошибках вы узнаете только в этот момент.
- •3. Методы компонента adoTable. Привести примеры.
- •1. Объединение таблиц в sql-запросах.
- •2. Операторы добавления, редактирования, удаления данных в sql-запросах. Привести примеры.
- •3. Поиск записей в наборе данных.
- •1. Компонент adoConnection.
- •2. Операторы Alter Table, Create Table, Drop Table.
- •3. Компонент adoQuery. Основные свойства adoQuery. Привести примеры.
- •1. Написать оператор, осуществляющий создание бд в ms sql Server.
- •2. Написать sql- запрос, осуществляющий объединение данных из нескольких таблиц.
- •3. Методы создания и модификации таблиц.
- •1. Представления, их создание в ms sql Server.
- •2. Написать хранимую процедуру, осуществляющую добавление данных в таблицу.
- •3. Создание отчетов. Привести примеры.
- •1. Написать добавление, удаление, редактирование данных в таблице, используя, операторы Update, Delete, Insert.
- •2. Типы данных в sql-сервер.
- •Varchar(size) Может хранить не более 255 символов.
- •3. Операторы Update, Insert, Delete, Alter Table. Примеры.
- •1. Хранимые процедуры в ms sql Server.
- •2. Написать хранимую процедуру, осуществляющую удаление данных из таблицы.
- •3. Операторы Alter Table, Create Table, Drop Table.
- •2.Написать вложенный sql-запрос на примере любой базы данных.
- •1.Написать оператор выбора, осуществляющий выборку полей по нескольким критериям.
- •3. Создать базу данных, таблицу. Продемонстрировать на этой таблице операторы Update, Delete, Insert.
- •1.Представления. Хранимые процедуры. Привести примеры.
- •1. Оператор выбора Select. Отбор записей из таблицы. Вычисляемые поля.
- •1.Операторы присваивания значений переменным.
- •2. Написать sql- запрос, осуществляющий использование агрегатных функций.
- •1. Технология доступа к данным ado.
- •3. Извлечение данных. Поиск, сортировка данных.
- •1. Оператор выбора Select. Отбор записей из таблицы. Вычисляемые поля.
- •2. Использование операторов in, Between, like. Агрегатные функции. Упорядочивание записей.
- •3. Динамические запросы с параметром. Способы задания параметров
- •1. Оператор объявления переменных в хранимой процедуре.
- •2. Оператор выбора Select. Сортировка данных. Использование специальных операторов. Вычисляемые поля.
- •3. Агрегатные характеристики в sql – запросах. Вложенные запросы. Объединение таблиц в sql-запросах.
- •1. Написать хранимые процедуры на редактирование данных одного поля, нескольких полей.
- •2. Написать несколько представлений в базе данных.
- •3. Вызов представлений и хранимых процедур в среде ms sql Server.
БИЛЕТ № 1
1. Вложенные запросы. Привести примеры.
Вложенным запросом называется запрос, помещаемый в инструкцию SELECT, INSERT, UPDATE или DELETE или в другой вложенный запрос. Подзапрос может быть использован везде, где разрешены выражения. В данном примере вложенный запрос используется в качестве выражения для столбца с именем MaxUnitPrice в инструкции SELECT.
USE AdventureWorks2008R2;
GO
SELECT Ord.SalesOrderID, Ord.OrderDate,
(SELECT MAX(OrdDet.UnitPrice)
FROM AdventureWorks.Sales.SalesOrderDetail AS OrdDet
WHERE Ord.SalesOrderID = OrdDet.SalesOrderID) AS MaxUnitPrice
FROM AdventureWorks2008R2.Sales.SalesOrderHeader AS Ord
Вложенный запрос по-другому называют внутренним запросом или внутренней операцией выбора, в то время как инструкцию, содержащую вложенный запрос, называют внешним запросом или внешней операцией выбора.
Запрос SELECT вложенного запроса всегда заключен в скобки. Он не может включать предложений COMPUTE или FOR BROWSE и может включать предложение ORDER BY только вместе с предложением TOP.
Вложенный запрос может быть вложен в предложение WHERE или HAVING внешней инструкции SELECT, INSERT, UPDATE или DELETE или в другой вложенный запрос. Возможно создавать вложенность до 32-го уровня, хотя ограничения меняются в зависимости от объема доступной памяти и сложности других выражений в запросе. Отдельные запросы могут не поддерживать вложенность до 32-го уровня. Подзапрос может появляться везде, где может использоваться выражение, если он возвращает одно значение.
2. Методы компонента adoTable. Привести примеры.
TADOTable.Locate(const AnsiString KeyFields, const System::Variant &KeyValues, TLocateOptions Options); Ищет в ключевом поле, заданном в переменной KeyFields, значение переменной KeyValues. В случае если совпадение найдено, найденная запись становится текущей, т.е. курсор устанавливается на нее. В переменной Options указывается как преобразовывать значения для поиска может быть: loCaseInsensitive или loPartialKey.
TADOTable.Seek(const Variant &KeyValues, TSeekOption SeekOption =soFirstEQ); Используется при поиске с помощью индексов. SeekOption определяет как поступать если запись найдена: soFirstEQ, soLastEQ, soAfterEQ , soAfter, soBeforeEQ, soBefore. Подробное описание их вы найдете в мануале по Delphi.
TADOTable.LookUp (const AnsiString KeyFields, const Variant &KeyValues, const AnsiString ResultFields); Возвращает в качестве результата набор типа Variant со значениями всех найденных значений, удовлетворяющих запросу.
Существует еще несколько способов поиска информации в таблице: перебор всех элементов вручную, использование FindFirst, Next и т.д. Но мы перечислили только основные и необходимые, на мой взгляд, методы.
Приведем пример использования метода Locate. Поместите на форму компонент TComboBox, TButton и TEdit, занесите в КомбоБокс названия всех полей вашей таблицы (для этого используется свойство Items). В Edit мы будем вводить значение необходимое для поиска, а из ComboBox выбирать поле, по которому осуществлять поиск.
Теперь дважды щелкните по Button или выберите событие OnClick в инспекторе объектов.
Впишете в него следующий код:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
ADOTable1->Locate(ComboBox1->Text,Edit1->Text,[loCaseInsensitive]);
//здесь по указанному в Combo полю ищем значении из Edit. Все просто
//loCaseInsensitive - это поиск без ориентации на строчные и прописные буквы
}
Видите, для организации простого поиска достаточного всего одной строчки кода.