Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Перенос программы на другой компьютер.


Автор: Vladimir_K 9.12.2006, 19:59
Здравствуйте.
Возникла такая проблема. Создал я простенькое приложение для работы с базами данных Paradox (BDE).
Все, в принципе, работает хорошо. Перенес папку с приложением и папки с базами данных на другой компьютер, на котором не установлена Delphi7. Запускаю приложение, пробую открыть базу данных - выдает дикую ошибку.
Установил Delphi7, опять запускаю свою прогу - снова ошибка, но теперь другая, более понятная:
"Unknown database.
Alias: DATABS_d1a."
Не может Delphi найти мои таблицы.
Так что же теперь, заново устанавливать псевдонимы для всех моих 90 баз?
И, получается, без Delphi7 моя программка работать не будет?
Подскажите, пожалуйста, как мне решить эту проблему? Может быть базы надо располагать в каком-то определенном месте при проектировании программы?

Автор: TaNK 9.12.2006, 21:58
Цитата(Vladimir_K @ 9.12.2006,  19:59)
Здравствуйте.
Возникла такая проблема. Создал я простенькое приложение для работы с базами данных Paradox (BDE).
Все, в принципе, работает хорошо. Перенес папку с приложением и папки с базами данных на другой компьютер, на котором не установлена Delphi7. Запускаю приложение, пробую открыть базу данных - выдает дикую ошибку.
Установил Delphi7, опять запускаю свою прогу - снова ошибка, но теперь другая, более понятная:
"Unknown database.
Alias: DATABS_d1a."
Не может Delphi найти мои таблицы.
Так что же теперь, заново устанавливать псевдонимы для всех моих 90 баз?
И, получается, без Delphi7 моя программка работать не будет?
Подскажите, пожалуйста, как мне решить эту проблему? Может быть базы надо располагать в каком-то определенном месте при проектировании программы?

1 - на другом компе не стоит BDE-драйвер
2 - на другом компе не обязателен Delphi если ты не включил галочку build with runtime packages
3 - установи BDE-драйвер и если не хочешь устанавливать на другом компе Delphi7 попробуй работать через алиасы

Автор: dimazu 9.12.2006, 22:37
После(во время) установки BDE на другой комп,
не забудь добавить/открыть alias-ы. 
Они находятся в файле idapi32.cfg (если делал свои).
Обычно в Program Files/Common Items/Borland Shared/BDE или
в чем-то похожем...  smile 

Автор: TaNK 9.12.2006, 22:40
Цитата(dimazu @ 9.12.2006,  22:37)
После(во время) установки BDE на другой комп,
не забудь добавить/открыть alias-ы. 
Они находятся в файле idapi32.cfg (если делал свои).
Обычно в Program Files/Common Items/Borland Shared/BDE или
в чем-то похожем...  smile

C:\Program Files\Common Files\Borland Shared\BDE\idapi32.cfg

Добавлено @ 22:54 
Цитата(Vladimir_K @ 9.12.2006,  19:59)
Здравствуйте.
Возникла такая проблема. Создал я простенькое приложение для работы с базами данных Paradox (BDE).
Все, в принципе, работает хорошо. Перенес папку с приложением и папки с базами данных на другой компьютер, на котором не установлена Delphi7. Запускаю приложение, пробую открыть базу данных - выдает дикую ошибку.
Установил Delphi7, опять запускаю свою прогу - снова ошибка, но теперь другая, более понятная:
"Unknown database.
Alias: DATABS_d1a."
Не может Delphi найти мои таблицы.
Так что же теперь, заново устанавливать псевдонимы для всех моих 90 баз?
И, получается, без Delphi7 моя программка работать не будет?
Подскажите, пожалуйста, как мне решить эту проблему? Может быть базы надо располагать в каком-то определенном месте при проектировании программы?

поищи тут на форуме, кто то не давно выкладывал инсталятор bde-компактненький, и программу для создания дистрибутива программы!

Автор: Centurion 10.12.2006, 06:55
ИМХО нужно сделать инсталятор к приложению который переводится на другой комп (если не хочется устанавливать BDE отдельо)... а можно это сделать шиелдом поставив галочку на против BDE

Добавлено @ 06:58 
Цитата
Создал я простенькое приложение для работы с базами данных Paradox (BDE).

по моему простенькое приложение лучше создавать с ADO (так интереснее smile  )

Автор: TaNK 10.12.2006, 11:50
Цитата(Centurion @ 10.12.2006,  06:55)
ИМХО нужно сделать инсталятор к приложению который переводится на другой комп (если не хочется устанавливать BDE отдельо)... а можно это сделать шиелдом поставив галочку на против BDE

Добавлено @ 06:58 
Цитата
Создал я простенькое приложение для работы с базами данных Paradox (BDE).

по моему простенькое приложение лучше создавать с ADO (так интереснее smile  )

Centurion, с тобой согласен, и переносится легче, хотя была у меня не давно проблеммка в универе,н хотел находиться драйвер Access'a так как я работал по правами пользователя, а не администратора! мне это не понравилось!

Автор: Vladimir_K 10.12.2006, 14:42
Сделал так:
На втором компе удалил Delphi.
Здесь на форуме нашел инсталяшку BDE (bdesetup.exe и bdesetup.w02), установил BDE.
Моя программа находится в папке: D:\Разное\Программирование\Мои проекты Delphi\Мои проекты\My prog v.1.0.0.0\
База находится в папке: "База данных BS_D1", эта папка расположена в том же каталоге где и программа (D:\ ... \My prog v.1.0.0.0\).
В Alias Manager прописал путь к этой базе. 
В событии OnCreate формы добавил строку: Table1.DatabaseName:=ExtractFilePath(Application.ExeName) + 'D:\Разное\Программирование\Мои проекты Delphi\Мои проекты\My prog v.1.0.0.0\';
На первом компе все работает как надо.
Перенес папку "My prog v.1.0.0.0\" на второй комп, запускаю, пробую открыть базу, выдает ошибку:
"Unknown database.
Alias: DATABS_d1a."
Как быть? Как указывать программно alias-ы на мои базы?

P.S. При проектировании проги галочку "build with runtime packages" не ставил.

Автор: TaNK 10.12.2006, 15:37
Цитата(Vladimir_K @ 10.12.2006,  14:42)
Сделал так:
На втором компе удалил Delphi.
Здесь на форуме нашел инсталяшку BDE (bdesetup.exe и bdesetup.w02), установил BDE.
Моя программа находится в папке: D:\Разное\Программирование\Мои проекты Delphi\Мои проекты\My prog v.1.0.0.0\
База находится в папке: "База данных BS_D1", эта папка расположена в том же каталоге где и программа (D:\ ... \My prog v.1.0.0.0\).
В Alias Manager прописал путь к этой базе. 
В событии OnCreate формы добавил строку: Table1.DatabaseName:=ExtractFilePath(Application.ExeName) + 'D:\Разное\Программирование\Мои проекты Delphi\Мои проекты\My prog v.1.0.0.0\';
На первом компе все работает как надо.
Перенес папку "My prog v.1.0.0.0\" на второй комп, запускаю, пробую открыть базу, выдает ошибку:
"Unknown database.
Alias: DATABS_d1a."
Как быть? Как указывать программно alias-ы на мои базы?

P.S. При проектировании проги галочку "build with runtime packages" не ставил.

 а ты в файлике idapi32.cfg
 прописал свои алиасы на втором компе? 

Автор: Vladimir_K 10.12.2006, 15:45
Цитата

а ты в файлике idapi32.cfg
 прописал свои алиасы на втором компе?  
Этого файлика-то на втором компе нет... Пришлось переписывать его с первого компа.
Перенес на второй комп файл "Idapi32.cfg" в папку: C:\Program Files\Common Files\Borland Shared\BDE, правда пришлось создать папку BDE, но вроде бы теперь все базы стали доступны, надо проверять...

В событии OnCreate формы удалил строку: Table1.DatabaseName:=ExtractFilePath(Application.ExeName) + 'D:\Разное\Программирование\Мои проекты Delphi\Мои проекты\My prog v.1.0.0.0\'; работает и без нее.
А попроще никак нельзя все это делать? Чтобы не вручную?
Как создать инсталяшку моей программы, чтобы при установке и BDE устанавливалась, и Idapi32.cfg переписывалась, и все мои базы тоже?

Добавлено @ 15:59 
Цитата(TaNK @  9.12.2006,  22:40 Найти цитируемый пост)
поищи тут на форуме, кто то не давно выкладывал инсталятор bde-компактненький, и программу для создания дистрибутива программы! 

инсталятор bde я нашел, а вот программу для создания дистрибутива программы - что-то никак не найду.

Автор: TaNK 10.12.2006, 17:53
Цитата(Vladimir_K @ 10.12.2006,  15:45)
Цитата

а ты в файлике idapi32.cfg
 прописал свои алиасы на втором компе?  
Этого файлика-то на втором компе нет... Пришлось переписывать его с первого компа.
Перенес на второй комп файл "Idapi32.cfg" в папку: C:\Program Files\Common Files\Borland Shared\BDE, правда пришлось создать папку BDE, но вроде бы теперь все базы стали доступны, надо проверять...

В событии OnCreate формы удалил строку: Table1.DatabaseName:=ExtractFilePath(Application.ExeName) + 'D:\Разное\Программирование\Мои проекты Delphi\Мои проекты\My prog v.1.0.0.0\'; работает и без нее.
А попроще никак нельзя все это делать? Чтобы не вручную?
Как создать инсталяшку моей программы, чтобы при установке и BDE устанавливалась, и Idapi32.cfg переписывалась, и все мои базы тоже?

Добавлено @ 15:59 
Цитата(TaNK @  9.12.2006,  22:40 Найти цитируемый пост)
поищи тут на форуме, кто то не давно выкладывал инсталятор bde-компактненький, и программу для создания дистрибутива программы! 

инсталятор bde я нашел, а вот программу для создания дистрибутива программы - что-то никак не найду.

да таких много прог в инете, не давно кто посоветовал Inno Setup, говорили что не плохая прога!!!! у меня где то валяется на коме, правда я ей не пользовался еще!

Автор: dimazu 10.12.2006, 21:28
Но СВОИ алаясы все равно создавать придется...
Не хочешь переносить руками, сделай так
Код

uses DBIProcs, DBITypes;

procedure AddBDEAlias(
  sAliasName,
  sAliasPath,
  sDBDriver : string );
var
  h : hDBISes;
begin;
  DBIInit( nil );
  DBIStartSession( 'dummy', h, '' );
  DBIAddAlias( nil,
    PChar( sAliasName ),
    PChar( sDBDriver ),
    PChar( 'PATH:' + sAliasPath ),
    True );
  DBICloseSession( h );
  DBIExit;
end;

Используй вот так
Код

AddBDEAlias( 'DATABS_d1a' {Имя алаяса}, 'C:\WORK\DATA'{путь}, 'DBASE'{Kакой драйвер} );


А инсталлятор - идея правильная...  smile 

Автор: SergeBS 11.12.2006, 09:16
Vladimir_K
Наверху ссылки, в одной из них - статья с описанием, по шагам, как правильно ставить BDE и создать алиасы. В чем проблема? И там же кстати - про ситуацию, с которой у тебя все началось. Так что читать FAQи полезно - быстрее бы все сделал.

Centurion
Цитата
по моему простенькое приложение лучше создавать с ADO 

А зачем? С Парадоксом работать - вообще-то уже извращение, а если еще и через ADO - так это извращение в квадрате smile. Тем более что на грабли наступить - гораздо больше возможностей.

Автор: TaNK 11.12.2006, 11:02
Цитата(SergeBS @ 11.12.2006,  09:16)
Vladimir_K
Наверху ссылки, в одной из них - статья с описанием, по шагам, как правильно ставить BDE и создать алиасы. В чем проблема? И там же кстати - про ситуацию, с которой у тебя все началось. Так что читать FAQи полезно - быстрее бы все сделал.

Centurion
Цитата
по моему простенькое приложение лучше создавать с ADO 

А зачем? С Парадоксом работать - вообще-то уже извращение, а если еще и через ADO - так это извращение в квадрате smile. Тем более что на грабли наступить - гораздо больше возможностей.

ну а почему ты считаешь ADO в квадрате, может тогда припишем сюда IB, FB и все остальное, люди вольны выбрать на чем писать, а мы посоветовали ADO, как способ научиться работать с базой локальной, вот и все, а рассуждения, это лучше, это отстой, на этом не пишете, а пишите на чем я пишу - это глупо!

Автор: Centurion 11.12.2006, 12:16
SergeBS
Цитата

А зачем? С Парадоксом работать - вообще-то уже извращение, а если еще и через ADO - так это извращение в квадрате . Тем более что на грабли наступить - гораздо больше возможностей. 

Не согласен с Вами коллега, так как с парадоксом работают многие и по сей день (в нашем случае приложение простенькое и для него не будешь ведь устанавливать Oracle или Мускуль), а что на счет АДО и граблей к ним то "кто ошибается тот и учится многому и учится на исправленных своих ошибках" (не мои слова)... и перенос с одного компа на другой гораздо легче. Ну это выбор прежде всего программера!

Vladimir_K
Цитата

а вот программу для создания дистрибутива программы - что-то никак не найду

Разве Шиелд не входит в дистрибютив с Дельфи???

Добавлено @ 12:28 
TaNK,  да! согласен с ВАми smile 

SergeBS
Цитата

Примечание Vit: с появлением в последющих версиях Дельфи ADO компонентов делает работу с ADO гораздо проще и понятнее ...  
                                                                     Взято из DRKB 2.3  



Автор: SergeBS 11.12.2006, 18:10
TaNK
Centurion
Ну вот, чуть что - сразу в клочья...  Тогда давайте так:
1. Мне по службе приходится регулярно возиться с dbf-никами. Прошу обратить внимание: именно с dbf-никами. Paradox-базу я уж и не помню, когда в последний раз ковырял. Но явно больше 3 лет назад. Это насчет распространенности. Более редкий - Clarion, а дальше совсем экзотика. Это чисто практика - что по районам раскидать, из районов в министерство послать. Уточняю: МОЯ практика. Чтобы опять не рычали.
2. Я всего лишь имел в виду: Парадокс - формат редкий, что бы кто бы ни говорил. Обычная дилемма: либо всечитаемые dbf (но не  db!) или что-то около серверное. Или вообще Excel/Word-порнография.
3. Ну берем Парадокс. Ладно. BDE его скушает легко и быстро - родня как-никак. А вот ADO будет кушать гораздо медленнее и печальнее. Вот потому и ну его - Парадокс+ADO.
Одно редкое, другое по определению - тормоз на локальных БД. 
TaNK
Цитата
ну а почему ты считаешь ADO в квадрате

Я не считаю ADO в квадрате, я считаю, что ADO не место в работе с локальными базами (в качестве основного инструмента, в качестве OLAP - очень ничего smile )

Автор: Vladimir_K 12.12.2006, 20:42
Цитата(Centurion @  11.12.2006,  12:16 Найти цитируемый пост)
Разве Шиелд не входит в дистрибютив с Дельфи???

Просмотрел Дельфи - не нашел Шиелд (Shield?). И в Help'е этот Shield не упоминается.
Что это такое, и с чем его едят? С помощью него можно сделать инсталляшку программы?

Автор: TaNK 12.12.2006, 21:50
имели ввиду InstallShield

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)