Программирование баз данных в Delphi 7: Запись данных в таблицу (Append, TTable,AssignFile, FieldByName)Сегодня мы загрузим в нашу базу данных товары из текстового файла. Этот тактовый файл вы можете скачать здесь. Создаем новый проект, кидаем на форму компонент TTable, он у нас на закладке DBE*: Затем кладем на форму кнопочку (TButton). Напомню, она у нас на закладке Standart*: Сменим заголовок и идентификатор кнопки. Пусть выглядит кнопка как "Старт", а свойство Name будет равно btnStart. Затем переключимся на компонент TTable, что бы выбрать у него свойство DatabaseName*: Свойство DatabseName установим в StorePrj, а свойство TableName нужно сделать wares.db. Теперь пишем обработчик события OnClick кнопочки:
Запускаем программу и нажимаем кнопочку "Старт" После нажатия на кнопку программа "подумаем" пару секунд, и все, товары загружены. Посмотреть их мы сможем пую мри помощи нашей заготовки программы складского учета, которую мы делали на предыдущем уроке: Если у вас загруженные товары не показывает, то нужно в процедуре acWaresListExecute строку CreateMDIChild(copy(SessionParams[i],6,Length(SessionParams[i])-5)+'/wares.db', WaresFields); заменить нас строку CreateMDIChild(copy(SessionParams[i],6,Length(SessionParams[i])-5)+'\wares.db', WaresFields); Программирование баз данных в Delphi 7: Используем SQL-запрос для создания справочника складов (TQuery, select, from, join)Сегодня мы продолжим создание справочников. На этот раз будет создавать более сложный справочник: "Склады". В отличии от справочника "Товар" он будет связан с другим справочником - "Сотрудники" (employees.db). И так, сначала мы организуем доступ с справочнику сотрудников, аналогично тому, как это мы делали на уроке 8.5.1.- создаем новые событие в TActionList, связываем с меню и туллбаром, в обработчик копируем содержимое обработчика события acWarsList, но в нем открываем файл employees.db. Если вы не знаете где взять пример, скачайте его здесь. Да, и еще, давайте сразу добавим перевод полей на русский язык, перепишем процедуру TfrmStoreForm.FormCreate:
Вот что в итоге у нас должно получиться: А теперь, воспользовавшись знаниями, полученными на уроке 8.1 создадим базу данных stores.db (склады), со следующими полями:
Полученную таблицу заполним чем нибудь, используя Database Desktop. В поле Storeman записываем Id какого нибудь сотрудника (убедимся, что это существующий Id)*: А теперь создаем новую форму. Обзовем ее frmStores. Положим на форму компонент TQuery с закладки BDE, его имя с Query1 исправим на Query: Так же положим на форму TDataSource и TDBGrid*: Свяжем между собой эти компоненты, как мы это делали на уроке 8.2. В компоненте TQuery свойство DatabaseName установим StorePrj. А вот свойство TableName не ищите, его там нет. Вместо него есть свойство SQL. В его поле редактирования имеется кнопочка с тремя точками*: Нажмем на эту кнопку. У нас вылезет диалог редактирования текста. Введем туда вот такой текст:
Это мы создали 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:
Все, запускаем программу, и что же мы видим: |