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