Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.05.22;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.007 c
1-70341
Shadowofman
2003-05-08 17:17
2003.05.22
Как повысить точность TTimer?


1-70234
Dankin
2003-05-11 13:33
2003.05.22
Диалог выбора директории.


1-70311
Spartak
2003-05-08 13:51
2003.05.22
Отобразить процес копирования большого кол -ва файлов


3-70105
AndrewK
2003-04-29 09:53
2003.05.22
Как перехватить исключение из MS SQL сервера?


1-70328
Salvator
2003-05-08 19:21
2003.05.22
Работа с Word





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский