Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Delphi 7, подключение к БД, ошибка "Строка задаёт ошибочный путь"  (Прочитано 11090 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
Ягодка
Читатель

ru
Offline Offline

« : 04-03-2013 12:36 » 

Добрый день, уважаемые программисты! Чмок!
База данных, созданная в MS Access 2010 (.mdb) подключается через ADOConnection к Delphi. Дальнейшие манипуляции по добавлению, удалению, редактированию, поиску и т.п. осуществляются через ADOQuery, для отображения данных используются DBGrid. Всё очень красиво и замечательно, всё прекрасно работает, НО... Больше гари - меньше ям Работает всё это только на моём ПК, а на других не хочет (особенно на универском) Отлично
Я честно пыталась этого избежать с помощью вот этого:
Код: (Delphi)
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 - в ней как раз все отчёты. Вот так



Но при каждом вызове запроса я прописывала:
Код:
RvProject10.ProjectFile:=ExtractFilePath (Application.ExeName) +'Reports\Project10.rav';
RvProject10.Execute;
Как же убрать эту мерзопакостную ошибку? Не понял

* 7.jpg (60.53 Кб - загружено 2024 раз.)
* 5.jpg (194.3 Кб - загружено 2110 раз.)
« Последнее редактирование: 06-03-2013 11:53 от Джон » Записан
zubr
Гость
« Ответ #1 : 04-03-2013 12:51 » 

Проблема скорее всего в длинных путях и русских названиях каталогов. Попробуй преобразовывать пути в котроткие - функция GetShortPathName
Записан
Ягодка
Читатель

ru
Offline Offline

« Ответ #2 : 04-03-2013 13:37 » 

Проблема скорее всего в длинных путях и русских названиях каталогов. Попробуй преобразовывать пути в котроткие - функция GetShortPathName
Большое спасибо за отклик! =) Но проблема не в длинных путях и русских названиях, GetShortPathName не спасла...
Записан
sss
Специалист

ru
Offline Offline

« Ответ #3 : 05-03-2013 05:37 » 

Попробуйте всё же обрамить Data Source кавычками Data Source="..."
Записан

while (8==8)
Ягодка
Читатель

ru
Offline Offline

« Ответ #4 : 22-03-2013 12:12 » 

sss, спасибо, стало лучше, раньше выскакивало этих окошек с ошибкой штук 15, а теперь только одно Отлично
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines