Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: СУБД и Delphi/Lazarus

  Все выпуски  

RusFAQ.ru: СУБД и Delphi


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / СУБД и Delphi

Выпуск № 356
от 05.07.2007, 12:05

Администратор:Gh0stik
В рассылке:Подписчиков: 325, Экспертов: 38
В номере:Вопросов: 1, Ответов: 2


Вопрос № 93436: Спасибо за ответ на предыдущий вопрос. Все заработало. Но вот новая проблема. Готовая программа работает только на моем компьютере и только в том каталоге, который указан в алиасе к БД. Пробовал свойству DataBaseName таблиц БД присваивать...

Вопрос № 93.436
Спасибо за ответ на предыдущий вопрос. Все заработало.
Но вот новая проблема.
Готовая программа работает только на моем компьютере и только в том каталоге, который указан в алиасе к БД.
Пробовал свойству DataBaseName таблиц БД присваивать текущий путь к программе в событии BeforeOpen. Вот так:

dbPath := ExtractFilePath(Application.ExeName)+'DATA'; (Все файлы БД в папке "DATA")
Table2.DataBaseName := dbPath;
Table2.Active := True;

Путь вроде прописывается, но при исполнении вылетает ошибка "Cannot perfom this operation on a closed dataset".
Как заставить программу работать в любом каталоге и на любом компьютере? Может есть какие-нибудь другие решения?
Отправлен: 30.06.2007, 11:49
Вопрос задал: Kerseal (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Архангельский Андрей Германович
Здравствуйте, Kerseal!

Во первых не нужно использовать компонент Table
Во-вторых соединение с БД осуществляется компонентом IBDatabase, а все остальные присоединяются к нему
В прикрепленном файле рабочий пример, который строит простое дерево и отображает потомков ветви на Gride и форме

Прикреплённый файл: Загрузить >>
Срок хранения файла на сервере RusFAQ.ru составляет 30 суток с момента отправки ответа.
---------
Если дело заслуживает быть сделаным, то оно заслуживает, чтобы его сделали ХОРОШО

Ответ отправил: Архангельский Андрей Германович (статус: Специалист)
Ответ отправлен: 30.06.2007, 12:31

Отвечает: Виктор Пырлик
Здравствуйте, Kerseal!
Если вы используете BDE, а в случае с локальными таблицами типа Paradox и Dbase это так (исключая работы через ADO). Вам надо устанавливать на всех машинах, где используется программа драйвер BDE. Можно создать инсталляционный пакет, входит в поставку Delphi или, отдельно установить – есть инсталлятор BDE, или, просто скопировать библиотеки из каталога BDE (расположен как правило: C:Program FilesCommon FilesBorlandBDE ), в каталог с программой.

Для удобства, лучше добавить в проект компонент Database1. Шелкнув по нему мышкой – откроется окно. В этом окне произвольно пишем имя базы данных, Driver Name выбираем STANDART и нажимаем кнопку Defaults – сформируются параметры. Первая строка path будет пустой – в неё пишем относительный путь. Всё. Теперь, в таблицах просто выбираем DataBaseName нашу базу.

Обычно, базу открывают при загрузке приложения, или после каких-то проверок. Не желательно это делать в конструкторе, можно определить событие OpenDB, например, в котором проверив путь к базе, если он есть, в цикле открыть таблицы

procedure TForm1.OpenDB;
var i:integer;
begin
for i:=0 to Database1.DataSetCount-1 do
Database1.DataSets[i].Active := true;
end;

и вызвать эту процедуру, например, при открытии формы.

---------
Если ничего не помогло - надо читать инструкцию
Ответ отправил: Виктор Пырлик (статус: 4-ый класс)
Ответ отправлен: 30.06.2007, 12:57


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Email: support@rusfaq.ru, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.52 от 02.05.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное