Текущий архив: 2004.05.23;
Скачать: CL | DM;
Вниз<<< Общение между двумя БД в реальном времени >>> Найти похожие ветки
← →
Realist (2004-04-27 23:11) [0]Мне нужно реализовать общение между двумя БД в реальном времени(используються БД -- mySQL и FoxPro). То есть, чтобы при изменении базы foxpro -- изменялась база mysql(например -- изменилось какое-то поле в базе foxpro -- изменилось это поле и в базе mysql).
Дело в том, что в моём случае нельзя поставить только mysql и работать с ним(на фирме много программ используют foxpro, а перестройка их на mysql -- и долго и ненужно -- много разных программ используют FoxPro). НУЖНО СДЕЛАТЬ ИМЕННО ОБЩЕНИЕ БАЗ ДАННЫХ В РЕАЛЬНОМ ВРЕМЕНИ. Это единственный выход в моей ситуации.
Есть варианты:
1) Запустить резидент, который постоянно(скажем через каждые 30 сукунд) будет сравнивать последние даты обновления базы foxpro и mysql(mysql лежит на удал. машине -- на хосте) и если они отличаются, то в соответствии с базой на foxpro изменяем базу mysql;
2) Написать программу, с пом. которой будет редактироваться база foxpro и при завершении её редактирования(скажем при нажатии на кнопку)замена данных происходит сразу в обоих базах.
А сравнение баз в этой ситуации можно осуществить в целях нахождения искажённых данных(чтобы восстановить если чего -- хотя если базу mysql поместить на сервак прова, то притензии к нему если что-нить с серваком и как следствие искажение данных).
Мне нравиться больше 1-й.
Недостатки ... Преимущества ....
КАКОЙ СПОСОБ МОЖЕТЕ ПОСОВЕТОВАТЬ ???
-------------------------
Какие ресурсы (компоненты работы с mysql, foxpro) ?
Придёться делать дубликат базы foxPro в mysql, а потом этот дубликат сравнивать с удал. -- это время -- как можно быстрее ? -- чтобы дубл не делать, а сразу сравнивать(какой драйвер исп).
← →
Jack128 © (2004-04-27 23:17) [1]Если у тебя много программ, работающих с Fox"ом, то в чем суть второго способа? Или все эти проги, кроме одной только на чтение, и именно эту одну ты хочешь переписать?
По поводу первого способа, он реален только при очень маленьких базах..
Если сам Fox имеет какие нить средства нотификации об изменениях таблиц(а-ля тригеры), то может быть...
← →
Курдль © (2004-04-27 23:27) [2]
> на фирме много программ используют foxpro
ЭТО ТЕХНОЛОГИЧЕСКАЯ ДИВЕРСИЯ! НАЙТИ САБОТАЖНИКОВ!
Меня бы от такой задачи затошнило так, что однажды я бы все-таки переписал все программы (а сколько их?) на клиент-сервер.
← →
Jack128 © (2004-04-27 23:29) [3]
> Меня бы от такой задачи затошнило так, что однажды я бы
> все-таки переписал все программы (а сколько их?) на клиент-сервер.
ага, это - мечта русского программиста :-)
← →
DrPass © (2004-04-27 23:37) [4]
> Мне нужно реализовать общение между двумя БД в реальном
> времени(используються БД -- mySQL и FoxPro). То есть, чтобы
> при изменении базы foxpro -- изменялась база mysql(например
> -- изменилось какое-то поле в базе foxpro -- изменилось
> это поле и в базе mysql).
Будь реалистом - такой программный уродец никогда не сможет нормально работать.
Я добавлю третий вариант:
Не использовать MySQL, если старый софт работает на фоксе, пусть и новый тоже на нем работает. Либо переносить все и сразу на MySQL.
← →
Realist (2004-04-28 00:53) [5]Именно так нужно сделать -- никак не перепишешь под MySQL -- за там их штук 30 этих программ, кот работают с foxPro. Это времени займёт немеряно, тем более, что заказчик не хочет нивкакую использовать одну.
База будент не больше 50х5000.
Так какие может компон. етсь -- можете посоветовать ???
← →
Sergey13 © (2004-04-28 08:43) [6]2Realist (27.04.04 23:11)
Для поставленых условий твоя мечта - утопия, ИМХО. Никакие компоненты не спасут отца Русской демократии, только финансовые вливания.
Слышал я про сервер Адвантаж (так вроде), он в качестве хранилища может использовать dbf файлы. Вроде бы даже проги на Фоксе переписывать не надо. Это вроде как полноценный сервер, но, ессно, за полноценные деньги. Подробности в инете сам ищи, если интересно.
← →
Nikolay M. © (2004-04-28 09:14) [7]
> Так какие может компон. етсь -- можете посоветовать ???
Угу. Компонент TSynchronizeDatabases.
Делаешь ему Active := True и все в шоколаде. Убивают меня такие заявления. Что бы такое сделать, чтобы ничего не делать.
Переводить все на трехзвенку и реализовывать синхронизацию на уровне Application-сервера. В принципе, это твой вариант 2), только "программа, с пом. которой будет редактироваться база foxpro" на самом деле называется сервером приложений.
← →
Polevi © (2004-04-28 09:54) [8]>Nikolay M. © (28.04.04 09:14) [7]
этот в РЕАЛЬНОМ ВРЕМЕНИ не работает, тут нужен TRealTimeDatabaseSynchronizer
← →
Nikolay M. © (2004-04-28 10:10) [9]
> Polevi © (28.04.04 09:54) [8]
> >Nikolay M. © (28.04.04 09:14) [7]
> этот в РЕАЛЬНОМ ВРЕМЕНИ не работает, тут нужен TRealTimeDatabaseSynchronizer
С ним сложнее. Там многопоточность, параллельность и асинхронность, вдруг еще в пропертях придется разбираться...
А у TSynchronizeDatabases только одно свойство (Active) и ни одного события - все сам делает.
← →
Polevi © (2004-04-28 10:16) [10]а ну да, разбираться это ацтой :)
Страницы: 1 вся ветка
Текущий архив: 2004.05.23;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.038 c