Программирование - это просто
Advertisement
Главная arrow Уроки Delphi arrow Delphi - это просто! arrow Delphi. Урок 8. 7. Используем SQL-запрос для создания таблицы складов(TQuery, select, from, join)
18.04.2024 г.
Главное меню
Главная
Интернет магазин
Программные продукты
Биржевые роботы
Искусственный интеллект
Математика и информатика
1С:Предприятие
Уроки C#
Уроки Delphi
Уроки программирования
Web-программирование
Дизайн и графика
Компьютер для блондинок
Исходники
Статьи
Платный раздел
Рассказы про компьютеры
Хитрости и секреты
Системный подход
Размышления
Наука для чайников
Друзья сайта
Excel-это не сложно
Все о финансах
.
Delphi. Урок 8. 7. Используем SQL-запрос для создания таблицы складов(TQuery, select, from, join) Печать E-mail
Автор megabax   
04.11.2009 г.
New Page 2

Программирование баз данных в Delphi 7: Используем SQL-запрос для создания справочника складов (TQuery, select, from, join)

Сегодня мы продолжим создание справочников. На этот раз будет создавать более сложный справочник: "Склады". В отличии от справочника "Товар" он будет связан с другим справочником - "Сотрудники" (employees.db). И так, сначала мы организуем доступ с справочнику сотрудников, аналогично тому, как это мы делали на уроке 8.5.1.- создаем новые событие в TActionList, связываем с меню и туллбаром, в обработчик копируем содержимое обработчика события acWarsList, но в нем открываем файл employees.db.  Если вы не знаете где взять пример, скачайте его здесь. Да, и еще, давайте сразу добавим перевод полей на русский язык, перепишем процедуру TfrmStoreForm.FormCreate:

procedure TfrmStoreForm.FormCreate(Sender: TObject);
begin
    SetLength(WaresFields, 6);

    WaresFields[0].Name:='Id';
    WaresFields[0].Caption:='Код';

    WaresFields[1].Name:='Name';
    WaresFields[1].Caption:='Товар';

    WaresFields[2].Name:='Price';
    WaresFields[2].Caption:='Цена';

    WaresFields[3].Name:='Fio';
    WaresFields[3].Caption:='Фамилия Имя Отчество';

    WaresFields[4].Name:='Address';
    WaresFields[4].Caption:='Адрес';

    WaresFields[5].Name:='Phone';
    WaresFields[5].Caption:='Телефон';
end;

 Вот что в итоге у нас должно получиться:

Delphi 7:  SQL-запрос, TQuery, select, from, join

А теперь, воспользовавшись знаниями, полученными на уроке 8.1 создадим базу данных stores.db (склады), со следующими полями:

Поле Тип Назначение
Id Autoincrement Уникальный идентификатор склада
Name String 30 Наименование склада
Storeman Number УИД сотрудника кладовщика

Полученную таблицу заполним чем нибудь, используя Database Desktop. В поле Storeman записываем Id какого нибудь сотрудника (убедимся, что это существующий Id)*:

Delphi 7:  SQL-запрос, TQuery, select, from, join

А теперь создаем новую форму. Обзовем ее frmStores. Положим на форму компонент TQuery с закладки BDE, его имя с Query1  исправим на Query:

SQL, TQuery, select, from, join

Так же положим на форму TDataSource и TDBGrid*:

Delphi 7:  SQL-запрос, TQuery, select, from, join

Свяжем между собой эти компоненты, как мы это делали на уроке 8.2. В компоненте TQuery свойство DatabaseName установим StorePrj. А вот свойство TableName не ищите, его там нет. Вместо него есть свойство SQL. В его поле редактирования имеется кнопочка с тремя точками*:

Delphi 7:  SQL-запрос, TQuery, select, from, join

Нажмем на эту кнопку. У нас вылезет диалог редактирования текста. Введем туда вот такой текст:

select
    stores.id AS Id,
    stores.Name AS Name,
    employees.Fio AS FioStoreman
from stores left join employees on employees.id=stores.storeman

Это мы создали SQL-запрос, или говоря иными словами, мы написали запрос к базам данным на специальном языке запросов, который называется SQL. Слово select в данном тексте означает создание выборки. Эта команда имеет вот такой синтаксис:

select [список полей] from [список таблиц и их соединения]

Поля в списке полей перечисляются через запятую. Синтаксис описания поля такой:

[Имя таблицы].[Имя поля] AS [Имя поля в выборке]

После последнего поля из списка запятая не ставиться.

После слова from у нас идет список участвующих в запросе таблиц. в нашем случае их две stores и employees. Они связаны между собой: поле storeman из таблицы stores однозначно соответствует полю id из таблицы employees. Столбцы таблицы stores  расположены слева, к ним добавляются столбцы таблицы employees. Это правило в данном SQL запросе описывается так:

from stores left join employees on employees.id=stores.storeman

А теперь давайте сделаем так, что бы эту форму можно было открыть из программы. Нам всего то осталось создать новый пункт меню, новый Action, кнопочку туллбара и связать их. Это мы уже умеем.

И, последний штрих, добавляем в раздел uses основного модуля программы имя модуля формы и пишем обработчик вновь экшена acStoresList:

procedure TfrmStoreForm.acStoresListExecute(Sender: TObject);
var frm:TfrmStores;
begin
   frm:=TfrmStores.Create(self);
   frm.Query.Active:=true;
   frm.Show;
end;

Все, запускаем программу, и что же мы видим:

Delphi 7:  SQL-запрос, TQuery, select, from, join

- А почему поля не по русский? - спросите вы.

А это уже будет домашнее задание. Вспомните урок 8.5.2.


Скриншоты, помеченные знаком * , являются цитатами и иллюстрациями   программного продукта "Delphi", авторское право на который принадлежит "Borland Software Corporation".


Последнее обновление ( 06.11.2011 г. )
 
« След.   Пред. »
 
© 2024 Программирование - это просто
Joomla! - свободное программное обеспечение, распространяемое по лицензии GNU/GPL.
Русская локализация © 2005-2008 Joom.Ru - Русский Дом Joomla!
Design by Mamboteam.com | Powered by Mambobanner.de
Я принимаю Яндекс.Деньги