Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2005.01.23;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.046 c
6-1099087380
Novichok
2004-10-30 02:03
2005.01.23
Как получить IP адреса


3-1103276807
Sergo
2004-12-17 12:46
2005.01.23
DbLookupComboBox


1-1105616059
Demir
2005-01-13 14:34
2005.01.23
ComObj?


14-1104841168
Dimedrol
2005-01-04 15:19
2005.01.23
Как ставить SPacks на NT4 ?


1-1105134985
GEKSHI
2005-01-08 00:56
2005.01.23
DELPHI и HTML





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский