|
|
|
Работа с двумя БД
|
|||
|---|---|---|---|
|
#18+
Трабл: есть одна база ( a.gdb ), и другая ( b.gdb ). В базе b есть таблица, которая является "уменьшенной копией" таблицы из базы a . Как сделать, чтобы при обновлении данных в a автоматически обновлялись данные в b ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2003, 12:18 |
|
||
|
Работа с двумя БД
|
|||
|---|---|---|---|
|
#18+
Думаю что никак... Объединение двух баз в триггере (что здесь требуется) не возможно. Это допускается только на уровне клиентского приложения, а изменять одновременно две базы через клиента не есть хорошо, ибо доступ к базе может быть осуществлен и не через вашего клиента (с одной базой может работать несколько разных клиентских приложений, в т.ч. и написанных не вами) потому возникнет рассогласованность данных, а это противоречит идеологии проектирования БД... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2003, 13:18 |
|
||
|
Работа с двумя БД
|
|||
|---|---|---|---|
|
#18+
А в теле триггера ничего подобного CONNECT... или SET DATABASE... написать нельзя? Если нет, то каким ещё способом можно реплицирвать данные разных баз, не используя специальное программное обеспечение, а ограничиваясь только языком SQL? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2003, 13:32 |
|
||
|
Работа с двумя БД
|
|||
|---|---|---|---|
|
#18+
Согласен с Евгением. Но меня как-то посетила шальная мысль написать UDF и вызывать её в триггере. К сожалению на практике осуществить это не было времени. Собственно проблемы я думаю нет стиснуть зубы и написать, но возможна такая фишка: - UDF должна знать логин и пароль. Если они сменятся надо перекомпилировать DLL. - если передавать логин и пароль из триггера то при их смене надо менять триггер. И тот и другой случай не удобен в общем виде. Т.к. Админ сервера БД может быть один человек, а разработчик или сопроводитель БД другой. Пароль сменили, а перекомпилировать DLL или триггер забыли (человеческий фактор). Возникший геморрой не есть хорошо для крупных организаций. Так что пусть голову ломают разработчики IB-FB. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2003, 13:37 |
|
||
|
Работа с двумя БД
|
|||
|---|---|---|---|
|
#18+
Да я тоже согласен, но проблема -то осталась... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2003, 14:15 |
|
||
|
Работа с двумя БД
|
|||
|---|---|---|---|
|
#18+
Наверное единственное решение проблемы состоит в том, чтобы объединить эти 2 базы в одну... это не только самое лучшее но и самое логичное решение ибо 2 базы ничего общего иметь не должны. Объединение можно произвести при помощи специально написанной проги при всех отключенных клиентах, правда клиентов вообще придется переписывать... Второе решение в том, что некотарая опять же клиентская прога скажем раз в 2 минуты шерстит базу №1 на предмет новых записей и если таковые имеются вносит их в базу №2... коряво однако получается, но должно работать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2003, 14:37 |
|
||
|
Работа с двумя БД
|
|||
|---|---|---|---|
|
#18+
Ну, если через каждые пару минут шерстить базу, то это совсем как-то не так... А кто чего слышал про IBReplicator ? Я вроде в Инете нашёл о ней информацию, а на практике она как? Написано, что можно реплицировать всякие там таблицы, поля... Никто не работал? Ксати, ссылка: http://www.ibphoenix.com/main.nfs?a=ibphoenix&page=ibp_replicator , но что-то она уж больно древняя ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2003, 17:30 |
|
||
|
|

start [/forum/topic.php?fid=40&gotonew=1&tid=1580156]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
150ms |
get topic data: |
7ms |
get first new msg: |
3ms |
get forum data: |
2ms |
get page messages: |
26ms |
get tp. blocked users: |
1ms |
| others: | 202ms |
| total: | 409ms |

| 0 / 0 |
