![]() |
|
![]() ![]() ![]() |
|
mulla |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 16.3.2006 Репутация: нет Всего: нет |
Товарищи, пожалуйста, выручите!
Создал я БД Delphi 7 + Access 2003 через ADO. Теперь мне надо (просто в обяз) перекинуть на её на комп преподам. Но если я просто exe-к кину, то на их компе появиться сообщение, что не найдена таблица (просто нет связи с прикреплёнными таблицами). Для этого я решил создать Инсталлятор, используя Borland InstallShield Express. Все сделал по инструкции:
Для проверки я перенёс папку с проектом на другой комп и установил программу, запустив setup.exe. Программа установилась нормально, НО опять не найдена таблица! Товарищи, подскажите, может я неправильно создал инсталлятор или не те объекты пометил (п.4 и (или) п.5)? Это сообщение отредактировал(а) mulla - 18.5.2006, 21:43 Присоединённый файл ( Кол-во скачиваний: 9 ) ![]() |
|||
|
||||
Sqlninja |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 353 Регистрация: 15.5.2006 Где: San Francisco, CA Репутация: нет Всего: 13 |
А как ADO коннектится к Access? не через ODBC случайно? тогда источник данных (Datasource) надо включить в инсталлятор.
-------------------- It's better to burn out than to fade away. |
|||
|
||||
mulla |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 16.3.2006 Репутация: нет Всего: нет |
Выберите подключаемые данные:
Поставщики OLE DB: MS jet 4.0 OLE DB Provider |
|||
|
||||
Sqlninja |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 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. |
|||
|
||||
mulla |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 16.3.2006 Репутация: нет Всего: нет |
Большое спасибо за ответы!
Можно пожалуйста уточнить как програмно? |
|||
|
||||
Palladin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 932 Регистрация: 15.5.2007 Где: Беларусь г.Гомель Репутация: 1 Всего: 17 |
Скорее всего у тебя в конектах Аdotable,adoconnection,datasourse указаны полные пути к БД, при переносе на другой камп прога там их и ищет, а поскольку там их нет вот тебе и ошибка, вообщем в конектах стирай всё лишнее, оставляй допустим если прога лежит в папке КУРСАЧ то в конектах прописывай вместо полного пути(только не удаляй ничего другого, там длинная строка с различными параметрами конекта, тебе же нужно изменить лиш путь, найди и измени) ссылку к БД так:
КУРСАЧ\ИМЯ БД.расширение тогда прога при запуске будет искать БД в папке с екзешником -------------------- Глуп тот кто полагается на истину авторитета, а не на авторитет истины [color=red]KAV&KIS==Evil[/color] |
|||
|
||||
Sqlninja |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 353 Регистрация: 15.5.2006 Где: San Francisco, CA Репутация: нет Всего: 13 |
У меня сейчас нет установленного Delphi на компьютере. Поищите в свойствах и методах TADOConnection. В хелпе все написано. -------------------- It's better to burn out than to fade away. |
|||
|
||||
froloff3 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 5.5.2006 Репутация: нет Всего: нет |
Для работы с использованием ADO на другой машине необходимо формировать свойство CnnectionString на в режиме проектирования приложения, а программно. Для это необходимо воспользоваться компонентом OpenDialog. Для этого сперва посмотри как формируется свойство CnnectionString на этапе проектирования, а далее с использованием компонента OpenDialog получаешь доступ к любой базе данных. Программное формирование CnnectionString (см. как эта строка формируеться на этапе проектирования, фактически необходимо заменить ее кусок с указанием нового пути):
- необходимо взять кусок строки перед полным путем к БД - получить строку к БД при помощи компонента OpenDialog - необходимо взять кусок строки после этого пути Весь этот код записывается в обработчик события формы (например FormCreate).Листинг прграммы увеличиться строк на 50, но зато программа будет работать на любой машине. Для того чтобы программа не требовала при каждом запуске указывать путь воспользуйся файлом с расширением INI (переменная TIniFile хелп по этой переменной в Delpi есть) Это в общих чертах. Все остальное смотри в книге: Аю Федоров, Н. Елманова ADO в Delphi БХВ-Петербург 2002 г. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Базы данных и репортинг" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |