Базы данных Access в Delphi через ADO
ADO (Active Data Objects) — это компонент технологии доступа к данным от Microsoft (MDAC — Microsoft Data Access Components). ADO является универсальным компонентом — данными для него могут быть как таблицы MS Access или серверные базы MS SQL, Oracle, так и Microsoft Active Directory Service, XML-файлы.
- В USES необходимо включить модуль ADODB
- Для начала работы с ADO, нам необходимо создать простую базу данных в формате Microsoft Access – (test.mtb). (Для того, чтобы не возникало ошибок при редактировании, а именно: иногда нельзя оставлять пустые строки в таблице) при создании базы в Access необходимо в конструкторе таблиц в колонке тип данных / пустые строки – установить в «Да».
- Далее создаем форму и помещаем на нее следующие компоненты:
— TADOConnection(вкладка dbGo)
— TADOTable(вкладка dbGo)
— TDataSource (вкладка Data Access)
— TDBGrid (вкладка Data Controls) - Устанавливаем следующие свойства для компонентов:
TADOConnection1
Свойство Provider – выбираем Microsoft.Jet.OLEDB.4.0
Свойство LoginPrompt – устанавливаем False
TADOTable1
Свойство Connection – выбираем ADOConnection1
TDataSource1
Свойство DataSet – выбираем ADOTable1
TDBGrid1
Свойство DataSource – выбираем DataSource1
- В обработчик события OnFormShow запишем следующее:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
procedure TForm1.FormShow(Sender: TObject); var BaseName, ConString:string; begin BaseName:='test.mdb'; //файл должен находиться в корневом каталоге ConString:='Provider=Microsoft.Jet.OLEDB.4.0;Password="";User ID=Admin;Data Source='+BaseName; //создаем поля таблицы в DBGrid DBGrid1.Columns.Add; DBGrid1.Columns[0].FieldName:='Имя'; DBGrid1.Columns[0].Width:=70; DBGrid1.Columns.Add; DBGrid1.Columns[1].FieldName:='Фамилия'; DBGrid1.Columns[1].Width:=70; DBGrid1.Columns.Add; DBGrid1.Columns[2].FieldName:='Организация'; DBGrid1.Columns[2].Width:=80; DBGrid1.Columns.Add; DBGrid1.Columns[3].FieldName:='Страна'; DBGrid1.Columns[3].Width:=80; AdoConnection1.ConnectionString:=ConString; ADOTable1.TableName:='NewTable'; //указываем название таблицы в базе test.mdb AdoConnection1.Open; AdoTable1.Active:=true; end; |
{В переменную 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 запись добавляется в конец таблицы.