Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Своевременное обновление данных, как повторить запрос когда это необх? 
V
    Опции темы
Hypertonyc
Дата 24.10.2008, 19:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 19.10.2008

Репутация: нет
Всего: нет



Здраствуйте всем...смотрите какая вещь...

Я на MySQL ещё не прогал и можт чегот не шарю...кароче суть проблемы...

смотрите...к примеру...у меня в программе есть список(ListBox)...в нём данные из таблицы "Zakazchik"...точнее данные из поля "Name" этой таблицы...ну тоесть если совсем кароче то список заказчиков))
прога работает на 5 компах(к примеру) через локалку...один работник захотел поменять заказчика "Петя" на "Вася"...он в списке выделил Петю...в Edit под списком вписал "Вася" и нажал кнопку типа "ок"...произошёл SQL-запрос типа Update и в базе значение поменялось...

Внимание вопрос: Как сделать чтоб у людей за другими компами Петя тоже поменялся на Васю???Как отловить этот момент???Есть идея написать отдельно...в смысле НЕ через SQL-сервер, а проста послать сообщение через локалку...чтоб прога на каждом компе сделала Select записи по Id присланному в этом сообщении...Но помоему это "не по джедайски"...Есть ли вариант это сделать через SQL?

Теперь пожалуйста ещё больше внимания...другая проблема

Таже таблица "Zakazchik"...в ней помимо Name есть  Adress,Telephone ещё чонибуть...не суть...
Суть вот в чём...имеется такой жэ список заказов...а слева два Edit с помощю каторых я редактирую адрес и телефон...всмысле я в списке выделяю заказчика а слева загрузился из базы его адрес и телефон и я могу его поменять при жэлании...вооот
Понятно,что если один меняет адрес/телефон другие не должны иметь доступа к этой строке(целостность данных)...как это сделать??
Моя идея...добавит ещё одно поле Status...туда записывать имя пользователя...если он его редактирует...а когда перестаёт редактировать то очищать это поле...но тут жэ придумал проблему...а вдруг приложение завершилось некорректно и в этом поле так и осталось значение...запись заблокируется навсегда...
вот какое решение приходит в голову...пользователь перед редактированием записи смотрит поле Status...читает оттуда имя пользователя...после чего проверяет подключён ли этот пользователь к базе...если да то получает MessageBox о том что запись редактируется...если не подключен то очищает поле и вписывает себя...
так вот:возможно ли узнать с помощью запросов...или ещё как(программно)...подключён ли юзер к базе???
PM MAIL   Вверх
bars80080
Дата 24.10.2008, 19:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 5
Всего: 315



сорри, конечно, а промежуточный серверный язык имеется?
PM MAIL WWW   Вверх
Hypertonyc
Дата 24.10.2008, 19:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 19.10.2008

Репутация: нет
Всего: нет



эээ...поясни...я ж гаварю што не шарю...
я пишу на Win32API + #include <mysql.h> на C++

mysql-essential-5.0.67-win32 ... это сервер

вот
PM MAIL   Вверх
skyboy
Дата 24.10.2008, 23:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 41
Всего: 260



Цитата(Hypertonyc @  24.10.2008,  18:31 Найти цитируемый пост)
Есть ли вариант это сделать через SQL?

порверять/обновлять данные в списке через определенный промежуток времени. дешево и сердито. это раз.
при изменении даннх в БД фиксировать время последних изменений(каждой таблице - одна дата-время). программа же через фиксированные же промежутки времени должна проверять, не изменились ли данные. если изменились - закачивать. все ещё просто, но экономит траффик. плюс экономно в отношении объема БД. это два.
для каждой записи в таблице хранить время модификации. программа через фиксированные промежутки определяет "последние изменения". уже не так красиво в отношении объема хранящехся данных, зато экономно в отношении траффика по сети. это три.
магических средств "уведоми меня, когда появятся измениения в базе" я не знаю. да, и навряд ли они есть. сервер использует ТСР для передачи данных, а значит, отследить потерю связи в случае некорректного завершения сеансов потенциально невозможно. и хранить список клиентов, которых надо оповестить об изменениях - глупо, раз уж даже не известно, подключены ли клиенты..
PM MAIL   Вверх
Бонифаций
Дата 25.10.2008, 02:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 827
Регистрация: 15.9.2005
Где: Brisbane

Репутация: 20
Всего: 40



проблема номер 2 решается с помощю innodb и 

Код

select ... for update



--------------------
 Бонифаций.
 
PM MAIL ICQ Skype GTalk Jabber YIM   Вверх
Hypertonyc
Дата 26.10.2008, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 19.10.2008

Репутация: нет
Всего: нет



А что делает этот запрос и как им пользоваться?...если не затруднит канешн...
А вот скажите парни(и девушки),если написать модуль штоп все проги еще м/д собой через сокеты конектились и уведомля ли б друг друга что обновить и когда...ну и еще чтонибуть делали для удобства.это сильна помешает работе сервераmysql?
PM MAIL   Вверх
dvamaster
Дата 27.10.2008, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 559
Регистрация: 30.6.2004
Где: Россия : Курган

Репутация: нет
Всего: 10



делал что-то вроде шлюза для MySQL, локальный предсервер SQL, коннектился локально к базе, определял наличие таблиц по коннекту к базе и пропускал все запросы через себя, фиксируя UPDATE, DELETE, INSERT, и выдавал на все другие коннекты (кроме приславшего запрос) сигнал о наличии зменений в таблицах.

только с парсером мучался  smile 

  |SQL-запрос --> Parser --> SQL-сервер -|
1|                             |                                 |
  |<-копия данных функции mysql_query-
                                |
2|<---------------------*
                                |
3|<----------------------


--------------------
Хорошую информацию трудно добыть. Сделать с ней что-нибудь - еще труднее. /L. Skywalker/

Что же я сделал не так? /Король Лир/

Я делаю это для твоего же блага! /Любой родитель и палач/

PKUNZIP.ZIP /неизвестный/
PM MAIL WWW ICQ   Вверх
Hypertonyc
Дата 29.10.2008, 22:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 19.10.2008

Репутация: нет
Всего: нет



паходу писать сетевой модуль не варик...ну и ладна...будим тада записи холостым апдейтом(если он канает канешн)блокировать...сенкъю всем!!!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0651 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.