Работа с базами данных ACCESS через ADO в Delphi


Базы данных Access в Delphi через ADO

ADO (Active Data Objects) — это компонент технологии доступа к данным от Microsoft (MDAC — Microsoft Data Access Components). ADO является универсальным компонентом — данными для него могут быть как таблицы MS Access или серверные базы MS SQL, Oracle, так и Microsoft Active Directory Service, XML-файлы.

  1. В USES необходимо включить модуль ADODB
  2. Для начала работы с ADO, нам необходимо создать простую базу данных в формате Microsoft Access – (test.mtb). (Для того, чтобы не возникало ошибок при редактировании, а именно: иногда нельзя оставлять пустые строки в таблице) при создании базы в Access необходимо в конструкторе таблиц в колонке тип данных / пустые строки – установить в «Да».
  3. Далее создаем форму и помещаем на нее следующие компоненты:
    — TADOConnection(вкладка dbGo)
    — TADOTable(вкладка dbGo)
    — TDataSource (вкладка Data Access) 
    — TDBGrid (вкладка Data Controls)
  4. Устанавливаем следующие свойства для компонентов:

TADOConnection1

Свойство Provider – выбираем Microsoft.Jet.OLEDB.4.0
Свойство LoginPrompt – устанавливаем False

TADOTable1

Свойство Connection – выбираем ADOConnection1

TDataSource1

Свойство DataSet – выбираем ADOTable1

TDBGrid1

Свойство DataSource – выбираем DataSource1

  1. В обработчик события OnFormShow запишем следующее:

{В переменную BaseName записывается путь к базе данных; Переменная ConString – это ConnectionString (строка подключения) – в эту переменную записывается информация где находятся данные и как к ним подключаться. При выборе провайдера необходимо учитывать, что для баз Access — провайдер JET, для MSSQL — OLEDBProviderforSQLserver, а для работы с таблицами Paradox – провайдер Microsoft OLE DB Provider for ODBC drivers.}

Работа с таблицей в Delphi:

Добавить запись:

ADOTable1.Append;

Удалить запись:

ADOTable1.Delete;

Сохранить:

ADOTable1.Post;

Также существует метод ADOTable1.Insert, однако для dBase, FoxPro и Access запись добавляется в конец таблицы.