VR
Virtual Reality On-line   Журнал
Новости   |     Журнал    |    Хаkер    |     Магазин   |   Проекты
[   Вход    ]
[Kарта сайтa]

[ Download  ]
[  Конкурс  ]
[ Анекдоты  ]
[  Ссылки   ]
[  Реклама  ]
[ Почтальон ]
[ О проекте ]






TopList
Delphi и базы данных.
Создание базы данных в Access и работа с ней
:
Logo

Я уже расказывал, как работать с такими базами данных в статье "Работа с ADO" в октябре 2000. Сегодня я решил вернутся к этой теме и расказать более подробно, как создавать базы данных и как с ними работать. Я это делаю, потому что все последующие статьи будут работать с базами только через ADO (пока это будет Access, а через пару месяцев я расскажу про MS SQL Server).

Запусти Access и выбери в меню Файл->Создать. В мастере создания базы выбери пункт "База данных" и нажми "ОК". Тебе предложат выбрать имя базы и место расположения, укажи что угодно, а я оставил значение по умолчанию db1.mdb .
Logo
Рис 1. Окно работы с базой данных

После этого Access создаст базу и сохранит её по указанному пути. А ты увидишь окно как на рисунке 1, в котором и происходит работа с базой. Слевой стороны окна находится колонка выбора объектов, с которымы ты хочешь работать. Первым находится пункт "Таблицы" (он выделен по умолчанию) который и будет нас интересовать. Если этот объект у тебя не выделен, то выдели его. В окне справа находится три пункта:

  • Создание таблицы в режиме конструктора
  • Создание таблицы с помощью мастера
  • Создание таблицы путём ввода данных

С помощью этих команд можно создать таблицы внутри нашей, т.е. твоей базы данных. Ты уже должен знать, что в отличии от таблиц Paradox и Foxpro (которые состоят из одной таблицы), базы данных могут хранить в одном файле несколько таблиц.

В это же окно будет добавляться список созданных тобой таблиц. Щёлкни по "Создание таблицы в режиме конструктора" чтобы создать новую таблицу в базе данных. Перед тобой откроется окно, как на рисунке 2.

Logo
Рис 2. Окно создания таблицы

Сверху находится сетка в которой ты вводишь поля таблицы, их тип и описание (последнее не обязательно). Когда ты вписал в сетку имя нового поля и указал тип, внизу окна появляются свойства нового поля. В зависимости от типа поля изменяется и количество свойств. Вот самые основные:

    Logo
    Рис 3. мастер маски
  • Масксимальная длинна поля. Для текстового поля размер не может быть больше 255. Если текст длинее, то надо использовать "Поле Memo".
  • Формат поля. Здесь ты можешь указать внешний вид данных. Например, поле может выглядить как "Yes/No" для логических полей, или например "mm yyyy" для поля даты.
  • Маска ввода. Здесь мы вводим маску, которая отвечает за отображение поля при редактировании. Если ты щёлкнешь на кнопке с точками "..." в строке "Маска ввода", то увидешь мастер, как на рисунке 3.
  • Значение по умолчанию. Умолчание, оно и в африке по умолчанию.
  • Обязательное поле. Если пользователь не введёт сюда значение, то появится сообщение об ошибке. Такое поле не может быть пустым.
  • Пустые строки. Похоже на предыдущий, потому что это поле тоже не может быть пустым.
  • Индексированное поле. Может быть неиндексированным, индексированным с допуском совпадений, и индексированным без допуска совпадений. Основной индекс всегда без допуска совпадений. Остальные желательно с допуском.
  • Сжатие Юникод - позволяет сжать данные в соответствии с Юникод.

Создай шесть полей:

  • Key1 - числовой. Это у нас будет ключик. Размер поля - "Длинное целое". Индексированное поле - "Да (Совпадения не допускаются)".
  • Фамилия - текстовый. Размер поля - 50. Индексированное поле - "Да (Допускаются совпадения)".
  • Имя - текстовый. Размер поля - 50. Индексированное поле - "Да (Допускаются совпадения)".
  • Телефон - текстовый. Размер поля - 10. Индексированное поле - "Да (Допускаются совпадения)".
  • e-mail - текстовый. Размер поля - 20. Индексированное поле - "Да (Допускаются совпадения)".
  • Город - числовой. Размер поля - Длинное целое. Индексированное поле - "Нет".

Помимо этого, у всех полей значение "Обязательно поле" стоит в "Нет", и "Пустые строки" выставлено в "Да".

Теперь выдели первое поле (Key1), щёлкни правой кнопкой мыши и выбери пункт "Ключевое поле".

Создай ещё одну таблицу "Справочник городов" с полями Key1 (числовое, ключевое) и город (текстовое, длинна 50). Сохрани таблицу.

Для открытия для заполнения полей таблицы нужно щёлкнуть на кнопке "Открыть". Для редактирования уже созданной таблицы нужно щёлкнуть на кнопке "Конструктор".

Теперь переходим в Delphi. Создай новый проект. Выбери File->New и создай новый модуль типа "DataModule". Брось на форму DataModule2 компонент ADOConnection из закладки ADO.
Logo
Рис 1. Окно DataModule1

Щёлкни дважды по ADOConnection1. Появится знакомое окно (если ты читал статью в октябрьском номере). Выдели CheckBox "Use Connection String" и нажми кнопку "Build". Появится окно выбора поставщика драыйвера для работы с базой данных. Выбери "Microsoft Jet 4.0 OLE DB Provider". Здесь 4.0 обозначает номер версии и необходим для работы с Access 2000. Если у тебя установлен Office 97, то тебе достаточно версии 3.51. Нажми кнопку "Далее" и выбери в появившемся окне имя базы данных. Нажимай "ОК" и ещё в одном окне "ОК".

Теперь измени у ADOConnection1 свойство LoginPrompt на false, чтобы при коннекте с базой у тебя не запрашивали пароль (всё равно мы его не задали). Теперь можно коннектится к базе, для этього измени свойство Connected на true.

Теперь брось на эту же форму DataSource с закладки "Data Access" и ADOTable с закладки ADO.

У ADOTable установи следующие свойства:

  • Connection - ADOConnection1
  • TableName - "Главная таблица"
  • Active - true

У DataSource1 установи свойство DataSet в ADOTable1. Перейди в форму 1 (Form1). Выбери File->Use Unit и в появившемся окне выбери Unit2, чтобы подключить к Form1 наш модуль DataModule2.

Поставь на форму DBGrid с закладки "Data Controls". Измени его свойства DataSource на "DataModule2.DataSource1". Запускай программу и используй.

Пока хватит. Сегодня мы использовали только первую базу данных. Вторую мы подключим в следующий раз. Удачи.

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


Design by FMk group ©
Copyright©: Horrific aka Флёнов Михаил ©