Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создание инсталлятора 
:(
    Опции темы
mulla
  Дата 18.5.2006, 21:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 16.3.2006

Репутация: нет
Всего: нет



Товарищи, пожалуйста, выручите!
Создал я БД Delphi 7 + Access 2003 через ADO.
Теперь мне надо (просто в обяз) перекинуть на её на комп преподам. Но если я просто exe-к кину, то на их компе появиться сообщение, что не найдена таблица (просто нет связи с прикреплёнными таблицами). Для этого я решил создать Инсталлятор, используя Borland InstallShield Express. Все сделал по инструкции:

Цитата

1.    Выбрал список файлов программы, которые должны быть перенесены на компьютер пользователя: BD.exe и OBdan.mdb.
2.    Создал проект: File -->New -->Project Name and Location -->Имя файла проекта. Структура: Organize Your Setup -->General Information: Product Name, Product Version, INSTALLDIR ([ProgramFiiesFolder]).
3.    Далее: Organize Your Setup -->Setup Types -->Typical.
4.    Выбор устанавливаемых компонентов: Files-->Source computer's files --> Destination computer's files. Поместил я туда: BD.exe и OBdan.mdb.
5.    Какие объекты, например динамические библиотеки или пакеты компонентов, должны быть помещены на компьютер пользователя: Organize Your Setup -->Object/Merge Modules: я поставил галочку только на: ADO Data Control 6.0 и больше нигде!!!
6.    Далее по выбрал место для ярлыка (в меню Пуск-программы).
7.    Установил диалоговые окна (по умолчанию).
8.    Создание образа установочного диска: Prepare for Release --> Build Your Release-->CD_Rom --> Build.
9.    Сохранил проект.


Для проверки я перенёс папку с проектом на другой комп и установил программу, запустив setup.exe.
Программа установилась нормально, НО опять не найдена таблица!

Товарищи, подскажите, может я неправильно создал инсталлятор или не те объекты пометил (п.4 и (или) п.5)?
     

Это сообщение отредактировал(а) mulla - 18.5.2006, 21:43

Присоединённый файл ( Кол-во скачиваний: 9 )
Присоединённый файл  1.jpg 10,50 Kb
PM MAIL   Вверх
Sqlninja
Дата 18.5.2006, 21:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 353
Регистрация: 15.5.2006
Где: San Francisco, CA

Репутация: нет
Всего: 13



А как ADO коннектится к Access? не через ODBC случайно? тогда источник данных (Datasource) надо включить в инсталлятор. 


--------------------
It's better to burn out than to fade away.
PM MAIL WWW ICQ   Вверх
mulla
Дата 18.5.2006, 22:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 16.3.2006

Репутация: нет
Всего: нет



Выберите подключаемые данные:
Поставщики OLE DB:
MS jet 4.0 OLE DB Provider 
PM MAIL   Вверх
Sqlninja
Дата 18.5.2006, 22:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 353
Регистрация: 15.5.2006
Где: San Francisco, CA

Репутация: нет
Всего: 13



В общем, Вам нужно сделать так, чтобы пути к базе были относительными, а не абсолютными. Я вижу 2 варианта решения:

1) Создайте для коннекта переносимый источник данных типа ODBC и переносите его инсталлером.

2) Поместите файлы BD.exe и OBdan.mdb в одну директорию, и выполняйте коннект программно, где путь к базе укажете через ExtractFilePath(Application.ExeName). 


--------------------
It's better to burn out than to fade away.
PM MAIL WWW ICQ   Вверх
mulla
Дата 18.5.2006, 23:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 16.3.2006

Репутация: нет
Всего: нет



Большое спасибо за ответы! 
Цитата

выполняйте коннект программно


Можно пожалуйста уточнить как програмно? 
PM MAIL   Вверх
Palladin
Дата 18.5.2006, 23:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 932
Регистрация: 15.5.2007
Где: Беларусь г.Гомель

Репутация: 1
Всего: 17



Скорее всего у тебя в конектах Аdotable,adoconnection,datasourse указаны полные пути к БД, при переносе на другой камп прога там их и ищет, а поскольку там их нет вот тебе и ошибка, вообщем в конектах стирай всё лишнее, оставляй допустим если прога лежит в папке КУРСАЧ то в конектах прописывай вместо полного пути(только не удаляй ничего другого, там длинная строка с различными параметрами конекта, тебе же нужно изменить лиш путь, найди и измени) ссылку к БД так:

КУРСАЧ\ИМЯ БД.расширение 

тогда прога при запуске будет искать БД в папке с екзешником 


--------------------
Глуп тот кто полагается на истину авторитета, а не на авторитет истины
[color=red]KAV&KIS==Evil[/color]
PM MAIL   Вверх
Sqlninja
Дата 18.5.2006, 23:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 353
Регистрация: 15.5.2006
Где: San Francisco, CA

Репутация: нет
Всего: 13




Цитата(mulla @  18.5.2006,  23:22 Найти цитируемый пост)
Можно пожалуйста уточнить как програмно? 


У меня сейчас нет установленного Delphi на компьютере. Поищите в свойствах и методах TADOConnection. В хелпе все написано.
 


--------------------
It's better to burn out than to fade away.
PM MAIL WWW ICQ   Вверх
froloff3
Дата 29.5.2006, 08:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 5.5.2006

Репутация: нет
Всего: нет



Для работы с использованием ADO на другой машине необходимо формировать свойство CnnectionString на в режиме проектирования приложения, а программно. Для это необходимо воспользоваться компонентом OpenDialog. Для этого сперва посмотри как формируется свойство CnnectionString на этапе проектирования, а далее с использованием компонента OpenDialog получаешь доступ к любой базе данных. Программное формирование CnnectionString (см. как эта строка формируеться на этапе проектирования, фактически необходимо заменить ее кусок с указанием нового пути):
-    необходимо взять кусок строки перед полным путем к БД
-    получить строку к БД при помощи компонента OpenDialog 
-    необходимо взять кусок строки после этого пути
Весь этот код записывается в обработчик события формы (например FormCreate).Листинг прграммы увеличиться строк на 50, но зато программа будет работать на любой машине.
Для того чтобы программа не требовала при каждом запуске указывать путь воспользуйся файлом с расширением INI (переменная TIniFile хелп по этой переменной в Delpi есть)
 Это  в общих чертах.
Все остальное смотри в книге:
Аю Федоров, Н. Елманова  ADO в Delphi БХВ-Петербург 2002 г.

 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.1190 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.