Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.06.2015, 09:34   #1
Kazik
Форумчанин
 
Регистрация: 27.05.2009
Сообщений: 192
По умолчанию Неверный путь к файлу базы

Добрый день дорогие форумчане. При написании программы возникла проблема:
База: MS Access
Технология: ADO
Используя компонент ADOConecction строю строку к базе данных. Путь указан явно (именно в папке с программой), т.е. нет разницы, где лежит программа. Программа запускается при старте Windows и сразу выдает ошибку типа: "Не могу найти файл: "путь в какую либо системную папку (как правило "system32" или "WOW64")". В чем может быть проблема?
Kazik вне форума Ответить с цитированием
Старый 08.06.2015, 09:47   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Цитата:
В чем может быть проблема?
Ну наверно путь не правильно задан или доступа нет по заданному пути
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 08.06.2015, 10:11   #3
Kazik
Форумчанин
 
Регистрация: 27.05.2009
Сообщений: 192
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Ну наверно путь не правильно задан или доступа нет по заданному пути
Код:
Provider=Microsoft.Jet.OLEDB.4.0;
User ID=Admin;
Data Source=main.mdb;
Mode=Share Deny None;
Jet OLEDB:System database="";
Jet OLEDB:Registry Path="";
Jet OLEDB:Database Password="";
Jet OLEDB:Engine Type=5;
Jet OLEDB:Database Locking Mode=1;
Jet OLEDB:Global Partial Bulk Ops=2;
Jet OLEDB:Global Bulk Transactions=1;
Jet OLEDB:New Database Password="";
Jet OLEDB:Create System Database=False;
Jet OLEDB:Encrypt Database=False;
Jet OLEDB:Don't Copy Locale on Compact=False;
Jet OLEDB:Compact Without Replica Repair=False;
Jet OLEDB:SFP=False;
вот строка подключения...Data Source=main.mdb; говорит о том, что базу нужно искать в папке с программой.

Последний раз редактировалось Stilet; 08.06.2015 в 13:06.
Kazik вне форума Ответить с цитированием
Старый 08.06.2015, 11:22   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Цитата:
Data Source=main.mdb; говорит о том, что базу нужно искать в папке с программой
Не-а. Говорит о том, что файл искать в текущем каталоге. А он не обязан совпадать с каталогом программы. А здесь видимо автозапуск, то он и не совпадает
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 08.06.2015, 11:33   #5
Kazik
Форумчанин
 
Регистрация: 27.05.2009
Сообщений: 192
По умолчанию

Код:
reg := tregistry.create;
  reg.rootkey := hkey_local_machine;
  reg.lazywrite := false;
  reg.openkey('software\microsoft\windows\currentversion\run', false);
  reg.writestring('Alert', application.exename); 
  reg.closekey;
  reg.free;
вот код добавления в автозагрузку. с ним что-то не так?
может лучше так прописывать?
Код:
reg.writestring('Alert', ExtractFilePath(application.exename));
Kazik вне форума Ответить с цитированием
Старый 08.06.2015, 12:08   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Цитата:
может лучше так прописывать?
А в проге нормально сделать? Не считая того, что куча параметров излишни
Код:
  s:='Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=%smain.mdb;'+
     'Mode=Share Deny None;Jet OLEDB:System database="";Jet OLEDB:Registry Path="";'+
     'Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;'+
     'Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;'+
     'Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;'+
     'Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don''t Copy Locale on Compact=False;'+
     'Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False';
  ADOConnection1.ConnectionString:=Format(s,[ExtractFilePath(Application.ExeName)]);
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Путь к файлу prosto_virus Помощь студентам 4 19.02.2015 22:33
Неверный путь к файлу adr JavaScript, Ajax 0 12.01.2010 13:28
Путь к файлу Belokuraya Microsoft Office Excel 17 12.08.2009 17:30
Путь к файлу Slash Общие вопросы Delphi 3 27.11.2008 14:02
Путь к файлу Баламут Win Api 12 14.05.2008 13:27