|
0 / 0 / 5
Регистрация: 09.10.2015
Сообщений: 229
|
|
SQLite отслеживать изменения в базе данных15.11.2017, 07:05. Показов 6696. Ответов 15
Метки нет (Все метки)
Приветствую. Опишу суть, необходимо отследить вносимые изменения в базу данных из разных программ то есть изменения вносит одно приложение а следит за ним другое. Если бы всё в одном приложении то в классе SQLiteConnction есть событие Update но оно работает только с текущем подключением. Сейчас это работает так FileSystemWatcher отслеживает изменение файла а другой метод уже бегает по таблицам и смотрит что там не так, пока таблиц не много это прокатит а вот дальше сомневаюсь. Возможно есть какой то класс в библиотеке System.Data.SQLite который может это делать или есть более правильный способ отследить изменения в базе может запрос который будет выдавать имя таблицы в которой произошло последнее изменение? Спасибо.
0
|
|
| 15.11.2017, 07:05 | |
|
Ответы с готовыми решениями:
15
C# + SQLite. Как организовать UNION баз разных данных (не таблиц в одной базе данных) Qt и SQLite. Поиск в базе данных |
|
14059 / 9268 / 1346
Регистрация: 21.01.2016
Сообщений: 34,776
|
|
| 15.11.2017, 07:15 | |
|
Graf1385, из поставленного вопроса не ясно КОГДА нужно обнаруживать изменения. Если в момент их внесения, то таких средств нет. Если при обращении к записи, то можно завести в таблице поле типа Timestamp. Это поле будет обновляться автоматически самой СУБД каждый раз при обновлении записи.
1
|
|
|
0 / 0 / 5
Регистрация: 09.10.2015
Сообщений: 229
|
|
| 15.11.2017, 07:20 [ТС] | |
|
Именно при внесении изменений. Но Timestamp тоже полезно можно будет быстрее проверить в какой таблице произошло последнее изменение.
0
|
|
|
14059 / 9268 / 1346
Регистрация: 21.01.2016
Сообщений: 34,776
|
|
| 15.11.2017, 07:42 | |
|
Graf1385, сдаётся мне, что у вас не очень правильная архитектура системы, раз такие вещи понадобились. Может распишете зачем это? Это не прямо по теме, но может быть решим вашу проблему "этажом ниже".
1
|
|
|
0 / 0 / 5
Регистрация: 09.10.2015
Сообщений: 229
|
|
| 15.11.2017, 08:08 [ТС] | |
|
Почему нет. Первое приложение назовём его "Сервер" собирает данные из бинарного файла и помещает их в базу данных каждая запись в бинарном виде может весить до 2кб. Приложение два "Клиент" должно вывести последнею запись на экран. Клиентов может быть несколько и они будут находиться удалённо но приделах локальной сети. Я рассматривал вариант с WCF то есть сервер делает запись и оповещает клиентов о том что запись сделана и можно обращаться к базе но так и не понял как это реализовать. Вариант с MSSQL тоже рассматривал но сложность в установке и настройки меня остановила да и ограничения по размеру БД. Вот я и остановился на SQLite хоть он и не предназначен для работы удалённо всё решает подключённый сетевой диск к папке с базой данных на машине с клиентом.
Добавлено через 3 минуты Да и запись в базу данных происходит раз в секунду или даже чаще.
0
|
|
|
14059 / 9268 / 1346
Регистрация: 21.01.2016
Сообщений: 34,776
|
|||
| 15.11.2017, 08:15 | |||
|
Так же, вы можете поставить MSSQL\MySQL\PostgreSQL и все клиенты могут ломиться к нему. Не знаю, какие у вас могли возникнуть сложности в этом. Но выставлять файл базы данных клиентам точно не стоит. Добавлено через 1 минуту
1
|
|||
|
0 / 0 / 5
Регистрация: 09.10.2015
Сообщений: 229
|
|
| 15.11.2017, 08:54 [ТС] | |
|
MySQL\PostgreSQL мне тоже не подходят меня попросили чтобы программу не было необходимости устанавливать так как дядя Вася который будет пользоваться приложением при словах Установить программу может потерять сознания, а таких дядей там много и я один устану им всем устанавливать настраивать и исправлять. А как вариант если я уберу доступ к базе для клиентов напишу nt службу которая будет мостом между клиентам и бд?
0
|
|
|
14059 / 9268 / 1346
Регистрация: 21.01.2016
Сообщений: 34,776
|
||
| 15.11.2017, 09:09 | ||
Сообщение было отмечено Graf1385 как решение
Решение
Graf1385, если нужно централизованное хранение данных, то тут либо общая СУБД, либо общий сервис. Раз СУБД ставить и настраивать клиенту впадлу, то можно обойтись сервером (который уже в SQLite всё может хранить, тут пофигу).
Добавлено через 1 минуту Способов удалённого взаимодействия с сервером - масса. Хотите WCF, хотите WebAPI, хотите голые сокеты. Тут у вас руки развязаны.
1
|
||
|
0 / 0 / 5
Регистрация: 09.10.2015
Сообщений: 229
|
|
| 15.11.2017, 09:20 [ТС] | |
|
Я давно думал по поводу такой реализации меня остановило то что машины у них есть ещё с мезозойской эры с одним ядром вот как на него MSSQL устанавливать, конкуренты решили этот вопрос проще закупили компы с более или менее адекватными характеристиками и установили на них MSSQL настроили и поставили как коробку включил нажал старт и всё проблема решена. Ладно начну разбираться с полудуплексным соединением.
0
|
|
|
3566 / 2507 / 1174
Регистрация: 14.08.2016
Сообщений: 8,218
|
|||
| 16.11.2017, 02:00 | |||
|
а вообще, это хреновая контора, которая жмет бабки на основные средства... Не по теме: З.Ы. беги оттуда
0
|
|||
|
|
||
| 16.11.2017, 10:34 | ||
|
Коннектитесь к службе и подписываетесь на событие изменения данных в БД (например, на внесение новой записи). Потом все, ждете. Как кто-то из подключенных клиентов изменил что-то в БД-получаете оповещение, запрашиваете данные из БД и обновляете отображение.
1
|
||
|
0 / 0 / 5
Регистрация: 09.10.2015
Сообщений: 229
|
||
| 16.11.2017, 12:55 [ТС] | ||
|
Ну
Добавлено через 3 минуты Тут вопросик правда не по теме, а службу можно запустить с аргументами как программу. Типа передать путь к базе при запуске.
0
|
||
|
|
|||
| 16.11.2017, 13:07 | |||
|
0
|
|||
|
0 / 0 / 5
Регистрация: 09.10.2015
Сообщений: 229
|
|
| 16.11.2017, 13:11 [ТС] | |
|
Да если бы нужно несколько параметров передать можно в файл а для одного пути создавать файл мне кажется странно можно передать путь а остальное хранить в самой базе так будет правильней мне так думаю.
0
|
|
|
|
||
| 16.11.2017, 13:13 | ||
|
Куда как удобнее модифицировать конфиг в текстовом редакторе, чем запускать с аргументами.
0
|
||
|
0 / 0 / 5
Регистрация: 09.10.2015
Сообщений: 229
|
|
| 16.11.2017, 13:14 [ТС] | |
|
Это да.
0
|
|
| 16.11.2017, 13:14 | |
|
Помогаю со студенческими работами здесь
16
Поиск в базе данных SQLite Запросы к базе данных sqlite Поиск по базе данных Sqlite
IIS8. Нет доступа с базе данных SQLite Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
||||
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|
Фото: Daniel Greenwood
kumehtar 13.11.2025
|
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга,
Ты же видел моря и метели.
Как сменялись короны и стяги,
Как эпохи стрелою летели.
- Этот мир — это крылья и горы,
Снег и пламя, любовь и тревоги,
И бескрайние. . .
|
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1
У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\
А в самом низу файла-профиля. . .
|
|
PowerShell и онлайн сервисы. Валюта (floatrates.com руб.)
iNNOKENTIY21 11.11.2025
PowerShell функция floatrates-rub
Примеры вызова:
# Указанная валюта 'EUR'
floatrates-rub -Code 'EUR'
# Список имеющихся кодов валют
floatrates-rub -Available
function floatrates-rub {
|
PowerShell и онлайн сервисы. Погода (RP5.ru)
iNNOKENTIY21 11.11.2025
PowerShell функция Get-WeatherRP5rss для получения погоды с сервиса RP5
Примеры вызова
Get-WeatherRP5rss
с указанием id 5484 — Москва (восток, Измайлово) и переносом строки:. . .
|
PowerShell и онлайн сервисы. Погода (wttr)
iNNOKENTIY21 11.11.2025
PowerShell Функция для получения погоды с сервиса wttr
Примеры вызова:
Погода в городе Омск с прогнозом на день, можно изменить прогноз на более дней, для этого надо поменять запрос:. . .
|
PowerShell и онлайн сервисы. Валюта (ЦБР)
iNNOKENTIY21 11.11.2025
# Получение курса валют
function cbr (] $Valutes = @('USD', 'EUR', 'CNY')) {
$url = 'https:/ / www. cbr-xml-daily. ru/ daily_json. js'
$data = Invoke-RestMethod -Uri $url
$esc = 27
. . .
|
И решил я переделать этот ноут в машину для распределенных вычислений
Programma_Boinc 09.11.2025
И решил я переделать этот ноут в машину для распределенных вычислений
Всем привет. А вот мой компьютер, переделанный из ноутбука.
Был у меня ноут асус 2011 года. Со временем корпус превратился. . .
|