powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Read Commited read only в SQL редакторе
15 сообщений из 15, страница 1 из 1
Read Commited read only в SQL редакторе
    #39070492
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как можно сделать умолчательным Read Commited read only в SQL Редакторе?
...
Рейтинг: 0 / 0
Read Commited read only в SQL редакторе
    #39070647
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
only в SQL Редакторе - никак.
...
Рейтинг: 0 / 0
Read Commited read only в SQL редакторе
    #39070982
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Жалко. А можно сделать? Устал стоять над программистами и по пальцам линейкой бить.
...
Рейтинг: 0 / 0
Read Commited read only в SQL редакторе
    #39070993
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделал через блоки событий:

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
Read Commited read only в SQL редакторе
    #39071021
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уже вижу косяк: селектором уровень изоляции теперь не изменишь. Но это уже завтра. Пока пощупай то, что есть.
...
Рейтинг: 0 / 0
Read Commited read only в SQL редакторе
    #39073174
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так что, не надо уже?
...
Рейтинг: 0 / 0
Read Commited read only в SQL редакторе
    #39073198
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpert,

надо! Фишка будет весьма полезной, не убирай (не отменяй) новшество, плз.
я этот пост вообще к себе в мемориз затолкал.
...
Рейтинг: 0 / 0
Read Commited read only в SQL редакторе
    #39073215
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А, ну ладно... Я чуть подпилил блок в свежем билде. Теперь туда еще параметр 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
Read Commited read only в SQL редакторе
    #39073402
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Read Commited read only в SQL редакторе
    #39073473
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpertТак что, не надо уже?
Надо
У меня дочь родилась,мне не до TIL :)
...
Рейтинг: 0 / 0
Read Commited read only в SQL редакторе
    #39073523
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GallemarУ меня дочь родилась,мне не до TIL :)

Уважительная причина! Поздравляю! :)
...
Рейтинг: 0 / 0
Read Commited read only в SQL редакторе
    #39073770
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо
...
Рейтинг: 0 / 0
Read Commited read only в SQL редакторе
    #39078302
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проверил поделку - всё равно транзакции как 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
Read Commited read only в SQL редакторе
    #39078781
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поправил косячок. А "поделку" припомню.
...
Рейтинг: 0 / 0
Read Commited read only в SQL редакторе
    #39078802
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpert А "поделку" припомню. Обиду затаишь?
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Read Commited read only в SQL редакторе
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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