12159

ПОСТРОЕНИЕ ЗАПРОСОВ В DELPHI

Лекция

Информатика, кибернетика и программирование

ПОСТРОЕНИЕ ЗАПРОСОВ В DELPHI Запрос – это вопрос к базе данных возвращающий запись или множество записей удовлетворяющих вопросу. Любой запрос по базе данных выполняется на языке SQL Structured Query Language – язык структурированных запросов который был создан Microsoft в конце 70х год...

Русский

2013-04-24

36 KB

14 чел.

ПОСТРОЕНИЕ ЗАПРОСОВ В DELPHI

Запрос – это вопрос к базе данных, возвращающий запись или множество записей, удовлетворяющих вопросу. Любой запрос по базе данных выполняется на языке SQL (Structured Query Language – язык структурированных запросов), который был создан Microsoft в конце 70-х годов.  

Delphi позволяет приложению при помощи запросов SQL использовать  данные таблиц Paradox и dBase (синтаксис локального SQL), а также локального сервера InterBase и  удаленных серверов SQL.

7.1 Компонент Query

Компонент Query представляет собой набор данных, который непосредственно связан с базой данных и предназначен для работы с запросами SQL. При работе с локальными базами данных целесообразнее использовать компонент Table, а при построении серверных приложений – Query.

7.1.1 Основные свойства компонента Query 

Приложение, работающее с запросами, должно содержать, как минимум, три основных компонента: набор данных, источник данных и компонент, отвечающий за отображение данных на форме. Связь между этими компонентами устанавливается обычным образом через соответствующие свойства (исключение составляет свойство DataSource компонента Query: оно не устанавливается, т.к. может иметь отношение к приложениям с несколькими связанными таблицами).

Чтобы организовать связь компонента Query с базой данных, необходимо сформировать его главное свойство  SQL, которое представляет собой строку, содержащую запрос.

Замечание. Прежде, чем начинать детальную настройку компонента Query, надо сформировать в свойстве SQL простейший запрос служебного характера, в котором указывается таблица и перечисляются некоторые параметры. До тех пор, пока такой запрос не создан, дальнейшая настройка компонента Query в приложении невозможна. В процессе работы приложения данный запрос может быть программно или непосредственно заменен на любой другой.

После создания служебного запроса можно выполнить соединение с базой данных через свойство Active. Свойство RequestLive при выполнении ряда условий предоставляет пользователю возможность редактирования данных таблицы через компонент Query.

Доступ к полю программным способом осуществляется так же, как и в компоненте Table (по порядковому номеру поля, по имени поля или по имени объекта).

Свойства Filter, Filtered и FilterOptions предоставляют возможность фильтрации данных таблицы.

7.1.2 Построитель запросов SQL Builder 

Для построения запросов в компоненте Query имеется специальное программное средство – визуальный построитель запросов, вызов которого осуществляется с помощью опции “SQL Builder…” контекстного меню компонента. Построитель  запросов позволяет в режиме диалога сформировать запрос на языке SQL, который затем может быть записан в качестве значения свойства SQL компонента Query. Просмотреть и отредактировать строку запроса можно с помощью опции “Query | Show SQL” главного меню построителя запросов. Просмотреть результаты выполнения запроса можно с помощью опции “Query | Run SQL”.

7.1.3 Основные методы компонента Query 

К основным методам компонента Query относятся методы открытия (Open) и закрытия (Close) соединения с базой данных.

Метод Close переводит свойство Active в false и закрывает тем самым соединение  с базой данных. Этот метод надо выполнять перед изменением каких-то свойств, влияющих на выполнение запроса или на отображение данных. Например, при изменении запроса в свойстве SQL надо сначала закрыть соединение, связанное с прежним запросом, а потом уже выполнять новый запрос.

Метод Open открывает соединение с базой данных и выполняет запрос, содержащийся в свойстве SQL. Но этот метод применим только в том случае, если запрос сводится к оператору Select. Для осуществления любого другого запроса используется метод ExecSQL. Универсальный блок, позволяющий выполнить любой запрос, выглядит следующим образом:

try

Ouery1.Close;

Ouery1.SQL.Clear;

Ouery1.SQL.Add(<строка запроса>);

 Ouery1.Open;

except

on EDatabaseError do Query1.ExecSQL;

end;

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

7.2 Основы языка SQL

Общие правила синтаксиса языка SQL:

  •  язык не чувствителен к регистру;
  •  если используется несколько операторов, то они отделяются друг от друга точкой с запятой;
  •  при использовании одного оператора точка с запятой в конце не обязательна;
  •  комментарий может быть записан в стиле Си: /*<комментарий>*/ или Паскаля: {<комментарий>}.

7.2.1 Оператор выбора Select

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

Одна из форм этого оператора имеет синтаксис:

Select <список имен полей> from <таблица>

 where <условие отбора> order by <список имен полей>;

где:

<список имен полей>  содержит имена тех полей таблицы, которые будут возвращены (если указать вместо списка символ «*», то будут возвращены все поля);

<таблица> определяет имя таблицы базы данных, из которой осуществляется отбор;

where определяет условие отбора записей;

order by задает порядок сортировки возвращаемых записей.

7.2.2 Операции с записями

Вставка новой записи в таблицу осуществляется оператором Insert, который может один из следующих видов:

Insert into <имя таблицы> (<список полей>)

 values (<список значений>)

или

Insert into <имя таблицы> <оператор Select>

Редактирование записей осуществляется оператором Update:

Update <имя таблицы> set <список вида

<поле>=<выражение>> where <условие>;

Удаление записей осуществляется оператором Delete:

Delete from <имя таблицы> where <условие>

Подробнее о языке SQL читайте в книге А.Я.Архангельский «Язык SQL в Delphi 5» на стр. 25-44.


 

А также другие работы, которые могут Вас заинтересовать

79425. Процессы проектирования. Построение логической модели данных 47.37 KB
  Построение логической модели данных. Создание схемы базы данных на основе конкретной модели данных например реляционной модели данных. Для реляционной модели данных даталогическая модель набор схем отношений обычно с указанием первичных ключей а также связей между отношениями представляющих собой внешние ключи. Концептуальная модель хранилища данных представляет собой описание главных основных сущностей и отношений между ними.
79426. Процессы проектирования. Построение физической модели данных 44.2 KB
  Построение физической модели данных. Создание схемы базы данных для конкретной СУБД. Специфика конкретной СУБД может включать в себя ограничения на именование объектов базы данных ограничения на поддерживаемые типы данных и т. Кроме того специфика конкретной СУБД при физическом проектировании включает выбор решений связанных с физической средой хранения данных выбор методов управления дисковой памятью разделение БД по файлам и устройствам методов доступа к данным создание индексов и т.
79427. Процессы проектирования. Проектирование программной архитектуры 48.05 KB
  Подход на основе шаблонов примеры шаблонов можно найти в вопросе 26 Стандартная структура подхода на основе шаблонов: Имя паттерна Задача паттерна Описание решения алгоритм без привязки к реализации Плюсы применения паттерна Минусы применения паттерна Иногда 4 и 5 пункт заменяют рекомендацией. Плюсы применения шаблонов проектирования: Инструмент для решения простых задач на любом языке разработчикам легче взаимодействовать увеличивается скорость программирования. Минусы применения шаблонов проектирования: Зацикливание разработчика...
79428. Процессы проектирования. Шаблоны программной архитектуры 112.61 KB
  Как применять политику ценообразования Вырабатывается стратегия приоритета скидок объект Продажа не должен обладать информацией о применяемых скидках но можно было бы применить стратегию расчета скидок. Имеются классы проектирования Продажа ТоварПродажа продажа отдельного вида товара в рамках продажи в целом ТоварСпецификация описание конкретного вида товара. Объект Продажа должен передать сообщение Рассчитать промежуточную сумму каждому экземпляру класса ТоварПродажа которые в свою очередь передают сообщения СообщитьЦену объектам...
79429. Процессы проектирования. Проектирование инфраструктуры 42.3 KB
  В последнее время чаще начинают использовать стороннюю инфраструктуру – облачные сервисы etc. Это выгодно с точки зрения цены не покупаем оборудование а платим деньги только за аренду однако если вмешивается безопасность или очень критично производительность – то приходится тратить деньги на свою инфраструктуру. Следует различать инфраструктуру ИС и инфраструктуру проекта по созданию ИС. в этом билете имеется в виду инфраструктура ИС про инфраструктуру проекта можно читать в билете 11.
79430. Процессы проектирования. Проектирование интерфейсов 46.72 KB
  Проектирование интерфейсов Интерфейс определяет совокупность средств и методов взаимодействия между элементами системы. С другой стороны набор правил или процедур для взаимодействия между компонентами программы между компонентами программы в целом а также между информационными системами и оборудованием программный интерфейс. Программный интерфейс формален – полный и непротиворечивый формализован. Физическая реализация интерфейса – USB COM port.
79431. Жизненный цикл информационной системы 46.7 KB
  Жизненный цикл информационной системы совокупность взаимосвязанных процессов создания и последующие состояния ИС от формирования исходных требований до утилизации. Процесс создания совокупность работ от формирования исходных требований до ввода в действие. Процесс создания состоит из: Анализ требований к ИС; Проектирование; Разработка; Тестирование; Другой способ деления стадий создания основан на последовательности операций операция по анализу входной информации об объекте проектирования; операция проектирования объектов данных на...
79432. Модели жизненного цикла информационной системы 46.2 KB
  ГОСТ 15 271 Каскадная модель Каскадная модель реализует принцип однократного выполнения каждого из вида деятельности определение требований проектирование разработка интеграция тестирование использование. ГОСТ 15 271 Информационная технология. Руководство по применению ГОСТ Р ИСО МЭК 12207 Процессы жизненного цикла программных средств. В стандарте основное внимание уделено особенностям подлежащим учету при прикладном применении ГОСТ Р ИСО МЭК 12207 в условиях реальных проектов создания программных средств.
79433. Методологии проектирования. Каноническое проектирование 41.03 KB
  Формирование требований к ИС формирование модели объекта автоматизации и формирование верхнеуровневых требований; Разработка концепта ИС детальное исследование бизнеспроекта выбор вариантов создания ИС формулирование требований заказчика; Создание Технического Задания оно же ТЗ – описание функций связей etc.; Эскизный проект реализация проекта проработка на системном уровне концепции; Технический проект; стадия создания...