Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.04.2012, 13:39   #1
Devil_Boy
 
Регистрация: 18.10.2010
Сообщений: 8
Вопрос Delphi+Visual FoxPro 9.0

Добрый день!
Нужна большая помощь.
Подключаю я базу(.dbc) к Delphi через ADOConnection c помощью поставщика Microsoft OLE DB Provider for Visual FoxPro, и программа работает, но, если запустить ее на другом компьютере будет ошибка пути к базе, потому что изначально указывается полный путь к базе.
Как указать не полный путь? Расписывать подробней))

Заранее спасибо)
Devil_Boy вне форума Ответить с цитированием
Старый 23.04.2012, 17:30   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

во-первых, на другом компьютере нужно предварительно установить Microsoft OLE DB Provider for Visual FoxPro, он сам по себе в Windows не появляется.

а во-вторых, можно при запуске приложения корректировать ADOConnection.ConnectionString (можете воспользоваться поиском по форуму, это здесь обсуждалось неоднократнейше!)
выглядит это примерно так
Код:
  sDbfPath := ExeFilePath + '\DATA';
  if Pos(' ',sDbfPath) > 0 then sDbfPath := '"'+sDbfPath+'"';
  ADOConnection1.Connected := false;
  ADOConnection1.ConnectionString :=
   'Provider=VFPOLEDB.1;Data Source='+sDbfPath+';'+
    'Mode=Share Deny None;Extended Properties="";User ID="";Password="";Mask Password=False;Cache Authentication=False;Encrypt Password=False;Collating Sequence=MACHINE;DSN=""';
  ADOConnection1.Connected := true;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 23.04.2012, 23:24   #3
Devil_Boy
 
Регистрация: 18.10.2010
Сообщений: 8
По умолчанию

Спасибо.

sDbfPath := ExeFilePath + '\DATA';

sDbfPath я дал тип string? а остальное это что?
Devil_Boy вне форума Ответить с цитированием
Старый 23.04.2012, 23:55   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ну я же показал общий подход. Строка соединения у Вас может быть чуть другая! (можете в инспекторе объектов посмотреть и скопировать вашу строку соединения, а потом заменять нужный путь предложенным мной способом)!

Цитата:
ExeFilePath
- путь, где лежит ваш EXEшник.
а '\DATA' - в моём случае в каталоге с EXEшником был подкаталог (вложенная папка) DATA, где и находились файлы данных.
Если у Вас файлы БД лежат рядом с EXEшником, то ничего прописывать не надо.

да и ещё. не помню, ExeFilePath - это стандартная функция или нет.
поэтому, если с ней будут проблемы, то её легко заменить, на, например,
Код:
  ExtractFilePath(ParamStr(0))
это вернёт полный путь к вашему EXEшнику..


Главное, что Вы должны были почерпнуть из моего поста, это то,
что есть ADOConnection1.ConnectionString - и эту саму строку соединения Вам и надо изменять в run-time (во время работы приложения)!
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Visual FoxPro таблица *stRong* Помощь студентам 16 26.01.2012 14:02
Представления в Visual FoxPro Studbgc Помощь студентам 0 27.12.2011 13:00
Visual FoxPro nulyjarden Помощь студентам 2 14.04.2011 15:08
БД по Visual FoxPro? iron_cross Помощь студентам 0 01.12.2010 09:19
база в Visual FoxPro NoHeart Фриланс 1 02.03.2010 15:19