|
Курсор адаптер и работа с ролями
|
|||
---|---|---|---|
#18+
Доброго времени суток. Возник такой вопрос.Есть база данных на Firebird, есть роль User_Pl.Этой роли в таблице Driver, назначены права только для просмотра таблицы. Создаю строку подключения с пользователем имеющим данную роль. Дальше в курсор адаптер выбираю данные из этой таблицы: lodo_DRIVERS = CreateObject("CursorAdapter") With lodo_DRIVERS .Alias = "C_DRIVERS" .DataSourceType = "ODBC" .DataSource = m.lnConnect .BatchUpdateCount = 5 .FetchSize = -1 .SelectCmd = 'SELECT TAB_N, DRIVERFIO, DRIVERDOC, DRIVERLICENZ, KATGA, KATGB, KATGC, KATGD, KATGE, Kontrakt, Nadbavka, Tarif, ID, Adress FROM DRIVERS ORDER BY TAB_N' .KeyFieldList = 'ID' .Tables = 'DRIVERS' .UpdatableFieldList = 'TAB_N, DRIVERFIO, DRIVERDOC, DRIVERLICENZ, KATGA, KATGB, KATGC, KATGD, KATGE, ADRESS, ID, Kontrakt, Nadbavka, Tarif' .UpdateNameList = 'TAB_N DRIVERS.TAB_N,DRIVERFIO DRIVERS.DRIVERFIO,DRIVERDOC DRIVERS.DRIVERDOC,ID DRIVERS.ID,DRIVERLICENZ DRIVERS.DRIVERLICENZ,'; +'KATGA DRIVERS.KATGA,KATGB DRIVERS.KATGB,KATGC DRIVERS.KATGC,KATGD DRIVERS.KATGD,KATGE DRIVERS.KATGE,ADRESS DRIVERS.ADRESS,'; + ' Kontrakt Drivers.Kontrakt, Nadbavka Drivers.Nadbavka, Tarif Drivers.Tarif' .CursorFill() ENDWITH Подскажите пожалуйста как узнать что данная таблица открыта только для чтения. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2011, 16:52 |
|
Курсор адаптер и работа с ролями
|
|||
---|---|---|---|
#18+
Екатерина_ПроявинаПодскажите пожалуйста как узнать что данная таблица открыта только для чтения. Попытаться в нее что-то записать и проанализировать ошибку, если таковая возникнет. По коду ошибки дать развернутое пояснене пользователю, если необходимо. По другому - это должна быть какая-то системная таблица (или функция) в базе Firebird, по содержимому которой можно узнать о статусах таблиц. Я не работал с Firebird, поэтому сказать что именно - не могу. Но это будет запрос вне CursorAdapter. А, собственно, какая Вам разница? Если нет прав на запись, ведь все-равно ничего записать не смогут. Клиент не сможет обойти ограничения сервера к которому подключен. Ну и пусть модифицирует в форме что угодно. Все равно ничего не сохранится... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2011, 20:40 |
|
Курсор адаптер и работа с ролями
|
|||
---|---|---|---|
#18+
Попытаться в нее что-то записать и проанализировать ошибку, если таковая возникнет. По коду ошибки дать развернутое пояснене пользователю, если необходимо. Ошибка возникает,и после этого приходится разрывать соединение. И вот что бы этого не делать,хотелось бы заранее запретить ввод,корректировку и удаление записи для конкретного пользователя. Спасибо за идею с системной таблицей. Попробую посмотреть. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2011, 09:54 |
|
Курсор адаптер и работа с ролями
|
|||
---|---|---|---|
#18+
Спасибо большое за совет по поводу системной таблицы. Есть такая таблица,как RDB$USER_PRIVILEGES в которой хранятся пользователи и то что они могут делать с таблицей. Так что вопрос снят. Еще раз спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2011, 10:52 |
|
Курсор адаптер и работа с ролями
|
|||
---|---|---|---|
#18+
Екатерина_ПроявинаПопытаться в нее что-то записать и проанализировать ошибку, если таковая возникнет. По коду ошибки дать развернутое пояснене пользователю, если необходимо. Ошибка возникает,и после этого приходится разрывать соединение. Зачем соединение-то разрывать? Просто откатываете все сделанные на клиенте изменения (TableRevert()) и продолжаете работать. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2011, 11:27 |
|
Курсор адаптер и работа с ролями
|
|||
---|---|---|---|
#18+
ВладимирМЕкатерина_Проявинапропущено... Ошибка возникает,и после этого приходится разрывать соединение. Зачем соединение-то разрывать? Просто откатываете все сделанные на клиенте изменения (TableRevert()) и продолжаете работать. Спасибо за еще один хороший совет с (TableRevert()). Еще раз понимаешь что надо учится учится и учится. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2011, 12:20 |
|
|
start [/forum/topic.php?fid=41&fpage=67&tid=1584044]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
38ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
others: | 262ms |
total: | 390ms |
0 / 0 |