Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[13.59.236.219] |
|
Страницы: (2) 1 [2] все ( Перейти к последнему сообщению ) |
Сообщ.
#16
,
|
|||||||||||
|
Я здесь не буду подробно останавливаться на синтаксисе SQL запроса, материал по этой теме вы найдёте здесь: http://forum.vingrad.ru/index.php?act=ST&f=12&t=5638 Однако простейшие приёмы работы я покажу. В нескольких дальнейших примерах мы будем менять свойство "SQL". Перед каждым изменением этого свойства Вы должны закрывать квери (в дизайне устанавливать Active в False). В run-time изменения SQL должны выглядеть примерно так:
Теперь покажу на примере как можно использовать квери для наиболее простых, но очень частых и нужных операций: 1) Выбор только тех строк (записей) которые отвечают условию (например тех где в поле category записано 'Snapper')
2) Выбор только нужных столбцов (например нам нужны только столбцы Category и common_name )
3) Выбор записей отсортированных в определённом порядке (например в алфавитном порядке поля Category)
4) Запрос может комбинировать в себе всё перечисленное
Попробуйте задать каждый из этих запросов и посмотреть как программа будет реагировать на него. На самом деле запросы предоставляют гораздо большии возможности - например суммарные и статистические функции (вычислить сумму всех значений поля), вычисляемые поля (например добавить столбец который отражает не реальное поле в таблице, а сумму 2х других полей), объединение нескольких таблиц в одном запросе (2 таблицы с похожей структурой представляются как одна таблица), запросы на несколько таблиц (например вам надо выбрать всех из одной таблицы которые не встречаются в другой таблице, или для Иванова взять его номер телефона из одной таблицы, а его заказы из другой и т.п.). Всё это вы найдёте здесь: http://forum.vingrad.ru/index.php?act=ST&f=12&t=5638 , а в этой статье я только показываю как с этим можно работать из Дельфи |
Сообщ.
#17
,
|
|||||
|
А как менять значения в базе данных? Тоже при помощи квери это делать проще и, что важнее, значительно быстрее. Например, меняем в поле Category все "Cod" на "Kod". В квере пишем текст:
Ставим на форму кнопку, в обработчике нажания (onClick) пишем код:
Важные примечания: 1) Обратите внимание, что в данном случае мы не открываем квери делая Active:=true и не используем эквивалентный метод Open, а используем метод ExecSQL. Если открытие квери с оператором Select приводит к возвращению данных в программу (так называемый курсор данных), то все остальные типы кверей никаких данных в программу не возвращают - они выполняют операцию над базой, но не возвращают курсор. Такую кверю НЕЛЬЗЯ соединить с визуальными компонентами, её открытие хоть и будет выполнять операцию, будет приводить к исключительной ситуации. 2) Перед изменением текста квери, хоть в дизайне, хоть в run-time кверя должна быть закрыта. Аналогичным способом можно пользоваться другими операторами SQL: Delete - для удаления нескольких/всех строк Insert - для вставки одной или нескольких строк Create Table - для создания таблицы Alter Table - для изменения структуры таблицы Drop Table - для удаления таблицы и другими. Смотрите руководства по SQL по использованию этих операторов. |