Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.01.23;
Скачать: CL | DM;

Вниз

Refresh   Найти похожие ветки 

 
IBChaynik   (2004-12-16 14:03) [0]

Здравствуйте, мастера. Две программы изменяют таблицу IB, как мне сделать чтобы одна программа нажимая кнопку refresh увидела изменения другой программы?


 
DenK_vrtz ©   (2004-12-16 14:07) [1]

DataSet.close;
DataSet.open;


 
msguns ©   (2004-12-16 14:17) [2]

>DenK_vrtz ©   (16.12.04 14:07) [1]

Этого недостаточно.


 
DenK_vrtz ©   (2004-12-16 14:24) [3]

>Этого недостаточно

Сергей, а чего дальше не продолжить?
Ты всегда популярно объясняешь :)


 
IBChaynik   (2004-12-16 14:28) [4]

это не работает. Можно
DataBase.Connected:=false;
DataBase.Connected:=true;
но это уж слишком


 
stud ©   (2004-12-16 14:31) [5]

для этого первая программа должна подтрведить сделанные изменения, а вторая перечитать данные


 
Zacho ©   (2004-12-16 14:36) [6]

IBChaynik   (16.12.04 14:28) [4]

Читать http://www.ibase.ru/devinfo/ibtrans.htm до полного просветления


 
msguns ©   (2004-12-16 14:53) [7]

>DenK_vrtz ©   (16.12.04 14:24) [3]
Для IB недостаточно. И для любых других СУБД, использующих транзакции.
В транзакциях есть такая штука, как уровень изоляции. Вот от этого уровня (в том числе) и зависит "видимость" в НД изменений, выполненных другими запросами к серверу (как со своего компа, так и с других). Хотя переоткрывать НД все равно придется.

А вообще-то Игорь правильно в урл послал. Там достаточно хорошо об этом писано. Не вижу смысла повторяться.


 
DenK_vrtz ©   (2004-12-16 14:59) [8]

>msguns ©   (16.12.04 14:53) [7]
>Не вижу смысла повторяться

лишь бы автор вопроса это усвоил :)


 
IBChaynik   (2004-12-16 15:11) [9]

спасибо большое за урл, я обязятельно прочитаю. А простого кода нет для этого? Первая программа потверждает, второя перечитает, все равно не видно


 
Anatoly Podgoretsky ©   (2004-12-16 15:11) [10]

А пока транзакция не закончена, нет смысла говорить об данных.


 
Zacho ©   (2004-12-16 15:36) [11]

IBChaynik   (16.12.04 15:11) [9]

Здесь не очень любят лентяев. Вот если ты прочитаешь статью и что-то в ней не поймёшь - спрашивай, ответим.


 
msguns ©   (2004-12-16 15:49) [12]

>IBChaynik   (16.12.04 15:11) [9]
>А простого кода нет для этого? Первая программа потверждает, второя перечитает, все равно не видно

Простого кода для чего ? Показывающих принцип взаимодействия транзакций ? В коде этого чаще всего и нет, т.к. это прописывается в параметрах соответсвующих компонент доступа.
Если юзаешь TIBTransaction и ничего не указывешь в параметрах
(св-во Params пустое), то дефаултно ставится SNAPSHOT, что как раз и говорит о "слепке". Т.е. пока эту транзакцию (а не НД) не завершишь и не стартанешь заново, никаких изменений не увидишь. Даже сделанных в этом же приложении и даже в контексте этой же транзакции !
Такая опция используется как раз для того, чтобы не видеть, что там кем-то меняется.

Если тебе надо, чтобы изменения, подтвержденные другими запросами (в этом или другом приложении) были видны в текущем датасете и при этом не хочешь перезапускать транзакцию (например, если в рамках этой же транзакции пооткрывал кучу других датасетов и нежедательно их автозакрытие), то используй в редакторе Params соотв.транзакции опцию read_commited или, если пишущая, concurrency



Страницы: 1 вся ветка

Текущий архив: 2005.01.23;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.027 c
8-1097729787
vlgrig1961
2004-10-14 08:56
2005.01.23
TIF формат ???


3-1103521649
WolandUSSR
2004-12-20 08:47
2005.01.23
Вставка BLOB поля в таблицу MySQL


14-1104440423
Федюлин Григорий
2004-12-31 00:00
2005.01.23
Разделение области сайта на две части


3-1103625571
galexis
2004-12-21 13:39
2005.01.23
Ошибка Out Of Memory


1-1104994272
Maxim____M
2005-01-06 09:51
2005.01.23
проблема с Объявлением Классов