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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.03.2014, 17:51   #1
kion3
Пользователь
 
Регистрация: 07.03.2014
Сообщений: 27
Вопрос Путь к БД, находящейся в папке программы

Здравствуйте! Мне необходимо сделать чтобы при перемещении моей программы не выдавало ошибки: Не найдена БД (или что-то в это роде).
Прописал код:
Код:
procedure TForm1.FormCreate(Sender: TObject);
Const
  ConnectionString = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s\Database91.mdb;';
begin
 ADOConnection1.ConnectionString := Format(ConnectionString,[ExtractFileDir(ParamStr(0))]);
 ADOConnection1.LoginPrompt := False;
 try
  ADOConnection1.Open;
 except
  on E: Exception do ShowMessage(E.Message);
 end;
end;
Не работает Вылазит ошибка: 'Операция не допускается, если объект открыт'. Что делать? Не могли бы вы помочь с корректировкой кода....

Последний раз редактировалось Stilet; 16.03.2014 в 19:32.
kion3 вне форума Ответить с цитированием
Старый 16.03.2014, 18:08   #2
ReportCube
Форумчанин
 
Аватар для ReportCube
 
Регистрация: 11.03.2011
Сообщений: 426
По умолчанию

Попробуйте перед присвоением строки соединению его закрыть.
ReportCube вне форума Ответить с цитированием
Старый 16.03.2014, 19:00   #3
kion3
Пользователь
 
Регистрация: 07.03.2014
Сообщений: 27
По умолчанию

Цитата:
Сообщение от ReportCube Посмотреть сообщение
Попробуйте перед присвоением строки соединению его закрыть.
То есть так?
ADOConnection1.Connected := False; ???
kion3 вне форума Ответить с цитированием
Старый 16.03.2014, 19:03   #4
ReportCube
Форумчанин
 
Аватар для ReportCube
 
Регистрация: 11.03.2011
Сообщений: 426
По умолчанию

Полагаю, что именно это и нужно сделать. Вы в программе установили значение True в компоненте. При старте приложения пытаетесь изменить значение, не закрыв соединения.
ReportCube вне форума Ответить с цитированием
Старый 16.03.2014, 19:35   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
То есть так?
Да. Так. В самом начале процедуры.
Но лучше конечно же в дизайнере выключить Active
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.03.2014, 20:15   #6
kion3
Пользователь
 
Регистрация: 07.03.2014
Сообщений: 27
По умолчанию

Цитата:
Сообщение от ReportCube Посмотреть сообщение
Полагаю, что именно это и нужно сделать. Вы в программе установили значение True в компоненте. При старте приложения пытаетесь изменить значение, не закрыв соединения.
О дааа.... Наконецто! До меня дошло! Большое спасибо! Всё получилось.
Я прописал эту строчку, но потом БД не отображалась. И затем до меня долшо что и ADOQuery надо поставить в Active-true. Вот и получился финальный код:

procedure TForm1.FormCreate(Sender: TObject);
Const
ConnectionString = 'Provider=Microsoft.Jet.OLEDB.4.0;D ata Source=%s\Database91.mdb;';

begin
ADOConnection1.Connected := False;
ADOConnection1.ConnectionString := Format(ConnectionString,[ExtractFileDir(ParamStr(0))]);
ADOConnection1.LoginPrompt := False;
ADOQuery1.Active := True;

try
ADOConnection1.Open;
except
on E: Exception do ShowMessage(E.Message);
end;

end;

Благодарю вас за помощь
kion3 вне форума Ответить с цитированием
Старый 16.03.2014, 21:02   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
ADOQuery1.Active := True;
Вам повезло. Если это отработало, то дальнейший код уже не нужен. Обычно сначала пытаются приконектиться, а уже потом запросы активизируют
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как узнать путь к папке Program Files Miller-1981 C++ Builder 3 21.07.2012 11:35
Абсолютный путь к файлу/папке Red_Line Общие вопросы по Java, Java SE, Kotlin 0 16.02.2012 22:06
Открыть доступ к папке находящейся на рабочем столе всем пользователям интернет romantik2011 Операционные системы общие вопросы 4 03.08.2011 00:04
Путь к папке в проекте Mr_skiner Общие вопросы Delphi 4 18.05.2011 00:02