Главная страница
    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.47 MB
Время: 0.032 c
14-1104780262
Zacho
2005-01-03 22:24
2005.01.23
Мистика, ужасы и т.п.


1-1105337702
LKan
2005-01-10 09:15
2005.01.23
html


1-1105464482
Magic_STI
2005-01-11 20:28
2005.01.23
Вывод ресалтов поиска


14-1105085140
Шишкин Илья
2005-01-07 11:05
2005.01.23
Выбор КПК


1-1104992538
lightix
2005-01-06 09:22
2005.01.23
C++ Builder и Pascal





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский