Гость
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Read Commited read only в SQL редакторе / 15 сообщений из 15, страница 1 из 1
07.10.2015, 12:50
    #39070492
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Read Commited read only в SQL редакторе
Как можно сделать умолчательным Read Commited read only в SQL Редакторе?
...
Рейтинг: 0 / 0
07.10.2015, 13:48
    #39070647
IBExpert
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Read Commited read only в SQL редакторе
only в SQL Редакторе - никак.
...
Рейтинг: 0 / 0
07.10.2015, 16:55
    #39070982
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Read Commited read only в SQL редакторе
Жалко. А можно сделать? Устал стоять над программистами и по пальцам линейкой бить.
...
Рейтинг: 0 / 0
07.10.2015, 17:09
    #39070993
IBExpert
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Read Commited read only в SQL редакторе
Сделал через блоки событий:

1. Переключаешься на закладку ฺBlocks в Database Explorer.
2. Из контекстного меню выбираешь "Create/Edit event block..."
3. В появившемся окне выбираешь "SQL Editor: On get transaction parameters"
4. Дабл-клик или кнопка "Create block"
5. В редакторе блока вставляешь:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
execute ibeblock (
  DatabaseID variant,
  StatementText variant,
  DefaultParams variant)
returns (
  TransactionParams variant)
as
begin
  --TransactionParams = null;
  TransactionParams = 'isc_tpb_read,isc_tpb_consistency';
end


6. Сохраняешь блок.
7. Профит!

Назначения параметров, полагаю, понятны. Блок вызывается каждый раз перед стартом транзакции в SQL редакторе. Соответственно обновляется селектор уровня изоляции на тулбаре.
Если на выходе null или пустая строка - используются заданные селектором параметры.

Можешь извращаться как угодно, хоть для каждой БД свои параметры задавай. Если нужны еще какие-то входные параметры для блока - могу добавить.

Эксперта надо обновить, само собой.
...
Рейтинг: 0 / 0
07.10.2015, 17:27
    #39071021
IBExpert
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Read Commited read only в SQL редакторе
Уже вижу косяк: селектором уровень изоляции теперь не изменишь. Но это уже завтра. Пока пощупай то, что есть.
...
Рейтинг: 0 / 0
09.10.2015, 17:10
    #39073174
IBExpert
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Read Commited read only в SQL редакторе
Так что, не надо уже?
...
Рейтинг: 0 / 0
09.10.2015, 17:29
    #39073198
Таблоид
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Read Commited read only в SQL редакторе
IBExpert,

надо! Фишка будет весьма полезной, не убирай (не отменяй) новшество, плз.
я этот пост вообще к себе в мемориз затолкал.
...
Рейтинг: 0 / 0
09.10.2015, 17:51
    #39073215
IBExpert
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Read Commited read only в SQL редакторе
А, ну ладно... Я чуть подпилил блок в свежем билде. Теперь туда еще параметр Reason передается.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
execute ibeblock (
  DatabaseID integer,
  StatementText variant,
  DefaultParams variant,
  Reason variant  /* 1 - SQL Editor database changed; 2 - before execute a query  */
)
returns (
  TransactionParams variant)
as
begin
  TransactionParams = null;
  if (Reason = 1) then
    TransactionParams = 'isc_tpb_read,isc_tpb_consistency';
end



При старте SQL редактора блок вызовется с Reason = 1, вот тут можно задать дефолтовое значение. Но пользователь сможет изменить текущий уровень изоляции селектором.
...
Рейтинг: 0 / 0
10.10.2015, 04:46
    #39073402
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Read Commited read only в SQL редакторе
IBExpert,

поправочка - Gallemar спрашивал не про
Код: pascal
1.
TransactionParams = 'isc_tpb_read,isc_tpb_consistency';


а про
Код: pascal
1.
TransactionParams = 'isc_tpb_read,isc_tpb_read_committed,isc_tpb_rec_version';
...
Рейтинг: 0 / 0
10.10.2015, 12:13
    #39073473
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Read Commited read only в SQL редакторе
IBExpertТак что, не надо уже?
Надо
У меня дочь родилась,мне не до TIL :)
...
Рейтинг: 0 / 0
10.10.2015, 14:01
    #39073523
IBExpert
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Read Commited read only в SQL редакторе
GallemarУ меня дочь родилась,мне не до TIL :)

Уважительная причина! Поздравляю! :)
...
Рейтинг: 0 / 0
11.10.2015, 06:28
    #39073770
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Read Commited read only в SQL редакторе
Спасибо
...
Рейтинг: 0 / 0
16.10.2015, 09:51
    #39078302
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Read Commited read only в SQL редакторе
Проверил поделку - всё равно транзакции как read write стартуют при таких настройках:
execute ibeblock (
DatabaseID integer,
StatementText variant,
DefaultParams variant,
Reason variant /* 1 - SQL Editor database changed; 2 - before execute a query */
)
returns (
TransactionParams variant)
as
begin
TransactionParams = null;
if (Reason = 1) then
TransactionParams = 'isc_tpb_read,isc_tpb_read_committed,isc_tpb_rec_version';
end
...
Рейтинг: 0 / 0
16.10.2015, 16:57
    #39078781
IBExpert
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Read Commited read only в SQL редакторе
Поправил косячок. А "поделку" припомню.
...
Рейтинг: 0 / 0
16.10.2015, 17:23
    #39078802
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Read Commited read only в SQL редакторе
IBExpert А "поделку" припомню. Обиду затаишь?
...
Рейтинг: 0 / 0
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Read Commited read only в SQL редакторе / 15 сообщений из 15, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]