Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Case RadioGroup2.Itemlndex of




Case RadioGroupl.Itemlndex of

Begin

Статический и динамический запросы

DELETE FROM Store

Удаление записей

WHERE C_Date BETWEEN 1.1.07 AND 31.12.07

FROM Cards

SELECT C_Code, CJfove, C_Date

INSERT INTO CardsArchives

(Code, Move, Date)

 

В архивную таблицу CardsArchives добавляется группа записей из таблицы Cards движения товара. Для записей, сделанных в 2007 году, в архив копируют­ся код товара, приход или расход и дата.

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

Замечание

Перемещение записей целесообразно оформлять в рамках транзакции, чтобы обеспечить надежность выполнения операции и сохранение целостности БД.

Для удаления группы записей используется оператор delete, имеющий формат:

DELETE FROM <Имя таблицы>

[WHERE <Условия выбора>];

В результате выполнения этого оператора из таблицы, имя которой указано по­сле слова from, удаляются все записи, которые удовлетворяют критерию отбора.

Замечание

Если критерий отбора не задан, то из таблицы будут удалены все записи.

 

Вот соответствующий запрос:

WHERE S_Quantity = 0

 

Из таблицы склада store удаляются все записи о товаре, которого нет на скла­де. Отметим, что если с записями этой таблицы связаны записи другой таблицы, например, движения товара, то может потребоваться их предварительное удале­ние, что связано с действием бизнес-правил и налагаемыми ими ограничения­ми.


Как уже отмечалось, в зависимости от способа формирования SQL-запрос мо­жет быть

§ статическим;

§ динамическим.

 

Текст статического SQL-запроса формируется при разработке приложения и в процессе выполнения приложения не может быть изменен. Такой запрос обычно используется в случаях, когда код запроса заранее известен и во время работы приложения не требует модификации.

Динамический SQL-запрос формируется или изменяется при выполнении при­ложения. Такой запрос обычно применяется, если его текст зависит от действий пользователя, например, при управлении сортировкой набора данных, когда в тексте запроса изменяются названия полей и добавляется или исключается опи­сатель DESC.

Рассмотрим в качестве примера процедуру, в которой осуществляется формиро­вание динамического запроса:

procedure TForml.btnSortClick(Sender: TObject);

var str: string;

Queryl.Close;

Queryl.SQL.Clear;

Queryl.SQL.Add('SELECT * FROM Personnel. db');

0: str:='ORDER BY Name ';

1: str:='ORDER BY BirthDay ';

end;

0:;

1: str:=str + ' DESC;

end;

Queryl.SQL.Add(str);

Query1.Open;

end;

При нажатии кнопки btnSort список сотрудников сортируется по полям Name или BirthDay. Пользователь управляет выбором поля с помощью группы RadioGroupl независимых переключателей. В группе RadioGroup2 выбирается порядок сортировки.

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

Параметры удобно использовать для передачи в текст SQL-запроса внешних значений. Например, если необходимо вывести фамилии сотрудников с окладом не менее указанного в редакторе Editl, то организовать формирование и вы­полнение динамического запроса можно следующим образом:

procedure TForml.ButtonlClick(Sender: TObject);




Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 324; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.