Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 08.07.2010, 22:38
windaws windaws вне форума
Начинающий
 
Регистрация: 28.08.2009
Сообщения: 116
Репутация: 10
По умолчанию Изменения пути к БД

Добрый вечер, имеется приложение в базой access, хочу сделать следующее - в модуле данных у компонента прописан connectionstring с определенным путем к БД, но когда базу переносишь допустим в другую папку то приложение уже неработает, смог сделать в программе только строку в которой нужно указать текущий путь к БД нажать ОК и программа будет работать но после закрытия проги путь не сохраняется, вот тут то и вопрос как сохранить указаный ранее новый путь к БД в программе
Ответить с цитированием
  #2  
Старый 09.07.2010, 00:53
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,096
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

сохранять его в ini-файле (класс TIniFile) или в реестре (TRegistry). примеров полно. читать можно в момент создания модуля данных или главного окна. Записывать, соответственно, при его, окна или датамодуля, уничтожении (или при изменении пользователем - сразу записал и забыл).
Ответить с цитированием
  #3  
Старый 09.07.2010, 16:23
windaws windaws вне форума
Начинающий
 
Регистрация: 28.08.2009
Сообщения: 116
Репутация: 10
По умолчанию

Спасибо, разобрался все работает Чтение поставил на событие OnShow главной формы, когда ставил на OnCreate выдавал ошибку AccessViolation и адреса куда то там
Ответить с цитированием
  #4  
Старый 09.07.2010, 16:50
Аватар для TOJluK
TOJluK TOJluK вне форума
Местный
 
Регистрация: 25.02.2009
Адрес: Минск
Сообщения: 551
Версия Delphi: 2007
Репутация: 110
По умолчанию

Ошибка скорее всего из- за того что форма создается раньше чем компонент БД (скорее всего комполнент бд находиться в DataModule, который создается позже формы). Создай сначала DataModule, потом форму- тогда все будет работать как надо.
ЗЫ это чисто предположение ))
Ответить с цитированием
  #5  
Старый 09.07.2010, 18:58
windaws windaws вне форума
Начинающий
 
Регистрация: 28.08.2009
Сообщения: 116
Репутация: 10
По умолчанию

Цитата:
Сообщение от TOJluK
Ошибка скорее всего из- за того что форма создается раньше чем компонент БД (скорее всего комполнент бд находиться в DataModule, который создается позже формы). Создай сначала DataModule, потом форму- тогда все будет работать как надо.
ЗЫ это чисто предположение ))
Да получается так и есть, ругался как раз на компонент adoconnection из модуля данных. А каким образом создать модуль данных раньше формы?
Ответить с цитированием
  #6  
Старый 09.07.2010, 19:31
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,096
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

не надо его раньше создавать.
надо читать в событии OnCreate именно дата-модуля. Или читать в событии Oncreate главной формы, а устанавливать в том же событии модуля данных. И убери установку пути из OnShow главной формы. А то он будет у тебя ставиться при каждом ее показе - свернул приложение, развернул - он вызывается.
Ответить с цитированием
  #7  
Старый 09.07.2010, 20:29
Аватар для TOJluK
TOJluK TOJluK вне форума
Местный
 
Регистрация: 25.02.2009
Адрес: Минск
Сообщения: 551
Версия Delphi: 2007
Репутация: 110
По умолчанию

Цитата:
Сообщение от lmikle
не надо его раньше создавать.
надо читать в событии OnCreate именно дата-модуля.

Ну да, или так. А то мой вариант немного извращенный! )))
Ответить с цитированием
  #8  
Старый 09.07.2010, 21:33
windaws windaws вне форума
Начинающий
 
Регистрация: 28.08.2009
Сообщения: 116
Репутация: 10
По умолчанию

Цитата:
Сообщение от lmikle
не надо его раньше создавать.
надо читать в событии OnCreate именно дата-модуля. Или читать в событии Oncreate главной формы, а устанавливать в том же событии модуля данных. И убери установку пути из OnShow главной формы. А то он будет у тебя ставиться при каждом ее показе - свернул приложение, развернул - он вызывается.
Благодарю, все исправил
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 19:36.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025