C++ Builder Работа с базой данных через ADO

Несколько добавок к стандартному дизайну
C++ Builder Работа с базой данных через ADO
 

Hello народ! Сегодня мы будем писать простенькую базу данных в стиле «Мои cd диски». Для начала сделаем скелет проги, aka DBF файл. Для этого создадим новый лист Excel….думаю вы это умеете :) Дальше укажем поля которые будут присутствовать в базе и учтите максимальная длина символов будет такой, какой длины создаваемое поле:

 

VR

После этого сохраняем проект нашей базы в виде dBASE файла:

 

VR

Ну вот в принципе наш dbf-ничек и готов. Преступим к кодингу. Для этого откроем… :) C++ Builder.

Первым делом сохраняем наш проджект. Ну вот….

Теперь идем к вкладке ADO и кидаем на форму компонент ADOConnection . Переходим на вкладку Properties в Object Inspector-е и кликаем по ConnectionString, в открывшемся окне нажимаем кнопку Build и получаем окно Data Link Properties, где и кликаем по пункту Microsoft OLE dB Provider for ODBC Drivers:

 

VR

Сразу после того нас скинет во вкладку Connection, где мы должны указать что используем dBASE. Для этого в Use data source name укажем dBASE Files. Чуть ниже нажав на:

 

VR

Мы с удивлением :) увидим путь до созданного нами DBF-ника. Подтвердив наши действия наши действия нажатием «ОК» вернемся в Object inspector и установим значение Login promt=false

Пробуем подключиться к базе поставив значение Connected = true

Ну вот мы уже имеем подключенную базу данных, осталось дело техники. Создание, редактирование и удаление записей.

Следующим нашим шагом будет просмотр нашей базы. Для этого кидаем компонент ADOTable в той же вкладке ADO и указываем ему два свойства в Object Inspector-е:

Connection	ADOConnection1
Table Name	Должен показать нашу My_CD что и ставим

Пробуем соединиться для чего ставим там же в inspector-e Active = true. Если все прошло гладко значит вы еще на правильном пути :)

Дальше Кидаем на форму компонент DataSource что назодится во вкладке Data Access:

 

VR

И выставляем свойство DataSet равным ADOTable1….Такс теперь уже кидаем компоненту непосредственно для просмотра нашей базы. Переходим к вкладе Data Controls и кидаем на форму два компонента DBEdit, и обычный Label что во вкладке Standart.

Устанавливаем свойства у DBEdit:

DBEdit1 - DataSource = DataSource1 DataField = Name_CD

DBEdit2 - DataSource = DataSource1 DataField = SHORT_CONT

Пустые значения DBLabel это нормально..(ведь база то у нас еще пустая вот и перую запись он дает как пустое поле)…. Теперь кинем на форму 3 Button-a aka три кнопки :) что во вкладке Standard и меняем их названия в свойстве Caption на соответствующие: Добавить, Удалить, Выход.

Осталось расплюнуть… :) добавим кнопки навигации по базе, кнопки сохранения и сделаем для всего этого обработчики событий.

Итак кидаем на форму еще две Button что во вкладке Standart и меняем их названия на «Назад», и «Вперед», а также кидаем кнопку «Сохранить» и «Отмена». В общем получается так:

 

VR

А теперь займемся непосредственно кнопками…..

Для начала делаем двойной клик по кнопке «Добавить». В созданной процедуре пишем ADOTable1->Append(); //Добавляем в базу данных

Кстати все что после // можно и не писать – это комментарий

Дальше делаем двойной клик по кнопке «Удалить» и соответственно: ADOTable1->Delete(); // Удаляем из базы данных

Двойной клик по кнопке «НАЗАД» и пишем: ADOTable1->Prior();

Двойной клик по кнопке «ВПЕРЕД» и пишем: ADOTable1->Next();

Двойной клик по кнопке «Сохранить» и пишем: ADOTable1->Post();

Двойной клик по кнопке «Сохранить» и пишем: ADOTable1->CancelUpdates();

Двойной клик по кнопке «Выход» и пишем:
ADOConnection1->Connected=false;
Application->Terminate();

Уф… :) Чуть не забыл… Кликаем по самой форме и Меняем название формы…например на My_CD Ну вот вроде и все….Желаю удачи экспериментаторам!

Mr_Red aka Switch

P.S.: И кстати первую запись можно добавить если сразу вписать в окошки Edit-ов и нажать «Сохранить», а если еще exe-шник ASPack-ом замучить то вполне маленькая утилитка получится….

Исходники примера забирай здесь



Опубликовал admin
21 Май, Среда 2003г.



Программирование для чайников.