Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.05.22;
Скачать: CL | DM;

Вниз

Как программно указать путь доступа к БД?   Найти похожие ветки 

 
Nikos   (2003-05-03 13:47) [0]

Я создал псевдоним для БД. Указал путь доступа к БД. В ходе работы программы мне необходимо изменить путь, а вернее переключится на другую БД, то есть путь доступа должен измениться. Возможно ли это сделать, ведь БД уже другая?
А суть программы такова. Пользователь из списка выбирает БД, которая ему необходима, при чем количество БД может меняться. После работы с БД, пользователь захочет поработать с другой БД и так далее. При этом разные БД будут находиться по разным путям (пути мне известны). Возможно ли создать один псевдоним, а менять только пути для доступа к этим БД или для каждой нужно создавать собственные псевдонимы? Если придется создавать новый, то подскажите как это можно сделать программным путем?


 
Anatoly Podgoretsky ©   (2003-05-03 13:54) [1]

Используй TDatabase


 
MsGuns ©   (2003-05-03 16:25) [2]

Для настроек алиасов на конкретные папки используй TSession или вообще откажись от алиасов и работай как сказал Anatoly Podgoretsky © (03.05.03 13:54), т.е. в св-ве этого объекта перед открытием БД указывай нужный путь (и не забудь для первого обращения настроить Params)


 
Anatoly Podgoretsky ©   (2003-05-03 16:39) [3]

Мною предложенный путь позволяет использовать оба варианта, и тем более что все остальные компоненты будут пользоваться логическим псевдонимом из TDatabase, не привязываясь к конкретной базе.


 
Nikos   (2003-05-03 18:34) [4]

Не могли бы вы объяснить по подробнее. Как настроить Params и в каком именно свойстве объекта TDatabase задать путь к БД?


 
Anatoly Podgoretsky ©   (2003-05-03 19:01) [5]

Скачай с моего сайта любую программу работы с базами, там сделано именно так, модернизируешь под свои нужды.


 
mukha ©   (2003-05-03 20:51) [6]

Примерно так:
Screen.Cursor:=crHourGlass;
Table1.Close;
Table1.DatabaseName:="Base";
Table1.TableName:="MyBase.db";
Table1.Open;
Screen.Cursor:=crDefault;


 
Nikos   (2003-05-03 22:31) [7]

Anatoly Podgoretsky © а где находится ваш сайт? Не могли бы дать ссылку?


 
sniknik ©   (2003-05-03 22:50) [8]

Nikos (03.05.03 22:31)
> Anatoly Podgoretsky © а где находится ваш сайт? Не могли бы дать ссылку?
а см. прямо в "точку копирайта". ;о)


 
Nikos   (2003-05-04 12:08) [9]

А если у меня есть полный путь, то есть
1 База Данных находится по пути C:\Temp\Base1.db
2 База Данных находится по пути C:\Folder\Base2.db
3 База Данных находится по пути D:\Base3.db
Куда мне вписывать эти пути, чтобы программа смогла обратится к этим БД.


 
MsGuns ©   (2003-05-04 12:34) [10]

Беда многих начинающих, что они путают понятие "база данных" и "таблица БД". Если у тебя твоя "БД" состоит из единственной таблицы, то путь к файлу этой таблицы (.db) указываешь в TableName. Если надо юзать три таблицы в разных каталогах за раз, кладешь 3 TTable и св-вах TableName каждого указываешь пути.
Если таблицы используются попеременно, то каждый раз перед сменой пути закрываешь текущую таблицу, изменяешь путь в св-ве TableName, после чего опять открывешь и работаешь, как и прежде.
Да, кстати, структуры, индексы всех "переключаемых" таблиц должны быть идентичны, если отображаются они все в одном и том же гриде. В противном случае надо перед открытием таблицы чистить коллекцию колонок грида. (RebuildColumns)

Если же БД состоит более, чем из одной таблицы (в большинстве случаев, т.к. любой справочник - уже есть доп.таблица), то все они должны быть в одном каталоге и лучше для ЦЕНТРАЛИЗОВАННОГО доступа к ним юзать компонент TDataBase. Если таких баз несколько экземпляров в разных папках или даже компах, тогда рекомендуется динамически в программе создавать алиас, его настраивать на нужную папку (путь можно брать, к примеру, из ini-файла или дать вводить продвинутому юзеру), а затем к этому алиасу ссылаться из своей TDataBase.
Для динамич.работы с алиасами в BDE используется TSession



Страницы: 1 вся ветка

Текущий архив: 2003.05.22;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.01 c
3-70104
gnat
2003-04-29 06:49
2003.05.22
Shadow для IB


1-70298
R
2003-05-13 03:13
2003.05.22
Быстрый перевод из String в Extended


3-70158
Boroda
2003-04-30 20:03
2003.05.22
Обработка запросов в ADO SQL


14-70431
l2t_guest
2003-04-29 17:18
2003.05.22
Как сэмулировать разрешение экрана не переключая режима?


14-70501
ToT
2003-05-04 17:31
2003.05.22
Как переслать софт со ссылки в инете на своё мыло