![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как в клиентском приложении корректно обработать ситуацию ... [D7, Yaffil]
Cranium © (2003-05-12 20:58:00)Как в клиентском приложении корректно обработать ситуацию когда пользователь пытается открыть таблицу, доступ к которой не имеет... Используются компоненты FIBPLUS
HSolo (2003-05-13 11:25:00) [1]Что-нибудь в таком духе:
try
...
except
if (E is EFIBError) then
with EFIBError(E) do
begin
if SQLCode = ... then ...
...
end;
end;
Zacho (2003-05-13 00:03:00) [2]
> sunrider (12.05.03 23:52)
Ты не совсем прав. Во-первых иногда нужно блокировать именно таблицы. Во-вторых, что такое "активная запись" ? Нет такого термина в рамках РСУБД. А в-третьих речь шла о правах пользователя на доступ к объектам БД. А к блокировкам это не имеет ни какого отношения.
sunrider (2003-05-12 23:52:00) [3]Ты ведь работаешь с клиент-серверной базой данных. А там
обычно таблица не блокируется. Клиент в момент времени имеет
доступ к активной записи, так и происходит commit транзакции.
Блокировка таблицы для таких баз данных не очень хорошо - теряется смысл использования системы клиент - сервер.
Zacho (2003-05-12 22:02:00) [4]
> Cranium © (12.05.03 21:47)
Насчет кода ошибки честно говоря не копенгаген :) , но всегда можно пропарсить текст сообщения об ошибке, например по "no permission for read/select access" или просто по слову "access" и выдать свое сообщение или еще что-нибудь сделать :)
А все-таки я предпочитаю делать приложения так, чтобы юзеру просто были недоступны действия, на которые у него нет прав
Cranium (2003-05-12 21:47:00) [5]Да с обработкой исключительной ситуации все ясно...
Мне нужно получить код ошибки, и соответственно выдать свое сообщение юзеру...
Zacho (2003-05-12 21:10:00) [6]Насчет спечифических фич FIBPlus не знаю, но неужели не подойдет что-то типа
try
Что-то-там.Open;
...
except
...
end;
А еще лучше сделать приложение так, чтобы пользователь просто не видел то, к чему у него нет доступа даже на чтение.