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

Вниз

Метод на обсуждение, рефреш датасета измененного копией программы   Найти похожие ветки 

 
sniknik   (2002-07-17 12:19) [0]

Нужно узнавать об изменениях в базе сделанных копией приложения, и соответственно рефрешить датасеты.
Единственное что пришло в голову дополнительная таблица с флагом, при изменениях в базе к флагу добавляется еденичка а в копиях проверка по времени если флаг в программе меньше чем в базе то пора обновится.
На случай если копия будет запускатся из сети (не предусматривалось но возможно) хочу вынести таблицу с флагом из базы в dbf-ник, чтобы при опросах вся база по сетке не дергалась.

И вот теперь когда почти все готово возник вопрос, а не изобретаю ли я велосипед? Может есть стандартные методы, а я не в курсе. Как сам Access это делает? И хотелось бы узнать правомочность метода, может лутше чего посоветуете?


 
Ильдар   (2002-07-17 15:46) [1]

answer please!!!


 
sniknik   (2002-07-17 15:57) [2]

Эт ты мне? или так в общем по вопросу?


 
Ильдар   (2002-07-17 15:59) [3]

всем кто знает как и знает где узнать как


 
sniknik   (2002-07-17 17:20) [4]

Все просто до идиотизма,
любое изменение записи в любой таблице ведет к изменению даты/тайма в признаках файла (самого *.MDB файла, свойство изменен) судить можно по этому,
сохранять в программе время последнего изменения и сравнивать с текушим. (время компа в расчет брать нельзя изза разнах времен в сети).


 
Sergey13   (2002-07-18 09:09) [5]

2sniknik © (17.07.02 17:20)
Конгениально!!!
Есть 2 таблицы(на практике обычно больше). Изменение в 1-ой изменят время файла и вызовут обновление по датасету на 2-ю таблицу. Особенно приятно будет работать с базой по сети. 8-)
По вопросу - что за копии программы на одном компе работающие с базой. Поподробнее, плиз, можно.


 
fnatali   (2002-07-18 09:29) [6]

По-моему в Access есть полноценная (или неполноценная?) репликация данных...


 
sniknik   (2002-07-18 10:29) [7]

Меня похоже неверно поняли (а я старался правильно донести, неудалось :-).

Во первых база у меня одна (mdb файл) всегда и везде. Во вторых для сети программа не предусматривалась и это оговорено с заказчиком. Просто както так получилось что удобнее на том же компе запустить копию (именно программы .exe, и подключится она к тому же MDB что и оригинал) и работать с 2-3 копиями, чем закрывать и вновь открывать путевой лист в одной.
А нужно чтобы изменения в одной копии отражались в другой (визуально). И это этим методом решается. И даже больше (в отличии от первого мной предложенного метода) я увижу изменения сделанные всякими посторонними программами Access-ом например :-).

И даже если запустить прогу из сетки то проверить время базы гораздо выгоднее чем считавать хотя бы одно значение из нее. Access не сетевая база и не SQL server а это значит, что для считывания даже 1 значения потянет всю базу к себе. А вот проверить время файла можно и не открывая его, считывая значение из структуры файлов (насколько я помню дос и ДискЕдит) и похоже дельфийская FileAge так и делает (пока я читал ей каталог соседнего компа заметного увеличения трафика не наблюдал).

Ну в общем вот, высказавайте мнения (вариант с сеткой прошу не рассматривать тут чем хуже тем лутше, может sql купят какойнибудь хотя тут не проблема sql можно и MySql использовать а проблема "кто его обслуживать будет?" или вернее выделят ли деньги на администратора)
уф. все. надеюсь сейчас понятнее :-)



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2002.08.08;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.57 MB
Время: 0.025 c
7-24256
Посетитель
2002-05-24 14:52
2002.08.08
Как приостановить Shutdown компа


1-24029
dim-
2002-07-29 09:28
2002.08.08
ListView


3-23966
Loco
2002-07-19 14:08
2002.08.08
Синтаксис SQL


3-23940
Dimedrol
2002-07-17 18:55
2002.08.08
Creating TRIGGER (FireBird, QuickDesk)


7-24248
GreatMaster
2002-05-25 17:36
2002.08.08
Ыскейп команды для принтера или как обломать автопрогон страницы?





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