[ главная ]   [ рейтинг статей ]   [ справочник радиолюбителя ]   [ новости мира ИТ ]



Ответов: 0
25-02-12 07:01







   Web - программирование
PHP


ASP






XML



CSS

SSI





   Программирование под ОС











   Web - технологии








   Базы Данных









   Графика






Данные




Программирование под ОС / C - C++ /

C++ Builder Data base

Здравствуй, сейчас мы займемся, пожалуй, самой распространенной работой программистов, а именно написание базы данных. На первый взгляд это может показаться сложно и немного дико, но если разобраться во всем по-порядку, то писать простые базы ты сможешь уже после прочтения этой статьи. Под понятием ‘простые базы’ я подразумеваю базу табличного вида, а не какую ни будь СУБД типа Oracle, так что, надеяться на то, что этот материал откроет все сложности написания СУБД – не стоит, расценивайте эту статью, как фундамент, опираясь на который можно уже идти вперед… Но чего-то я отвлекся.

Итак, сначала мы определимся, на счет того, что мы хотим создать. Это будет база, в которой можно будет хранить имена и рядом сними комментарии, так сказать, будем создавать ‘базу друзей’ (это название было придумано Darkmaster’ом еще, когда он сам писал подобные базы =) ) . Для начала нам надо будет создать саму базу, для которой мы уже после построим программу.

В создании базы нам поможет утилита - Database Desktop, она входит в стандартный пакет C++ Builder 6, найдите ее и запустите. Пока нечего не трогайте, я сначала объясню некоторые вещи, а уж потом будем жать на кнопочки.… Сперва нам необходимо создать псевдоним (Alias), псевдоним – это условный путь до базы данных, например реальный путь до базы: C:WorkC++ BuilderExample_BD, а псевдоним у нее будет такой Example, делается это ради удобства. Управлять уже созданными псевдонимами можно через утилиту - BDE Administrator, но он нам пока не пригодиться, о нем мы поговорим уже в конце статьи. Давайте создадим свой псевдоним:
Tools -> Alias Manager в появившемся окне нажмите New, в поле Database alias введите наш псевдоним, пусть это будет my_friends, в Drive type оставьте в нем опцию STANDART, в окне Path введите путь до папки, где будет наша программа и сама база (будет гораздо проще, если база и исполняемый файл будет в одном каталоге), все остальное нас устраивает, так что смело жми Keep New и далее Ok :

если у вас стоит ‘защита от дурака’ – то программа поинтересуется: “Точно, точно делать новый псевдоним? Или все-таки не надо?”, отвечаем Ok и поехали дальше. Теперь нам надо создать таблицу (которая, По-сути и представляет нашу базу данных):
File->New->Table, в появившемся окне выбираем Paradox 7 (он устанавливается По-умолчанию), это и есть простая линейная база. Далее перед нами появится окно. В этом окне мы будем задавать имена и свойства полей нашей базы. Имена полей вводятся в File Name, тип – в Type, при записи можно использовать латинские символы. Итак, что нужно нам – три столбца, у первого будет File Name – Friend, тип – Alpha (выбрать можно правой кнопкой мыши) Size – 30 (это длинна или размер), далее жми ентер, в поле Key оставьте чистым и нажмите еще раз ентер, нас перекинет на редактирование второго поля, для него имя Comment, тип такой же, как и в первом, размер сделайте побольше, 60 будет самый раз. И третий столбец будет показывать, сколько всего людей в нашей базе, дайте ему имя - #(решетка), тип – Autoinctement, размер указывать не нужно, он динамический. Все готово, сверься с моим рисунком:

Теперь немного отвлечемся, я расскажу обо всех типах полей:

Alpha – мы уже с ним знакомы, это строка символов, позволяет использовать простой текст.
Number – позволяет использовать 15-значные числа.
Money – позволяет использовать числа в денежном формате. Числа делятся на денежные группы.
Short – цело число из диапазона -32767 до 32767
Long Integer – целое число из диапазона от -2 147 483 648 до 2 147 483 647
Data – позволяет работать с датой
Time – время, выраженное в миллисекундах
Timestamp – время и дата
Memo – строка символов произвольной длинны, или проще – текстовые поля
Formated Memo – тоже что и Memo, только можем указывать тип и размер шрифта и цвет символов
Graphic – графика
Logical – логическое значение истина (true) или ложь (false)
Autoinctement – мы его используем в нашем проекте, это - целое число, при добавлении в таблицу очередной записи увеличивается на один.

Мда написание статей дело утомительное, но ладно, продолжим. Жми Save as. В alias: выбирай наш псевдоним (my_friends), дай имя базе (для удобства дайте имя friends_base), тип файла оставьте Paradox (.db); И в Options: поставь галочку над Display table – это позволит сразу отредактировать нашу базу. См. рисунок:

Это и есть наша база, пока она пуста, давайте изменим это, внесем первую запись – нажими Edit data (рисунок таблица и карандаш). И внесем первую запись. Скорее всего, возникнут проблемы с русскими символами, решается это так:
Edit->Preferenses->Вкладка General->Chande где выберите шрифт с русской поддержкой (Open Type). После этого перезапустите программу, отройте нашу базу (используя псевдоним) и продолжим редактирование. Я не стал менять шрифт и продолжаю вводить латинские символы, создадим первую запись. В столбце Friend введите имя, в столбце Comment комментарий (например - 'он мне должен денег'), поле # оставьте, так как есть.
Кстати, заметьте, что расположение столбцов можно менять. Закройте Database Desktop.

Итак, пора приступить к написанию самой программы-просмотровщика-редактора нашей базы. Запускайте BCB, начните новый проект и сразу сохраните его в туже папку, где лежит наша база. Далее мы поговорим о компонентах, которые обеспечивают доступ к базе.

DataSource – обеспечивает связь между базой и компонентами отображения базы. Он находиться на вкладке data Access, кинь его на форму. Далее передем на вкладку BDE и возьмем компонент Table, это компонент обеспечивающий отображение содержания нашей базы (он только обеспечивает, сам он не отображает), и кинь компонент Query, он нам поможет отсылать запросы базе, т. е добавлятьредактироватьпросматривать, запросы организуются SQL. И перейдя на вкладку Data Control кинь на форму компоненты DBGrid (на нем будут отображаться вся наша база) и компонент – DBNavigator (он поможет редактировать базу). Вот, что должно получится:

И теперь начнем подключать все компоненты, выбери Table и устанавливай в опциях:

Database Name – Имя нашего псевдонима (my_friends, он должен быть в списке)
TabeName – Имя нашей базы (тоже должно быть в списке - friends_base.db)
Active – true;

Отлично, теперь компонент DataSource:
DataSet – выбирай Table1

Компонент Query:
Data Source – DataSource1

В компоненте DBNavigator:
Data Source – DataSource1

В компоненте DBGrid
Data Source – DataSource1

Теперь выбери в DBGrid Columns и нажми на Add all Fields (картинка с предметами на сетке), на вопрос – соглашайся, заметь что теперь все столбцы стали с нашими названиями и появиться информация нашей базы.

Теперь я расскажу, про компонент Query, фактически в этом проекте он нам не нужен и его можно смело удалять. Он может заменить компонент Table, ведь у него такие же функции – он обращается к нашей базе, но использует для этого структурированный язык запросов (SQL). Вот схема работы нашей программы:


Компоненты доступа к данным обращаюься к базе не напрямую, а через процессор баз данных Borland Database Engine (BDE - смотри схему). Ядро BDE образуют динамические библиотеки, реализующие механизмы обмена данными и управления запросами. В состав BDE включены драйвера , обеспечивающие работу с файлами данных форматов Paradox, dBase, FoxPro. Имеются также механизмы подключения драйверов ODBC. Доступ к данным SQL серверов обеспечивает отдельная система драйверов - SQL Links, с его помощью мы можем работать с Oracle, Informix, Sysbase и Interbase.

Вот небольшой пример SQL запросов:

SELECT Имена столбцов
FROM Таблица (путь до базы данных)
WHERE
(критерий)
ORDER BY порядок полей

Вот так будет выглядеть получение информации из нашей базы:

SELECT Friend, Comment, #
FROM ‘:my_friends: friends_base.db’

Обратите внимание на то, как обозначен псевдоним и имя базы. А в коде это выглядит так:

Form1->Query->SQL->Add(“SELECT Friend, Comment, #”);
Form1->Query->SQL->Add(“ FROM ‘:my_friends: friends_base.db’ ”);

В более сложных базах нам всегда придется использовать компонент Query. В общем-то, база готова. Запустите приложение и убедитесь в этом. Записи можно редактировать и добавлять, используя DBNavigator. Вот скриншот моей программы (в базу я внес всех участников www.pcnext.ru):

Как и обещал сейчас пару слов об BDE Administrator. С помощью этой утилиты возможно просмативатьредатирвоать и удалять псевдонимы всех баз, установленных на машине.

Если у тебя что-то не получается или не допонял материал – пиши на наш форум, на е-маил, или стучи ICQ – координаты ты всегда найдешь в разделе команда, мы обязательно поможем и объясним. Да, готовый пример программы, тоже могу выслать любым желающим.




Комментарии

Михаил
26-12-2011   
Спасибо большое автору,
после этих объяснений моё приложение ожило

 Ваш комментарий к данному материалу будет интересен нам и нашим читателям!



Последние статьи: Программирование под ОС / C - C++ /

Пишем CD проигрыватель 2
28-05-2010   

Сейчас я покажу как можно написать простой проигрыватель CD дисков. Для начала разместим все нужные компоненты на форме (см. рисунок)... подробнее

Кол. просмотров: общее - 4119 сегодня - 2

Пишем браузер
28-05-2010   

Продолжаю тему клонирования программ darkamstera на Delphi в С++Builder. В этой статье я покажу, как с помощью стандартных компонентов, можно создать свой браузер. Браузер будет на движке всеми-любимого InternetExplorer. Наш зверь сможет ходить по URL... подробнее

Кол. просмотров: общее - 2898 сегодня - 2

Информация о системе
28-05-2010   

Выводим информацию о нашей родненькой системе. Для получения большей части информации мы будем использовать обширные функции, это не так сложно, как может показатся с первого взгляда и вообще код довольно простой и примитивный, так что покапавшись в нем пару минут - можно в легкостью разобраться что к чему, зачем и как... подробнее

Кол. просмотров: общее - 2923 сегодня - 2

FTP клиент своими руками
28-05-2010   

Здраствуй, сечас я покажу, как в CBuilder можно создать свой простой FTP-клиент, похожий пример можно найти в документации C++Builder Developnets Guilde... подробнее

Кол. просмотров: общее - 3354 сегодня - 5

Работаем с POP-сервером
28-05-2010   

Здраствуй, в этой статье я расскажу про способы получения e-mail писем и их прочтения. Для начала давайте составим интерфейс будущей программы Вот, что у меня вышло... подробнее

Кол. просмотров: общее - 2963 сегодня - 3



  WWW.COMPROG.RU - 2009-2012 | Designed and Powered by Zaipov Renat | Projects