|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
07.07.2012, 15:18 | #1 |
Регистрация: 07.07.2012
Сообщений: 6
|
Delphi и две БД Access
Здравствуйте!
Есть 2 одинаковые по структуре базы. Данные добавляются\изменяются в обе. В таблицах есть поле "датасоздания" как можно в цикле синхронизировать 2 таблицы разных бд, с приоритетом "датасоздания" т.е. просто перезаписывать, а отсутствующие записи добавлять. поля ID(счетчик), имя(string),фамилия(string), отчество(string) номер(уникальный, string) и "датасоздания"(полный формат времени) |
07.07.2012, 18:15 | #2 |
Регистрация: 07.07.2012
Сообщений: 6
|
Неужели никто не знает? ну хоть подскажите куда копать.
Репликация -не вариант, нужно именно через цикл. |
07.07.2012, 22:58 | #3 |
Форумчанин
Регистрация: 26.07.2009
Сообщений: 216
|
А мало чего можно сказать. Информация куцая.
С какой частотой должна происходить "синхронизация"? Или по какому-то сигналу? Непонятно о каком цикле идет речь. По всем записям (строкам) таблиц? Если так, то вы отдаете себе отчет сколько нужно будет затратить ресурсов и времени чтобы пройтись хотя бы по 100 000 записям в одной и другой таблице? Нужно будет перелопатить 10 000 000 000 строк. Понятно, что у вас задача резко не такая (вряд ли в ваших таблицах будет столько строк). Но надо и довести до народа более подробно исходные данные. А вообще, если не нудить, то все просто (кроме вышезаданного вопроса: "как и когда делать"): Соединяемся с двумя БД через ADOConnection (для каждой БД свой компонент). Для таблицы, из которой читаем можно использовать ADOTable, а для той, которая будет "синхронизироваться" - ADOQuery. В ЦИКЛЕ while читаем данные из исходной таблицы. На каждой итерации выполняем запрос SELECT для другой таблицы (через ADOQuery), в котором в качестве условия задаем "датасоздания" из первой. Если запрос вернет пустой результат, то добавляем строку из исходной таблицы (INSERT). Если найдено, то обновляем строку (UPDATE). И то и другое - с помощью ADOQuery. P.S. Надо осознать, что репликация - это обобщенное именование методов и приемов позволяющих привести две или более БД с одинаковой структурой к одному и тому же состоянию. Т.е. репликация и "синхронизация" в вашей интерпретации - это одно и то же. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
две задачи на delphi | Petrovich83 | Помощь студентам | 1 | 25.04.2011 10:26 |
Две формы в Delphi | Kotlyar562 | Помощь студентам | 10 | 05.03.2011 23:36 |
Две задачи на Delphi 6 | VadikV | Фриланс | 1 | 12.01.2011 15:38 |
две задачи на Delphi: | Дініс | Помощь студентам | 5 | 30.11.2009 13:55 |
Delphi. две задачи! | St1mkA | Помощь студентам | 10 | 28.10.2009 04:44 |