Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как перестроить Query на другой альяс? [D5, Paradox]


Stocker ! ©   (2002-05-20 10:23:00) 

Имеется запрос который в зависимости от выбранного в меню пункта делает запросы к разным БД. Делаю так ругается EAccessViolationError:
Query.SessionName:="Session1";
Query.Database.AliasName:="Base";


juster   (2002-05-30 10:02:00) [1]

Напрямую работать с сессиями не получиться. Для разных баз можно использовать TSession.GetAliasNames или TSession.GetAliasParams.
к примеру:
var Index : integer;
Path : string;
begin
UniList := TStrsingList.Create;
with Session1 do
begin
Open;
ConfigMode := cmSession;
GetAliasNames(UniList);
if not UniList.Find("WWW",Index) then
AddStandartAlias("WWW","","PARADOX");
UniList.Clear;
UniList.Add("PATH=D:\DB\WWW");
ModifyAlias("WWW", UniList);
UniList.Clear;
GetAliasParams("WWW", UniList);
Close;
end;
end;
Теперь UniList используй для своих целей.
И еще после открытия сессии задается ограничение на использование в сессии только созданных в ней псевдонимов (свойство ConfigMode).


Nikolay M.   (2002-05-20 16:24:00) [2]

1) только, видимо, не "Query.Database.AliasName:=", а "Query.DatabaseName:="
2) а лучше создай несколько экземпляров TDatabase-ов, и переключайся между ними, а не между alias-ами, раз уж приспичило иметь несколько баз...


Наверх

Титульная страница Поиск, карта сайта Написать письмо