Вязание спицами для малышей. Теплые вязаные вещи для самых маленьких, новорожденных.
Случайные записи

Как связать аксесс с делфи


ADO Access DELPHI. Особенности подключения к базе данных

    Доброго времени суток дорогие друзья! В данной статье я хотел бы вот чем поделиться. Как-то возникла необходимость в написании базы данных с использованием ADO ACCESS в DELPHI, которую я успешно реализовал. Впрочем не все получалось гладко, я столкнулся с проблемой настройки пути к своей базе данных, а конкретно настройки свойства ConnectionString компонента ADOConnection.
    Дело в том, что при стандартном подходе к заполнению данного свойства, в поле - источник данных прописывается конкретный путь к базе. Если данный путь заранее известен и будет уверенность в том, что ее местонахождение не будет изменяться то это хорошо, но как быть в случае, когда она в последствии все-таки будет куда-то перемещаться с основной программой?      Ну например, если используя стандартный подход, Вы захотели запустить свой проект с флешки скопировав туда все файлы включая и файл базы данных, или с рабочего стола, то при подключении возникнет ошибка, т.к. сама программа может находиться где угодно, а база данных только по адресу, который вы указали первоначально в поле - источник данных свойства ConnectionString.
    Для демонстрации своего решения, я предлагаю создать новый проект:

1) Поместим на форму компоненты ADOConnection1, ADOTable1, DataSourse1 и DBGrid1 (я в своем примере буду использовать DBGridEh2).


2) Запустим MS Access и создадим какую нибудь простенькую базу данных, не важно какую, например:



    Запомним что имя нашей таблицы - Таблица1. И сохраним ее в папку с исполняемым файлом нашего проекта, в моем случае это:  C:\Users\Пользователь\Documents\Embarcadero\Studio\Projects\Пример\Win32\Debug\Database2.accdb

3) Теперь перейдем к настройке компонентов. Свойство DataSet компонента DataSourse1, устанавливаем в ADOTable1. Свойство DataSourse компонента DBGrid1 устанавливаем в DataSourse1. В свойство TableName компонента ADOTable1 запишем имя нашей таблицы - Таблица1, свойство Connection этого же компонента установим в ADOConnection1, а его свойство Active - оставляем пустым. Переходим к настройке непосредственно самого компонента ADOConnection1, для этого его свойство LoginPrompt обязательно установим в False, а свойства СonnectionString и Connected - оставим пустыми.
 
    Свойства компонентов которые я выделил красным, мы будем задавать "на лету", то-есть программно, например в момент открытия формы. То-есть при запуске программы, с помощью функции ExtractFilePath, мы будем получать адрес расположения нашего экзешника и подставлять его в качестве пути в свойство СonnectionString  компонента  
ADOConnection1 и активируем его установив в True его свойство Connected.
После нам останется только активировать компонент ADOTable1,  программно установив его свойство Active в True.

4) Итак продолжим, кликаем дважды на форме и в ее событии FormCreate прописываем следующий код:

ADOConnection1.ConnectionString:='Provider=Microsoft.ACE.OLEDB.15.0;Data Source='+
 ExtractFilePath(Application.ExeName)+'Db1.accdb;Persist Security Info=False';

ADOConnection1.Connected:=True;

ADOTable1.Active:=True;
  
    Сохраняемся и запускаем проект. Если Вы все действия выполняли внимательно, то в гриде запущенного приложения отобразятся все данные созданной нами базы данных и более того если мы куда нибудь перенесем экзешник с базой, после чего запустим программу,  все будет работать и подключаться корректно.
 
    Отдельно хотелось бы обратить внимание на следующую часть кода:

Provider=Microsoft.ACE.OLEDB.15.0;

данная строчка указывает какой драйвер нужно использовать при подключении к нашей базе данных. По скольку в своем примере я использовал Access 2019, то я выбрал именно этот драйвер, если у Вас более старые версии MS Access, то можно указать драйверы:

Provider=Microsoft.ACE.OLEDB.12.0;

или

Provider=Microsoft.Jet.OLEDB.4.0;

Часть строчки:

Data Source='+ExtractFilePath(Application.ExeName)+'Db1.accdb;

думаю в пояснениях не нуждается, тут мы с помощью ExtractFilePath(Application.ExeName)
получаем адрес экзешника и добавляем к этому пути имя искомой базы. Ну а:

Persist Security Info=False; 

означает, что пароль для подключения к нашей базе мы не используем, иначе эта строчка выглядела бы иначе, например с паролем - 11111111:

Password=11111111;Persist Security Info=True;

    Ну в общем как-то так, всем успехов, надеюсь что для кого нибудь эта статья окажется полезной.

Как подключить Delphi к удаленной базе данных MS Access через Интернет?

Переполнение стека
  1. Около
  2. Продукты
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
.

delphi - Как получить доступ к приватным методам без помощников?

Переполнение стека
  1. Около
  2. Продукты
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
.

Как экспортировать базу данных Access в Excel с помощью Delphi

Переполнение стека
  1. Около
  2. Продукты
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
  4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
  5. Реклама Обратитесь к разработчикам и технологам со всего мира
  6. О компании

Загрузка…

  1. Авторизоваться зарегистрироваться
  2. текущее сообщество

.

Смотрите также

Scroll To Top