Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
IBX под Linux
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_Т.е. для создания стейтмента нужна и транзакция (prepare, execute) и соединение (alloc). И соединение из транзакции не извлекается. и ? В любом случае схема связей древовидная: Соединение->Транзакции->Запросы Запрос работает в какой-то транзакции какого-то соединения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2021, 01:01 |
|
||
|
IBX под Linux
|
|||
|---|---|---|---|
|
#18+
kdvВ любом случае схема связей древовидная: Соединение->Транзакции->Запросы Авотфиг. Двухфазные транзакции по прежнему поддерживаются, так что это треугольник: запрос привязан к соединению, но для выполнения ему нужна транзакция, к которой привязано в том числе и это соединение. Можно даже попытаться выполнить его в транзакции, которая совсем с левого соединения. Будет весело. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2021, 01:11 |
|
||
|
IBX под Linux
|
|||
|---|---|---|---|
|
#18+
kdv Fr0sT-Brutalq := TIBSQL.Create(nil); q.Database := DB; q.Transaction := TIBTransaction.Create(q); вроде как не ошибка, но нафиг такое надо - вообще-то должно быть наоборот - запрос должен принадлежать транзакции. то есть, в коннекте есть транзакциИ, в транзакции есть запросЫ. *исправлено - утро, понедельник, не проснулся еще* Хм, тут неоднозначно - запрос выполнится и останется, а транзакция закроется. АПИ-подход не очень ложится на ООП, т.к. хэндлы создаются и закрываются, а объекты остаются ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2021, 10:22 |
|
||
|
IBX под Linux
|
|||
|---|---|---|---|
|
#18+
Fr0sT-Brutalтут неоднозначно - запрос выполнится и останется, а транзакция закроется. да, запрос может оставаться в prepared-состоянии не будучи привязанным ни к какой транзакции. Ничего страшного. Его можно выполнить в другой транзакции авторАПИ-подход не очень ложится на ООП, т.к. хэндлы создаются и закрываются, а объекты остаются А вот тут мысль неправильная. Если завершается транзакция, то как "экземпляр объекта" она должна кончиться, потому что ее уже не существует. Но ведь никто в здравом уме не уничтожает IBTransaction (например) по ее закрытии. Ну или IBDatabase - в закрытом коннекте ничего не существует, коннекта нет. Так что я тут никакого конфликта не вижу. Поэтому в состоянии Closed хэндла нет, а в Open - хэндл есть. p.s. насчет двухфазных транзакций - это скорее исключение, связанное с "фишкой C", когда в функцию можно передать произвольное количество параметров (хэндлов транзакций). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2021, 10:42 |
|
||
|
IBX под Linux
|
|||
|---|---|---|---|
|
#18+
kdv А вот тут мысль неправильная. Если завершается транзакция, то как "экземпляр объекта" она должна кончиться, потому что ее уже не существует. Но ведь никто в здравом уме не уничтожает IBTransaction (например) по ее закрытии. Ну или IBDatabase - в закрытом коннекте ничего не существует, коннекта нет. Так что я тут никакого конфликта не вижу. Поэтому в состоянии Closed хэндла нет, а в Open - хэндл есть. Ну, тут сама либа диктует структуру. Из sql есть ссылка на транзакцию, а не наоборот. Или ты про то, чтобы отдельно создать транзакцию, ее где-то хранить и присваивать sql-ям? Это ведь надо организовывать хранение. В моей структуре sql:транзакция 1:1, т.ч. иерархия не нарушена, зато кода меньше ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2021, 11:26 |
|
||
|
IBX под Linux
|
|||
|---|---|---|---|
|
#18+
kdvв функцию можно передать произвольное количество параметров (хэндлов транзакций). Хэндлов коннектов. Ибо это коннекты добавляются в транзакцию, а не наоборот. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2021, 12:39 |
|
||
|
IBX под Linux
|
|||
|---|---|---|---|
|
#18+
Fr0sT-Brutal, ну что за ... А как еще узнать, к какой транзакции прилеплен запрос? В каком коннекте работает транзакция? Потому у sql ссылка на ОДНУ транзакцию, а у транзакции - СПИСОК привязанных к ней sql (и у коннекта тоже список транзакций, а не одна, как в тех серверах, которые такое не умеют). Ну посмотри хоть в mon$, там что, запросы первоочередные? Нет mon$attachments->mon$transactions->mon$statements. всё точно так же, как я рассказываю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2021, 13:37 |
|
||
|
IBX под Linux
|
|||
|---|---|---|---|
|
#18+
kdvу транзакции - СПИСОК привязанных к ней sql (и у коннекта тоже список транзакций Не совсем. У транзакции - список курсоров, а не запросов. И список коннектов. Связь коннекты-транзакции это многие-ко-многим. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2021, 13:40 |
|
||
|
IBX под Linux
|
|||
|---|---|---|---|
|
#18+
Странный спор какой-то. Есть соединение, к нему привязаны стейтменты. Чтобы создать (препарировать) стейтмент, нужна транзакция, и чтобы выполнить его - тоже нужна транзакция (не обязательно та, что использовалась при создании). Довольно удобно, когда к объектам типа TIBSQL привязан объект TIBTransaction. Когда транзакция закроется - привязка не уйдет, и когда она снова откроется (на самом деле, внутри TIBTransaction создастся новая транзакция) - не надо ничего снова привязывать, стейтмент автоматически может выполниться уже с новым хэндлом транзакции. Но можно и менять транзакцию стэйтменту, просто переприсвоением объекта TIBTransaction, если это удобно. Не вижу тут никакой особой разницы с принципом работы API. Наоборот, только упрощение и удобство. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2021, 14:40 |
|
||
|
IBX под Linux
|
|||
|---|---|---|---|
|
#18+
kdv Fr0sT-Brutal, ну что за ... А как еще узнать, к какой транзакции прилеплен запрос? В каком коннекте работает транзакция? Потому у sql ссылка на ОДНУ транзакцию, а у транзакции - СПИСОК привязанных к ней sql (и у коннекта тоже список транзакций, а не одна, как в тех серверах, которые такое не умеют). Ну посмотри хоть в mon$, там что, запросы первоочередные? Нет mon$attachments->mon$transactions->mon$statements. всё точно так же, как я рассказываю. А можешь накидать хотя бы примерно кодом свой идеальный вариант? А то что-то я не вкурю, как ты предлагаешь делать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2021, 15:11 |
|
||
|
IBX под Linux
|
|||
|---|---|---|---|
|
#18+
Fr0sT-Brutal, я предложил в том куске кода поменять направленность логики. Не от запроса к транзакции, а наоборот. По связям объектов - чем IBX не устраивает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2021, 15:14 |
|
||
|
IBX под Linux
|
|||
|---|---|---|---|
|
#18+
kdv Fr0sT-Brutal, я предложил в том куске кода поменять направленность логики. Не от запроса к транзакции, а наоборот. По связям объектов - чем IBX не устраивает? Хм. То есть предлагаешь создать тр-ю, создать sql, присвоить тр-ю sql-ю? Можно, конечно... список тр-ий, как я посмотрел, все равно сидит у database внутре. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.04.2021, 16:44 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=40059695&tid=2037438]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
37ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 274ms |
| total: | 393ms |

| 0 / 0 |
