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.


 

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

51829. 14 ФЕВРАЛЯ: ВСТРЕЧАЕМ ПРАЗДНИК - МИНИ-СЦЕНАРИЙ НА ДЕНЬ ВЛЮБЛЕННЫХ 43.5 KB
  Пусть в каждой мелочи чувствуется дыхание любви.Не сращивает кость не очищает кровьНо без любви порою умираютДорогие друзья Несмотря на то что все бури страстей ненависть дружба секс и многое другое вмещаются в одно только слово из шести букв мы уже видим что любовь бывает разная. Сейчас будут исполнены песни о разной любви. Вы слушайте внимательно а потом ответьте на вопрос о какой любви шла речь.