Работа с базами данных в Delphi с помощью ADO

Источник: botsoft

В этой статье только самый минимум сведений, "чтоб работало"...

Берем Microsoft Access, делаем базу данных (этот процесс я описывать не буду, так как, во-первых, каждый умеет, а во-вторых, у меня нет Accessa:). В общем, допустим, что у нас имеется база данных kor.mdb из пяти таблиц. Нам надо вывести одну из них в форму. Итак, ставим на форму компонент ADOConnection с вкладки ADO палитры компонентов, дважды кликаем по свойству ConnectionString появляется окно 'Form1.ADOConnection1 ConnectionString', выбираем второй вариант (Use Connection String) и нажимаем кнопку Build...

Далее выбираем из появившегося списка 'Microsoft Jet 4.0 OLE DB Provider' и переходим на вкладку Подключение. Там вводим путь к нашей базе данных, пользователя и пароль не трогаем (если, конечно, база данных не защищена, а если защищена (был такой опыт), все равно не срабатывает, а говорит, что пароль неверный, но это все лишний гемморой, так что не ставьте пароль просто) и нажимаем Проверить подключение.

Если все отлично, то закрываем эти все окна кнопками ОК и идем дальше.

Вторым действием мы ставим на нашу форму компонент ADOTable с той же вкладки, в свойстве Connection указываем наш ADOConnection1 (можно просто выбрать из выпадающего списка), а теперь дважды кликнем по свойству TableName и должно появиться окно 'Database Login':

- оставляем его пустым и жмем ОК, если все и впрямь ОК, то в выпадающем списке появится список таблиц нашей базы данных

(а свойство Connected компонента ADOConnection1 должно стать True). Выбираем таблицу, которую нам необходимо вывести (обратите внимание, что для вывода каждой таблицы необходим отдельный компонент ADOTable, но ADOConnection для всех один!).

Теперь устанавливаем на форму компонент DataSource со вкладки Data Access. Свойство DataSet этого компонента меняем на ADOTable1 (опять выпадающий список). Ну и наконец, ставим DBGrid с вкладки Data Controls и свойству DataSource присваиваем значение DataSource1. 
Вот и все дела! Стоит теперь у компонента ADOTable1 поменять значение свойства Active на True и в DBGrid отобразится таблица из нашей базы данных. Даже писать ничего не надо.

Примечание 1: Учтите, что иногда при изменениях свойств некоторых компонентов свойство Active автоматом сбрасывается в False, поэтому не забывайте потом опять присваивать ему True.
Примечание 2: Чтобы каждый раз при запуске программы не вылезало окно 'Database Login', установите свойство LoginPrompt компонента ADOConnection равным False.
Примечание 3: Если вы хотите, чтобы в одном компоненте DBGrid отображались данные из нескольких таблиц, либо данные, удовлетворяющие некоторым условиям, вам надо воспользоваться возможностями языка SQL. Для этого вместо компонента ADOTable надо использовать ADOQuery. Набор его свойств аналогичен ADOTable, но нет свойства TableName, зато есть свойство SQL типа TStrings. Например, если свойству SQL присвоить значение 'SELECT * FROM Корреспонденты Города', то в DBGrid будут отображены данные сразу двух таблиц - Корреспонденты и Города. Но SQL - отдельная история и подробно на нем останавливаться я не буду.


Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/home.asp?artId=3147