Найти - Пользователи
Полная версия: работа грида в сетевой версии
Начало » Python для экспертов » работа грида в сетевой версии
1 2 3 4
proDiva
Sunny
Я предполагаю что там используется какой-то тригер или сообщение, но как именно было бы любопытно узнать у опытных в этом вопросе
Я точно знаю, что в БД Oracle и MS SQL есть так называемые job'ы, которые ты сам создаешь - это задание, которое вполняет сервер по какому-либо событию. Все возможные события записаны на сервере под кодами, на каждый такой код ты можешь прописать задание. Это может быть сообщение в сеть об ошибке, сообщение на электронный адрес с описанием события или выполнение какого-то действия, например sql-запрос.
proDiva
Насколько я знаю, job'ы можно формировать только в программе-Администраторе.
balu
proDiva
Насколько я знаю, job'ы можно формировать только в программе
Это можно делать по обычному cron-у или какой там в операционку штатный планировщик :-P А сам перечень job-ов держать в базе. Однако в контексте топика это не то. Им надо, я так понял, такое отображение, которое бы изменения в результате выборке показывало.
Smar
Насколько я понимаю, вопрос не в выборе бд, а в поведении wxGrid.
При заполнении грида стандартно используется статический набор данных(.fetchall()). При чем в дальнейшей жизни грида
он не принимает ни кокого участия. При работе с бд в однопользовательском режиме это особо не мешает(сам себе хозяин-
что хочу, то и ворочу). Ситуация меняется когда у Вас бд сетевая. Если кто-то на другой станции поменял данные в бд, у Вас
в гриде нечего не поменяется.
Сам сижу в этой луже. Несколько мыслей вслух.
Можно ли с помощью ОРМ (SQLAlchemy или SQLObject) подключить динамический источник данных и что это даст? Или хотя-бы получить сигнал что база была изменена?
Если нет, думаю остается выход через подлючение socket. Принцип видется такой:
При изменении данных в гриде на какой нибудь станции, она отправляет сообщение с этими изменениями серверу.
Он изменения обрабатывает и рассылает по всем рабочим станциям. Соответственно станции должны иметь методы для обработки сообщений. Это усложняет код проги, но умнее что-то в голову ни чего не приходит.
balu
Smar
Или хотя-бы получить сигнал что база была изменена?
Зачем?
Smar
balu
Попробую объяснить:
При получениии сигнала от базы грид проверяет свои данные и в случае необходимости обновляет их.
Вроде бы все просто. В однопользовательском режиме вопрос вообще не возникает. В сети таких гридов может быть не 1 и не 2. Проблема в том, что насколько я понимаю, ОРМ работают в основном на одну программу. Как ОРМ исползовать в сети я просто не знаю.
Вот что-то так вроде бы.
Ерунда какая-то получилась.
Андрей Светлов
Тогда нужен application server, внутри которого уже ORM. Клиентские приложения доступа к базе не имеют, общаясь исключительно с этим сервером.
А в нем сигналы и прочая ерунда.
Smar
Андрей Светлов
Тогда нужен application server
Что это и с чем едят?
balu
Smar
При получениии сигнала от базы грид проверяет свои данные и в случае необходимости обновляет их.
Я это понимаю. Только зачем так заморачиваться? Смысл в таком обновлении?
Smar
balu
mar написал:

При получениии сигнала от базы грид проверяет свои данные и в случае необходимости обновляет их.

Я это понимаю. Только зачем так заморачиваться?
А как лучше поступить?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB