- •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.
3. Создание базы данных. Создание таблиц. Привести примеры.
Для создания базы данных необходимо кликнуть правой кнопкой мыши на пункте «Базы данных» и выбрать пункт меню «Создать базу данных».
В данном окне задается имя базы данных, имена и пути к файлам базы данных, начальный размер файлов и шаг увеличения размера БД в случае необходимости. После нажатия кнопки «ОК» созданная БД появляется в списке баз данных
Созданная база данных пуста, т. е. не содержит ни одной таблицы. Поэтому следующей задачей является создание таблиц, структура которых аналогична таблицам из базы данных Access. При создании таблиц необходимо обратить внимание на соотношения типов Access и SQL Server
Для создания таблиц необходимо выбрать в контекстном меню ветки «Таблицы» пункт «Создать таблицу».
Для определения связей между таблицами необходимо задать первичные ключи таблиц. Для этого в контекстном меню соответствующего поля выбрать пункт «Задать первичный ключ»
БИЛЕТ № 4
1. Свойства компонента adoTable. Методы навигации по набору данных. Привести примеры.
По своим функциональным возможностям и применению он подобен стандартному табличному компоненту.
Основным преимуществом табличного типа набора данных является то, что они поддерживают индексы. Индексы позволяют очень быстро осуществлять сортировку и поиск. Это особенно актуально для баз данных, отличных от SQL, например для Microsoft Access. Но при использовании баз данных SQL сортировку, фильтрацию и другие подобные операции лучше выполнять при помощи операторов языка SQL.
База данных задается свойствами ConnectionString, или свойством Connection, подключающим компонент к ADOConnection. Для управления таблицей в приложение вводится, помимо компонента ADOTable, обычный компонент источника данных DataSource, в свойстве DataSet которого задается имя компонента ADOTable. Далее к этому источнику данных DataSource подключаются любые компоненты отображения данных.
2. Динамические запросы с параметром. Привести примеры
Т.к. в T-SQL нет возможности использовать в некоторых частях запроса значения переменных, то единственным доступным решением является использование динамического запроса. Идея очень проста: в специально определнной переменной "собирается" строка запроса, которая должна выполняться. Далее эта строка запускается на выполнение. Запуск можно осуществить двумя способами
- с помощью команды EXECUTE
- с помощью системной процедуры sp_executesql.
Выглядит это приблизительно так
DECLARE @SQL varchar(8000), @table_name varchar(10)
SET @SQL = 'SELECT * FROM ' + @table_name
exec(@SQL)
--или
exec sp_executesql @SQL
Обычно динамические запроса формируются внутри хранимых процедур, в которых по входным параметром составляется конкретная строка выполнения.
Особенности динамического запроса
1. Динамический запрос всегда выполняется в том-же коннекте и как отдельный пакет(batch). Другими словами при использовании такого запроса,
- вы ни имеете доступа к локальным переменным, объявленым до вызова динамического запроса (однако возможен доступ к cозданным ранее временным таблицам)
- локальные временые таблицы и переменные, созданные во время выполнения команды exec, будут недоступны в вызывающей процедуре, т.к. будут удалены по окончании пакета, в котором выполняется exec.
2. Динамический запрос ВСЕГДА выполняется с ПРАВАМИ ПОЛЬЗОВАТЕЛЯ, ВЫЗВАВШЕГО ПРОЦЕДУРУ, а не с правами владельца процедуры. Другими словами, если владельцем процедуры Procedure1 является User1, который имеет права к таблице Table1, то для пользователя User2 мало назначить права на выполнение процедуры Procedure1, если обращение в ней к таблице Table1 идет через динамический запрос. Придется давать ему соответствующие права и непосредственно для Table1.
