Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/18: Рейтинг темы: голосов - 18, средняя оценка - 4.56
 Аватар для Искорка
1 / 1 / 0
Регистрация: 11.02.2013
Сообщений: 31

Delphi 7, подключение к БД, ошибка "Строка задаёт ошибочный путь"

04.03.2013, 16:28. Показов 3375. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, уважаемые программисты!
База данных, созданная в MS Access 2010 (.mdb) подключается через ADOConnection к Delphi. Дальнейшие манипуляции по добавлению, удалению, редактированию, поиску и т.п. осуществляются через ADOQuery, для отображения данных используются DBGrid. Всё очень красиво и замечательно, всё прекрасно работает НО... Работает всё это только на моём ПК, а на других не хочет (особенно на универском) Я честно пыталась этого избежать с помощью вот этого:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
ADOConnection1.Close();
end;
 
procedure TForm1.FormCreate(Sender: TObject);
begin
ADOConnection1.Close();
ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+ExtractFilePath(Application.ExeName)+'it_otdel_duma.mdb;Persist Security Info=False';
Application.HintHidePause:=10000; {время показа всплывающих подсказок в милисекундах}
end;
 
procedure TForm1.FormShow(Sender: TObject);
begin
try
ADOConnection1.Open();
PageControl1.ActivePage := TabSheet1; {текущая вкладка всегда первая - пользователи}
PageControl2.ActivePage := TabSheet9; {текущая вкладка в k-means всегда первая -результаты}
except
ShowMessage ('Не удаётся подключиться к базе: it_otdel_duma.mdb');
Application.Terminate();
end;
end;
Но это меня не спасло, и на "чужих" компах выскакивает ошибка:

Причём надо раз 15 нажать на "ОК" - и приложение запускается и всё работает без нареканий Как избавиться от этой ошибка навсегда? Может быть, это из-за того, что у меня отчёты собраны в отдельную папку (их как раз 14 штук)? Т.е., у меня есть папка "Приложение", в ней БД, приложение и всё что с ним связано, и папка Reports - в ней как раз все отчёты. Вот так:

Но при каждом вызове запроса я прописывала:
Delphi
1
2
RvProject10.ProjectFile:=ExtractFilePath (Application.ExeName) +'Reports\Project10.rav';
RvProject10.Execute;
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.03.2013, 16:28
Ответы с готовыми решениями:

Delphi 7, БД, ошибка "Строка задаёт ошибочный путь"
Помогите пожалуйста, делаю курсовую, сам толком Делфи не учил, делал по туториалу. На другом компьютере выдаёт ошибку с БД, помогите...

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

[ODBC] Строка '(нет данных)' задает ошибочный путь. Проверьте, что путь задан правильно и имеет
Ребят, подскажите, есть программка написанная на Delphi (к исходникам доступа нет :( ). В ней залочено подключение к БД (mdb) через ODBC....

4
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33411 / 21521 / 8236
Регистрация: 22.10.2011
Сообщений: 36,922
Записей в блоге: 12
04.03.2013, 17:40
Путь с пробелом вообще-то лучше заключать в кавычки:
Delphi
1
2
ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source="'
  + ExtractFilePath(Application.ExeName)+'it_otdel_duma.mdb";Persist Security Info=False';
да и вообще, лучше сначала собрать имя файла, а потом - его подставлять в ConnectionString... С ProjectFile та же история.
1
 Аватар для Искорка
1 / 1 / 0
Регистрация: 11.02.2013
Сообщений: 31
04.03.2013, 17:51  [ТС]
UI, а как собрать имя файла?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33411 / 21521 / 8236
Регистрация: 22.10.2011
Сообщений: 36,922
Записей в блоге: 12
04.03.2013, 18:07
Delphi
1
2
3
var FileNameDB : string;
// ...
FileNameDB := ExtractFilePath(Application.ExeName)+'it_otdel_duma.mdb';
, и потом:
Delphi
1
2
ADOConnection1.ConnectionString :=
  Format('Provider=Microsoft.Jet.OLEDB.4.0;Data Source="%s";Persist Security Info=False', [FileNameDB]);
(я предпочитаю всегда использовать Format при составлении сложных строк: вероятность совершить ошибку - гораздо меньше)
1
 Аватар для Искорка
1 / 1 / 0
Регистрация: 11.02.2013
Сообщений: 31
04.03.2013, 18:10  [ТС]
UI, огромное спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.03.2013, 18:10
Помогаю со студенческими работами здесь

Ошибка: "Строка задаёт ошибочный путь"
Можете помочь, чтобы не выдавала ошибку бд при запуске программы

Подключение к Базе *.DB: Строка задает ошибочный путь
Здравствуйте! Нашел на форуме строку подключения к БД *.DB private void Update() { DataSet dSet; ...

Как избавиться от ошибки "Строка задает ошибочный путь"?
Всем привет проблема в следующем я перенёс свою программу с базой данных на другой пк в итоге теперь когда я запускаю файл программы выдаёт...

Ошибочный путь
Выдает ошибочный путь к базе данных access

Ошибочный путь
Здравствуйте, помогите с программой, создал программу на одном компьютере, все работает запуская exe файл на другом компьютере и выдает...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 09.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru