Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 07.09.2017
Сообщений: 24
Delphi 6-7

Соединение с БД Access ADOConnection

04.12.2023, 14:37. Показов 960. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Программа - сервер. По задумке, во время запуска должна соединяться с БД Access.
Есть в RemoteDataModule соответствующий компонент. На этапе разработки, строку соединения я сформировал в компоненте, через диалоговое окно. Пришло время переносить программу на другой компьютер. Решил, что текущую папку я сохраню в INI файле и буду читать его при создании модуля данных(при открытии сервера).

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
const AppName = 'OARCardio_srvr';
         DBName  = 'OARCardio_Data.mdb';
...
 
procedure TOARCardioServer.RemoteDataModuleCreate(Sender: TObject);
var DBPath, DBFullName : string;    
    Ini    : TIniFile;
begin 
 Ini := TIniFile.Create(ChangeFileExt(AppName, '.INI' ));  
 DBFullName := Ini.ReadString('DataBase', 'DBSource', RzOpenDialog1.FileName);
 with ADOConnection1 do begin
  Connected:= False;  
  ConnectionString:= 'Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=' + DBFullName + '; Mode=Share Deny None;';
  Connected:= True;
 end;
 Ini.Free;  
end;
Указанный код не работает. Просто клиент виснет, и ничего не происходит.
Пробовал перенести этот код в секцию ADOConnection1BeforeConnect. Там код работает, но! Категорически не читается INI файл. при выборе из Диалога - происходит нормальный коннект, а вот из INIшника данные не читаются. Тот же самый код работает в программе-клиенте, а в сервере - нет. Мб кто знает, может есть ограничения какие-то?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.12.2023, 14:37
Ответы с готовыми решениями:

ADOConnection программное соединение
Всем привет, при добавлении кода поиска пути для ADOConnection выдает ошибку Код из-за которого происходит ошибка, если его убрать, она...

ADOConnection - не работает JET соединение с файлами Access
Почему то в Delphi XE не удается настроить соединение ADOConnection с файлом БД Access используя JET 4.0 и Microsoft Office 12.0 Access...

ADOConnection c Access
При компилировании ошибка не возникает, а при запуске вот такое сообщение появляется(см рисунок). Вот код: AnsiString path =...

10
Модератор
 Аватар для D1973
9924 / 6460 / 2457
Регистрация: 21.01.2014
Сообщений: 27,410
Записей в блоге: 3
04.12.2023, 14:43
Цитата Сообщение от NGPOL Посмотреть сообщение
Ini := TIniFile.Create(ChangeFileExt(AppName, '.INI' ));
Путь к ini-файлу надо указывать полный. Иначе происходит поиск в системной папке (C:\Windows), там нужного инишника нет - ну и до свидания!
1
0 / 0 / 0
Регистрация: 07.09.2017
Сообщений: 24
04.12.2023, 14:53  [ТС]
Хм, наверное, да!
Программа-клиент запускается же из "своей" папки, а сервер - из виндовской... Сейчас поищу, как найти полный путь...
0
Модератор
 Аватар для D1973
9924 / 6460 / 2457
Регистрация: 21.01.2014
Сообщений: 27,410
Записей в блоге: 3
04.12.2023, 15:31
Цитата Сообщение от NGPOL Посмотреть сообщение
Сейчас поищу, как найти полный путь
Delphi
1
Ini := TIniFile.Create(Format('%s%s', [ExtractFilePath(ParamStr(0)), ChangeFileExt(AppName, '.INI' )]));
1
0 / 0 / 0
Регистрация: 07.09.2017
Сообщений: 24
04.12.2023, 18:49  [ТС]
Спасибо ответившим! Но, видимо INI-файл, это не для сервера. Сохраню его параметры(которые пропишет установщик) - в реестре. Работа с ним аналогичная с INI, но "живёт" он всегда в известном месте.
0
 Аватар для Beltar
830 / 444 / 39
Регистрация: 05.05.2022
Сообщений: 3,063
04.12.2023, 19:25
А у сервера своей папки нету что-ли? На хрена в виндовую его ложить?
0
Модератор
 Аватар для D1973
9924 / 6460 / 2457
Регистрация: 21.01.2014
Сообщений: 27,410
Записей в блоге: 3
04.12.2023, 19:44
Цитата Сообщение от NGPOL Посмотреть сообщение
видимо INI-файл, это не для сервера.
INI-файлы - они для всего, им не важно, рабочая станция это или сервер. У Вас точно инишник рядом с екзешником лежит?
0
0 / 0 / 0
Регистрация: 07.09.2017
Сообщений: 24
04.12.2023, 20:49  [ТС]
дело в том, что исполняемый файл сервера лежит в одной папке с INIшником. А вот запускается он - в виндовской папке... Я проверил. Там его(INIшника), понятно дело - нет...
Сейчас боюсь соврать, по-моему в SYSTEM32... Более того, во время создания RemoteDataModule нет объекта Application. Приходится имя исполняемого файла в виде константы вводить. Искать INIшник по системным папкам считаю - нецелесообразным, если есть реестр.
0
пофигист широкого профиля
4769 / 3204 / 862
Регистрация: 15.07.2013
Сообщений: 18,612
06.12.2023, 02:22
Цитата Сообщение от NGPOL Посмотреть сообщение
А вот запускается он - в виндовской папке...
А нафига он там запускается???

Добавлено через 27 минут
Цитата Сообщение от NGPOL Посмотреть сообщение
Более того, во время создания RemoteDataModule нет объекта Application
Это уже что-то странное. Модуль Forms всегда присутствует в списке Uses стандартных проектов.
Надо понимать, что проект не ваш?
0
Модератор
 Аватар для D1973
9924 / 6460 / 2457
Регистрация: 21.01.2014
Сообщений: 27,410
Записей в блоге: 3
06.12.2023, 04:49
Цитата Сообщение от northener Посмотреть сообщение
Модуль Forms всегда присутствует в списке Uses
Нет, не всегда. Посмотрите обычный контейнер для DB-компонентов - TDataModule; он не включает модуль Forms и, по сути, это и не к чему, если все, зачем этот модуль нужен - это получение доступа к объекту TApplication, а тот, в свою очередь, нужен лишь для получения полного имени исполняемого файла проекта, с чем, собственно, прекрасно справится старый добрый ParamStr(0)
Цитата Сообщение от NGPOL Посмотреть сообщение
Приходится имя исполняемого файла в виде константы вводить.
Я же Вам пример привел, где путь к ехе-файлу не зависит от объекта TApplication. Вы что, не попробовали даже? Тогда зачем вообще на форуме вопросы задавать?
0
пофигист широкого профиля
4769 / 3204 / 862
Регистрация: 15.07.2013
Сообщений: 18,612
07.12.2023, 01:20
Цитата Сообщение от D1973 Посмотреть сообщение
Нет, не всегда. Посмотрите обычный контейнер для DB-компонентов - TDataModule
Это да. В TDataModule он нафиг не нужен действительно. Но в стандартном GUI проекте он есть первой строчкой в списке uses самого проекта.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.12.2023, 01:20
Помогаю со студенческими работами здесь

Открытие БД Access с разными правами доступа в ADOConnection
Приветствую! Дано: в сетевой папке лежит access'овская БД. Доступ к папке ограничен. К ней одновременно обращаются с разных компьютеров...

Работа с текстом. Связь MS Access через ADOConnection
Помогите пожалуйста, я новичок в с++ Условия задачи: В программе предусмотреть сохранение вводимых данных в файле и возможность...

Delphi 7 AdoConnection и MS Access. Как составить Connection String?
Итак, проблема заключается в следующем. Имеется несколько компьютеров с программой-клиентом, и программа-сервер. В папке с...

Работа с текстом. Связь MS Access через ADOConnection, DataSource, ADOTable
Помогите пожалуйста у меня выдает ошибку при поиске в бд Условия задачи: В программе предусмотреть сохранение вводимых данных в файле и...

Сумирование по столбцу БД Access с помощью компонентов DBGrid,ADOConnection,ADODataSet
Ребят уже 3 часа я ищу как это сделать и не могу найти , нахожу чтото типо такого Query1->SQL->Text = "SELECT SUM(sum) FROM...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru