Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Работа с двумя транзакциями
|
|||
|---|---|---|---|
|
#18+
Недавно стал работать с Интербейсом через IB - компоненты. В программе работаю двумя транзакциями: одна - для чтения данных, другая - для сохранения. Так вот, когда сохраняю данные через вторую транзакцию(делаю Commit, данные реально появляются в таблице), переоткрываю нужную таблицу через первую транзакцию - данных нет. Если работать через одну транзакцию - все нормально, только приходится переоткрывать все таблицы (при Commit - все закрывается), а их довольно много. Кто-нибудь что-нибудь посоветует? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2002, 10:56 |
|
||
|
Работа с двумя транзакциями
|
|||
|---|---|---|---|
|
#18+
А зачем тебе вообще транзакции????? Так нельзя работать? :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2002, 11:35 |
|
||
|
Работа с двумя транзакциями
|
|||
|---|---|---|---|
|
#18+
tygra - "старый солдат", слушай его, он дело говорит. Транзакции - это только для тех, кто знает, что это такое и как с ними работать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2002, 11:42 |
|
||
|
Работа с двумя транзакциями
|
|||
|---|---|---|---|
|
#18+
А как гарантированно сохранить данные используя серверные процедуры? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2002, 11:51 |
|
||
|
Работа с двумя транзакциями
|
|||
|---|---|---|---|
|
#18+
А что значит гарантированно? Открой в процедуре транзакцию. В конце - закрой. Вот и все. Или ты как-то по-другому сохраняешь? Тогда как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2002, 12:37 |
|
||
|
Работа с двумя транзакциями
|
|||
|---|---|---|---|
|
#18+
У меня приблизительно так: try SP1.ExecProc; //TStoredProc DMForm.IBTransWork.Commit;{ post;} //Транзакция, через которую все работает except DMForm.IBTransWork.Rollback; {CANCEL;} Application.MessageBox() end; Может быть это должно быть не так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2002, 12:51 |
|
||
|
Работа с двумя транзакциями
|
|||
|---|---|---|---|
|
#18+
Я вот не помню - можно ли в InterBase в процедуре открывать транзакцию. Если нет - то тебе перед исполнением SP !!! только нужно ее открыть, а после - закрыть (commit или rollback). И все, а зачем транзакция на чтение? Да и смотря какая процедура - если меняешь значения в одной таблице за раз, то тут транзакция вообще не нужна ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2002, 15:51 |
|
||
|
Работа с двумя транзакциями
|
|||
|---|---|---|---|
|
#18+
Две транзакции - одна на чтение, одна на запись, если их правильно настроить позволяют до минимума снизить вероятность возникновения deadlock и экономить ресурсы сервера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2002, 12:33 |
|
||
|
Работа с двумя транзакциями
|
|||
|---|---|---|---|
|
#18+
Ну, все уверяют, что у InterBase нет deadlock-ов. :)) И с чего бы это транзакция на чтение увеличивала производительность? Не слышал о таком. Слышал об обратном. А я вот прочитал - есть транзакции в InterBase , так что не надо париться с ними из приложения - в процедуре, если надо, открываешь транзакцию, меняешь - добавляешь - удаляешь чего надо, потом закрываешь транзакцию. Вот и все. Зачем еще из вне транзакция - не понятно. Сто лет назад так делали :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2002, 12:39 |
|
||
|
Работа с двумя транзакциями
|
|||
|---|---|---|---|
|
#18+
Так в том и соль, что я именно так и делаю, а переоткрываю таблицы на чтение из другой транзакции - никаких изменений не видать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2002, 09:44 |
|
||
|
Работа с двумя транзакциями
|
|||
|---|---|---|---|
|
#18+
Ты уж напиши с исходниками, как делаешь, а то не понятно. Может и понятно станет, почему не видишь изменения. И Зачем на чтение открывать транзакцию?????????? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2002, 10:54 |
|
||
|
Работа с двумя транзакциями
|
|||
|---|---|---|---|
|
#18+
А все оказалось просто. В IBX компонентах транзакции стартуют с уровнем изоляции concurrency. Поставил в параметрах IBTransaction параметр read_committed - и все стало нормально. Всем большое спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2002, 14:35 |
|
||
|
Работа с двумя транзакциями
|
|||
|---|---|---|---|
|
#18+
Я так и не понял - зачем тебе вообще транзакции на клиенте? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2002, 15:29 |
|
||
|
Работа с двумя транзакциями
|
|||
|---|---|---|---|
|
#18+
А рссскажите, как работать с IBX без транзакций? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2002, 16:15 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=32073912&tid=2119570]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
30ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 12ms |
| total: | 135ms |

| 0 / 0 |
