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


Автор: Kirgston 12.6.2008, 01:46
Хммммм вот тут возник такой маленький вопросик. Есть база на АДО. Если я перенесу в другую папку или на другой комп то путь в АДО конект поменяетса и база неоткроетса. Дайте советик как ето исправить? Чтоб любой пользователь без понимания дельфи мог запустить ето все smile

Автор: Данкинг 12.6.2008, 02:02
Действительно, путь поменяетса и база неоткроетса. Потому что в строке подключения ADO надо указывать путь к БД  - обычно относительно EXE-файла программы, которая эту базу открывает. А как это сделать - юзай поиск по форуму, это обсуждалось 
...цать раз.  smile 
ЗЫ: только сейчас дошло: "база на ADO" - это сильно сказано. smile 

Автор: Kirgston 12.6.2008, 08:01
ХЗ ... ищу ищу и немогу найти. Может подскажыте конкретный запрос на поиск? smile А то я так и до японского нового года ненайду  smile 

Автор: pseud 12.6.2008, 10:22
Цитата(Kirgston @  12.6.2008,  01:46 Найти цитируемый пост)
Есть база на АДО

с этого места поподробнее

Автор: Данкинг 12.6.2008, 10:28
Цитата(Kirgston @  12.6.2008,  09:01 Найти цитируемый пост)
Может подскажыте конкретный запрос на поиск? 

http://forum.vingrad.ru/act-Search/CODE/show/searchid-1fd49ecbffea885fd6b93f92786825ac/search_in-posts/result_type/topics/flag/search/highlite/ado/index.html

Автор: Kirgston 12.6.2008, 11:55
База на АДО. ADOConnection, ADOTable, DataSourse, DBGrid. Ну самая обычная база. Просто там прикол в Адо конект прописываетса точный путь к файлу. И тоисть выходит так что при смене папки например C:\ na D:\ база уже нечитаетса. И надо попровлять путь на диск Д. В етом и проблема smile

Автор: pseud 12.6.2008, 12:08
используй ini-файл.
храни там "путь к БД"
при запуске проги зачитывай.
при необходимости (для админа, например) делаешь в проге окно Settings
там даешь возможность менять свойство "путь к БД"

Добавлено через 5 минут и 12 секунд
или же генери путь к базе динамически:

Код

procedure TMainForm.FormCreate(Sender: TObject);
begin
  //........  
  FAppFile := Application.ExeName; // полное имя исполняемого файла проги
  FAppPath := ExtractFilePath(FAppFile); // папка проги
  FDatabasePath := FAppPath + 'DATABASE\'; // папка базы

  ADOConnection.ConnectionString := '.....' + FDatabasePath + '...........';
  ADOConnection.Connect;
  //........  
end;

Автор: Данкинг 12.6.2008, 12:42
Цитата(Kirgston @  12.6.2008,  12:55 Найти цитируемый пост)
База на АДО.

Базы на АДО быть не может, потому что базы на АДО не может быть. smile  smile  smile 

Пример с БД Access (файл kladr.mdb лежит в той же папке, что и программа):

Код

var p,pp:string;
begin
p:=extractfilepath(application.ExeName)+'\kladr.mdb';
pp:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+p+';Persist Security Info=False';
conn.ConnectionString:=pp;
conn.Connected:=true;


Автор: valentos 12.6.2008, 22:17
Используй для подключения UDL файл smile  или кидай базу в папку с екзешником, а в строке подключения указывай тока имя файла (например Baza.mdb)
Цитата(Kirgston @  12.6.2008,  01:46 Найти цитируемый пост)
Есть база на АДО

Дай заюзать smile 

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