0 / 0 / 0
Регистрация: 29.06.2015
Сообщений: 27
1

Программная настройка ADOConnection

18.03.2017, 15:27. Показов 3263. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Создал DataModule
Разместил ADOConnection название DBConnecter,
ADOQuery название SQLQuery,
и дальше все по стандартной схеме
Написал следующий код:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
var
  //Индикатор выбора пользователя
  URInd: Cardinal;
  //Файл настроек
  Ini: Tinifile;
  //путь к скомпилированному файлу, АДОпровайдер, путь к базе данных, соответственно
  GenDir, Provider, DBPath: String;
begin
  //Определились с путем к приложению
  GenDir:= ExtractFileDir(Application.ExeName);
  //Открыли или создали файл настроек
  Ini:= Tinifile.Create(GenDir + '/Settigs.ini');
  //Индикатору необходимо первоначальное значение
  URInd:= 0;
  //Если пользователь в случае ошибки выберет вариант не настраивать и не перезагружать приложение тогда выходим из цикла
  while URInd <> 7 do
  begin
    //отслеживаем исключения
    try
      //Провайдер для открытия последнего Microsoft Office Access 
      Provider:= 'Provider=Microsoft.ACE.OLEDB.16.0;Data Source=';
      //Получаем путь к базе данных из файла настрое, если этого параметра нет, будем пытаться открыть базу данных в папке приложения
      DBPath:= ini.ReadString('DBSettings', 'path', GenDir + 'DB.accdb');
      //Обращаемся к модулю данных (библиотеку Unit от этого модуля подключил)
      with GeneralDM do
      begin
        //На этом моменте возникает ошибка (настройка ADOConnection)
        BDConnecter.ConnectionString:= provider+DBPath+';Persist Security Info=False;';
        //Подключаемся к базе данных
        BDConnecter.Connected:= True;
        //Отправляем SQL запрос
        SQLQuery.Active:= True;
      end;
    //Выходим из цикла
    break;
    //Если возникла ошибка
    except
      //Фиксируем ошибку
      on E: Exception do
      begin
        //Фиксируем реакцию пользователя на ошибку
        URInd:= MessageDlg(E.ClassName+
          ' Не удолось подключится к базе, код ошибки: '+E.Message+
          ''#13#10#13#10'хотите провести настройку вручную?',
          mtError, [mbYes, mbRetry, mbNo], 0);
        //Корректируем поведение программы
        case URInd of
          //Пользователь решил провести настройку вручную
          6:  if OpenDialog1.Execute then
                begin
                  //Фиксируем базу данных выбранную пользователем в файле настроек
                  ini.WriteString('DBSettings', 'path', OpenDialog1.FileName);
                end;
          //Пользователь решил выйти из программы
          7: Application.Terminate;
        end;
      end;
    end;
  end;
end;
Самое странное что если я компонент настраиваю вручную ошибки не происходит

Добавлено через 3 минуты
Программа с ini взаимодействует и берет корректные значения [Window Title]
Вот код ошибки:
EAccessViolation Access violation at address 004C125F in module 'HelperOkiDoki.exe'. Read of address 00000058

Добавлено через 43 минуты
Один и тот же параметр connectionstring при настройке вручную ошибку не выдает, а программно выдает ошибку, возможно есть какое-то свойство которое я не учел или что-то не так прописываю

Добавлено через 16 минут
Проблема была в том что я пытался обратится к модулю данных на момент создания главной формы приложения, перенес код в процедуру create модуля данных все заработало
0
18.03.2017, 15:27
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.03.2017, 15:27
Ответы с готовыми решениями:

ADOConnection, настройка
Здравствуйте, у меня проблема с ADOConnection. Есть программка, к неи подключена БД(Access), подключена через ConnectionString. Подскажите...

Программная настройка MasterSource и MasterFields
procedure TForm1.ComboBox2Change(Sender: TObject); begin if ComboBox2.ItemIndex = 0 then DBGrid2.DataSource := fDM.DSTovarMainData; ...

Программная настройка BDLookupComboBox
Есть у меня форма с эдитами и BDLookupComboBox-ами. На этой форме я ввожу данные в эдиты и в BDLookupComboBox-ах выбираю определенные...

1
5606 / 4455 / 1081
Регистрация: 29.08.2013
Сообщений: 27,819
Записей в блоге: 3
18.03.2017, 21:55 2
21 строка - а если провайдера такого нет?

30 и 32 строка - нужен отдельный try\except

42 строка - сообщение не нужно, нужно просто передать из функции код ошибки.
передаешь 0 - все нормально и дальше уже работаешь
-1 - неизвестная ошибка
>0 - обрабатываешь
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.03.2017, 21:55
Помогаю со студенческими работами здесь

Программная настройка DCOM
Нужно программно настроить DCOM.Меняю в реестре (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole) настройки настройки в REG_SZ,всё работает ,что...

Программная настройка роутера TP-Link
Доброго времени. У меня такая проблема. delphi xe 10 + indy 10 (idhttp, coockie manager) Пишу программу для автоперенастройки роутера...

Программная настройка начальной страницы
Доброго времени суток.Надобно сделать программное изменение начальной страницы при запуске приложения. В общем модуле пишу следующий код ...

Программная настройка чувствительности микрофона
Добрый день. Опять я. Такой вопрос: как средствами Qt5.x настроить чувствительность микрофона, ибо качество передаваемого звука ужасное....

Программная настройка отбора формы списка
Всем привет! Подскажите пожалуйста, как внешней обработкой задать пользователю отбор в форме списка.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Опции темы

Новые блоги и статьи
Laravel 11: новые возможности, гайд по обновлению
Wired 18.02.2025
Laravel 11 - это новая масштабная версия одного из самых популярных PHP-фреймворков, выпущенная в марте 2024 года. Эта версия продолжает традицию внедрения передовых технологий и методологий. . .
Миграции в Laravel
Wired 18.02.2025
Разработка веб-приложений на Laravel неразрывно связана с управлением структурой базы данных. При работе над проектом часто возникает необходимость вносить изменения в схему базы данных - добавлять. . .
Аутентификация в Laravel
Wired 18.02.2025
В современном мире веб-разработки безопасность пользовательских данных становится критически важным аспектом любого приложения. Laravel, как один из самых популярных PHP-фреймворков, предоставляет. . .
Laravel или Symfony: что лучше для старта?
Wired 18.02.2025
В веб-разработке выбор правильного фреймворка может стать определяющим фактором успеха проекта. Особенно это актуально для PHP - одного из самых распространенных языков программирования, где Laravel. . .
Что нового в Laravel 12
Wired 18.02.2025
С момента своего появления в 2011 году Laravel постоянно развивается, внедряя инновационные решения и совершенствуя существующие возможности. В начале 2025 года ожидается выход Laravel 12 - новой. . .
Роутер в Laravel: как работать с маршрутами
Wired 18.02.2025
Маршрутизация - один из основополагающих элементов любого веб-приложения на Laravel, определяющий как приложение отвечает на HTTP-запросы к различным URL-адресам. По сути, роутинг - это механизм. . .
Интеграция шаблона Bootstrap в Laravel PHP
Wired 18.02.2025
Разработка веб-приложений в современном мире требует не только надежного бэкенда, но и привлекательного, отзывчивого интерфейса. Laravel, как один из самых популярных PHP-фреймворков, отлично. . .
Использование контроллеров и middleware в Laravel PHP
Wired 18.02.2025
Современная веб-разработка требует четкой организации кода и эффективного управления потоком HTTP-запросов. Laravel, как один из ведущих PHP-фреймворков, предоставляет два мощных инструмента для. . .
Фильтрация массива по неточному соответствию элементам другого массива в JavaScript
Wired 18.02.2025
При работе с массивами данных в JavaScript иногда возникает задача поиска и фильтрации элементов по неточному соответствию. В отличие от точного сравнения, когда мы ищем полное совпадение значений,. . .
Создаем SPA Router на чистом JavaScript
bytestream 17.02.2025
В современной веб-разработке одностраничные приложения (SPA) стали стандартом для создания динамичных и отзывчивых пользовательских интерфейсов. Ключевым компонентом любого SPA является роутер -. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru