Этот пакет называется Developer Express VCL build 53 (53 – это версия сборки достаточно свежая). Переходим на главное окно нашего приложения и перемещаем туда компонент cxGrid из вкладки DevExpress.


Чтобы посмотреть этот PDF файл с форматированием и разметкой, скачайте его и откройте на своем компьютере.
Инструкция №
5
:

«
Создание соединения с БД и вывода данных в приложении
»

Часть 1. Введение.


Научившись использовать свойства и методы компонентов (объектов) как в коде͕ так и при
первичной настройке͕ перейдем к разработке СУБД.


Вспомним͕ что каждая новая

форма порождает соз
дание нового модуля (
Unit
). Так же моно
создать модуль͕ который не будет привязан к форме. Делается это через меню
File

-

New

-

Unit
.


И еще один важный момент͗ до настоящего момента мы работали с визуальными компонентами
на визуальны
х формах. Сегодня мы будем работать с не визуальными компонентами. Размещение таких
компонентов на обычной форме не приводит ни к чему͕ ибо они не видны в запущенном приложении.





Но если таких компонентов много͕ то они начинают откровенно захламлять

ваше рабочее
пространство и появляется необходимость их куда
-
нибудь спрятать. На такую форму͕ которая сама будет
не видна. И такая форма называется
Data

Module
.

Создается она все из того же меню
File

-

New

-

Data

Module
.

Это такая же форма͕ как и
Form
,

то
лько при запуске она не видима.


И͕ естественно͕ если вы захотите обратиться к компонентам на
Data

Module
из других форм͕
необходимо сообщить этим формам о том͕ что этот
Data

Module

и его
Unit

существуют.


Как их связать?

1) Сначала нужно сохранит ваш
проект͕ включая модули главной формы и модуля данных. Не
забываем про имена файлов.

2) Далее заходим в
Unit

главной формы и пишем в разделе
Implementation

ключевое слово
uses

и
указываем имя файла модуля
Data

Module
͕ которое дали ему при сохранении͕ ибо ко
мпилятор будет
искать этот файл на жестком диске.


// Совет͗ измените свойство
Name

у
Data

Module

на что
-
нибудь более короткое͕ типа «
DM
»͕ так
как будем часто обращаться к содержимому этой формы.





MainU

(
MainUnit
)



название модуля главной формы͕ данно
е при сохранении.

DMU (DataModuleUnit)


название

модуля

Data Module
.




Кстати͕ взгляните на скриншот выше. Найдите описание типа нашей формы͗




Сразу можно

определить͕ какие компоненты (и их классы) находятся на форме. Также сюда будут
добавляться объявления наших обработчиков событий (
onClick
,
onChange
).












Перед тем͕ как начать разрабатывать интерфейс СУБД͕ к
Delphi

необходимо установить
дополните
льные сторонние компоненты͕ которые во много раз расширят возможности системы. Этот пакет
называется
Dev
eloper

Express

VCL

build

53

(53


это версия сборки достаточно свежая).

После установки этого пакета и удачного запуска среды
Delphi
͕ у нас появятся но
вые вкладки на
палитре компонентов͗




Компонентов тут огромное множество. Они используются в профессиональной сфере и͕ обычно͕
не распространяются бесплатно.



Но из всего разнообразия мы будем использовать компонент
cxGrid



аналог
dbGrid

из вкладки
Data

Controls
.

cxGrid

настолько сильный компонент͕ что в списке его свойств и методо
в можно потеряться!

Но мы с вами обязаны в этом разобраться!











































Часть 2.
Интерфейс
.


Цель этой инструкции͗

вывести на экран содержимое какой
-
нибудь таблицы. Научиться управлять
указателем в таблице и извлекать данные средствами
Delphi
.


1) Создаем новый проект. Теперь уже такой͕ который будет дополняться от занятия к занятию
нарастающим методом.

И помимо основ
ной формы создаем также модуль данных͕ у которого сразу же
меняем свойство
Name

с
«
DataModule
1
»


на что
-
нибудь более короткое.


2) На модуле данных размещаем компоненты из вкладки
ADO
:


Вкладка
ADO
:

-

ADOConnection



для
соединения приложения с БД͖


-

ADOQuery



для отправки запро
сов к БД и получения результата͖


Вкладка
Data

Access
:


-

DataSource



для преобразования результата
ADOQuery

в понятный для таблиц вид.


Не забываем про имена компонентов. Что бы было ясно сразу͕ для чего они предназначены.




3) Далее

изучаем свойства и методы этих компонентов͕ позволяющие осуществить
соединение
:


Компонент
ADOConnection
:


-

ConnectionString


предложение͕ включающее в себя параметры соединения к БД͕
разделенные точкой с запятой. А для удобства настройки
компонента͕ существует интерфейс. Вызывается
он двойным нажатием по компоненту или кнопке с тремя точками напротив свойств
а͖


-

Connected



включение/
отключение соединения͖


-

LoginPrompt



быстрый логин к БД. Отключает назойливый запрос пароля при включен
ии
Connected

на
true
.


Компонент

ADO
Query
:


-

SQL



главное свойство͕ хранящее запрос к БД͖


-

Connection



указатель на
ADOConnection
;


-

Active



включение набора
данных. Включен не будет͕ если не написать

SQL

запрос и не
указать
Connection
;


-

Open



открытие набора данных. Отправка запроса к БД. Не путать с

обычным

включением (
Active
);


-

ExecSQL



открытие набора

данных. Но в отличие от
Open

не возвращает результата.
Используется при модифицирующих запросах
UPDATE
,
INSERT

или

;


-

Close



закры
тие набора.




Компонент

DataSource
:


-

DataSet



указатель на набор данных
ADOQuery
.


// Если запрос модифицирующий

данные
͕ то он не возвращает результата и͕ следовательно͕ не
требует преобразования этого результата при помощи
DataSource
.
То есть

нет необходимости привязывать
DataSource

к
ADOQuery
͕ если при помощи
ADOQuery

вы отправляете к БД

запросы на
UPDATE
,
INSERT

или
.


4)
Соединяем
ADOConnection

с БД через интерфейс настройки. На первой вкладке выбираем
провайдера. Для баз на основе
MS

Access

2003 используется
JET

4.0

OLE

DB
;

Далее указываем путь к файлу БД. Пользователь͗
Admin
. Пароль пустой. Проверяем соединение͖

Во вкладке «дополнительно» указываем права доступа на
ReadWrite
;

Во вкладке «все» можно указать пароль к БД͕ если он был настроен внутри системы͕ при помощи
параметра
JET

OLEDB

Database

Password
.


В свойстве компонента
ADOQuery

Connection

указываем на компонент соединения.

Далее соединяем
ADOQuery

с
DataSource
.


Отключа
ем проверку пароля и включаем соединение у
ADOConnection
.

И пишем простой
SQL
-
запрос на выборку данных из какой
-
нибудь информативной таблицы͕ типа
список продуктов͕ в соответствующем свойстве
SQL

набора данных. Переставляем
Active

на

true
.
Если
ошибок нет͕

то отправка прошла успешно
и можно просмотреть
результат.


А как этот результат

отобразить?


Переходим на главное окно нашего приложения и перемещаем туда компонент
cxGrid

из вкладки

DevExpress
.


На

компоненте

есть

кнопки
:

-

cxGrid
1;

-

cxGridLevel
1;

-

cxGridTableView
1;

-

Customize
;


Нам нужно настроить отображение информации в таблице. Нажимаем на кнопку
cxGridTableView
1

на самом компоненте и видим͕ что открылся список его свойств. Их много. Самое
главное͕ что нужно сделать сейчас͕ это связать таблицу с источником данных. Ищем свойство
DataSource

в
группе
DataController

и указываем на необходимый источник.




//Что бы убр
ать серую полосу сверху таблицы͕ отключаем параметр в свойствах объекта͗

OptionsView



GroupByBox


Настройки и свойства͕ относящиеся к таблице в целом͕ можно увидеть͕ нажав на кнопку
cxGrid
1
.

5)
После того͕ как набор данных
ADOQuery

был активирован через свойство
Active

и проведена
связь таблицы с
Connection
,

нам нужно как
-
то отобразить информацию.

Жмем на кнопку

Customize

и справа замечаем поле͕ в должны быть отображены поля из набора.
Но их нет. Поэтому жмем на

Fields

и по
лучаем полный список полей из таблицы.

При нажатии на любое из них͕ появится соответствующий набор свойств поля. Можно настроить
ширину колонки в таблице͕ ее заголовок и возможность редактирования. Это все делается на клиентском
приложении͕ следовательно͕

не влияет на базу данных.

Удаляем не нужные для клиента поля из списка͕ редактируем заголовки и нажимаем
Close
.




Запустите приложение и убедитесь͕ что все отлично работает.


Заметили͕ что при выборе поля в таблице его можно сразу изменить? Это плохо.
Нельзя доверять
клиентам. Поэтому зайдите в настойки полей через
Customize

и поставьте у каждого поля

Options
-


Editing

в значение «ложь»͕ запретив изменение колонок.


Отображение сделали. Теперь бы вынести компоненты для редактирования содержимого.


6)
Создайте на интерфейсе отдельную панель и разместите на ней

из вкладки
Data

Controls

компоненты͗


-

DBNavigator



компонент управления указателем в наборе данных и редактирования
данных͖


-

DBEdit



аналог обычного
Edit
͕ только он может привязаться
непосредственно к набору и
отображать значение какой
-
либо выделенной ячейки.


А так же вынесите надписи для отображения названий столбцов.


DBEdit

должно быть столько͕ сколько вы выносите столбцов на отображение информации. При
помощи этого компонента буде
м менять содержимое.

Поэтому
͕ если в вашей таблице имеются поля͕ которые можно редактировать͕ тогда их все же
надо отобразить.













В примере используется таблица продуктов магазина. И интерфейс должен позволить поменять у
них название͕ цену͕ колич
ество единиц товара в коробке и количество товара в остатке на складе.




Не забываем про имена компонентов!


Сейчас наши надписи
label

ничего толкового не отображают. Давайте дадим им нормальные
надписи. Но не вручную͕ а автоматически. Что бы само приложение давало им названия͕ исходя из того͕
как мы назвали заголовки в таблице
cxGrid
.

Следовательно͕ находим нужное событие. Например «пр
и запуске приложения». Такое есть.
Нажимаем на форму и ищем событие «
OnActivate
»͕ которое срабатывает каждый раз͕ когда активируется
экранная форма. А внутри пишем код͕ который присваивает свойствам
Caption

у наших

Label

те значения͕
которые хранятся в заг
оловках таблицы.




Не пугайтесь длинных названий. При вводе назван
ия формы и постановки «точки» вам выпадет
список͕ где выбираем необходимую колонку
cxGrid

и считываем у нее заголовок͕ присваивая нужному
Label
.

Осталось

только

связать

DBEdit

и

DBNavigator

через их свойства

DataSource

к набору данных
(
ADOQuery
)
͕ который использует наша таблица.

После указания набора͕ у компонентов
DBEdit

надо указать столбец
DataField
͕ который будет
отображаться на экране
.




В итоге имеем͗




// Навигатор
может управлять указателем͕ добавлять новые строки͕ сохранять изменения и
удалять их.

// А через компоненты вывода можно редактировать содержимое таблицы.


7) Теперь вынесите на форму не визуальный компонент

MainMenu

из вкладки
Standart

и дважды
кликните п
о нему.

При помощи него можно создавать многоуровневые меню.





Задание для самостоятельной работы͗ Создайте кнопку выхода из приложения.




Приложенные файлы

  • pdf 7811677
    Размер файла: 487 kB Загрузок: 0

Добавить комментарий