![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 25.05.2010
Сообщений: 24
|
![]()
Доброго времени суток коллеги.
Помогите разобраться с такой проблемой: с 2х машин подключался к одной БД. Параллельно вносил изменения в таблицы, при этом отображались изменения сделаные только на этой машине. Изменения происходят посредством SQL запроса. Как сделать чтобы после каждого действия (удаление записи, изменение, добавление), данные сразу сохранялись в таблицы и отображались на 2й машине? Заранее спасибо... |
![]() |
![]() |
![]() |
#2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Так стоп...
Давай разделим понятия "данные сразу сохранялись в таблицы" и "отображались на 2й машине". Насчет первого ну смотря чем ты пользуешь, если есть транзакция то команда COMMIT сбросит ее на диск. Насчет второго, ну прикрепи к прокграмме механизм передачи сообщений через сокеты, и при фиксировании транзакции на одном клиенте всем остальным посылай сообщение переобновится, и пусть перечитываю БД (Или всем пошли строку, которую ты закоммитил в БД, тогда не придется напрягать сервер.)
I'm learning to live...
|
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,091
|
![]()
Вопрос уже поднимался не раз. Самое простое решение: периодически перезапрашивать данные из СУБД. Так же некоторые СУБД поддерживают механизм событий и можно сделать, что сама СУБД будет всем рассылать информацию об изменениях.
Самый правильный вариант в общем случае: сделать кнопочку "обновить" по которой перезапрашивать данные из БД. Представьте, что один пользователь активно добавляет названия улиц в справочник. А в это же время другой пользователь пытается добавить нового клиента и не может добавить его адрес, т.к. никак не попадет в нужную улицу (строки же скачут из-за появления новых записей). |
![]() |
![]() |
![]() |
#4 | |
Пользователь
Регистрация: 25.05.2010
Сообщений: 24
|
![]() Цитата:
Может подскажите альтернативные пути решения, или кусок кода на перезапрос? |
|
![]() |
![]() |
![]() |
#5 | ||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
Яж тее сказал - перешли всем пользователям сообщение, например через IDUDP компонент методом Broadcast, А в этом сообщении строку изменений. Цитата:
I'm learning to live...
|
||
![]() |
![]() |
![]() |
#6 | |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,091
|
![]() Цитата:
2. В этом случае "скакать" табличка будет при активном удалении или изменении. 3. Редко кому это нужно в реальной жизни. Если кому-то нужно видеть данные из БД в реальном времени, то вряд ли таблица - удачный вариант представления информации. В общем, этим как правило решается не та проблема и не теми средствами. Это скорее латание дыр проекттирования программы или излишек, который никому не нужен. |
|
![]() |
![]() |
![]() |
#7 | |
Форумчанин
Регистрация: 20.06.2007
Сообщений: 270
|
![]() Цитата:
![]() Я не понимаю, зачем пользователю на втором компьютере во время редактирования тупо пялиться на таблицу и смотреть изменились где-то записи или нет. Он редактирует конкретную запись. Ее и надо проверять (если это действительно надо) перед тем как сохранить изменения и решать, сохранять их или нет. Что делается в это время с остальными записями пользователя волновать не должно. Закончил редактирование - обновил таблицу. Работаешь дальше с обновленным вариантом таблицы. Выбираешь другую запись для редактирования. PS: Если бы мне нужно было отслеживать измененные записи за определенный период времени, я бы ввел в таблицу поле типа TDateTime в котором автоматически проставлял бы время изменения записи, а потом делал бы выборку по этому полю.
-Кукушка, кукушка! Накукуй мне сто лет!
-А накукуй тебе столько? (с) Библия. Вольный перевод с древнееврейского. |
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
работа программы в сети | нью | Фриланс | 1 | 09.02.2010 02:09 |
Администрирование сети. Работа со свичами. | Stilet | Общие вопросы по программированию, компьютерный форум | 11 | 09.04.2009 08:03 |
Работа программы в сети | Irsis | Microsoft Office Excel | 4 | 21.10.2008 08:38 |
Работа пользователей в сети | Mike_B | Софт | 1 | 17.08.2007 16:34 |