2009-12-20 8 views
2

У меня есть приложение безопасности, которое хранит его данные в базе данных доступа. Теперь мне необходимо, чтобы выполнял синхронизацию (репликацию) в реальном времени между этой базой данных доступа и новой базой данных в SQL Server 2005. эти две базы данных одинаковы. любое предложение ?!доступ и синхронизация в реальном времени SQL Server

Я не знаю, как это сделать, используя сервис Windows или нет. Мне нужен точный технический ответ.

+0

Вы видели: http://sqlserverpedia.com/blog/sql-server-tutorial/how-can-i-synchronize-data-between-ms-access-and-sql-server-databases/? – Fionnuala

+0

@Remou: если бы вы поместили эту ссылку в ответ и немного ее вычеркнули, я бы подумал, что это будет лучший ответ (ключевым является использование связанного сервера SQL Server для отображения данных Jet/ACE на SQL Server, где вы можете запустить набор Appends/Deletes/Updates для синхронизации Jet/ACE с таблицами SQL Server). –

+0

спасибо Remou.i проверить URL.it действительно полезен и практичен. Я сделал это раньше. Выше метод не является реальным временем. Есть ли способ сделать db-синхронизацию между базой данных доступа и сервером sql 2005, используя ACCESS LINKED TABLES? Я знаю это возможно, и я сделал it.i заменил исходные таблицы в базе данных доступа с некоторыми связанными таблицами с теми же именами.поэтому, когда приложение делает запрос к базе данных доступа, на самом деле он видит наш back sql server 2005 database.it имеет только один недостаток. У нас есть только одна копия данных, размещенная в SQL Server 2005. i должна быть копия данных в базе данных доступа. – muhremehr

ответ

2

В основном, я предлагаю вам использовать службу Windows для периодической проверки базы данных MS Access и попытаться синхронизировать ее с базой данных Sql.

Это позволит вам удалить человеческий фактор и периодически запускать эту задачу для синхронизации dbs.

Посмотрите

Также

+0

Да, служба Windows - хорошая идея, но перед тем, как сделать службу Windows, мне нужно знать, как извлекать вновь добавленные строки в таблицы и отправлять их в базу данных sql-сервера. – muhremehr

+0

Я готовлю крошечное приложение C#. Проблема заключается в том, как передавать только новые строки из базы данных доступа в базу данных SQL Server. (желательно, мне говорят, чтобы не использовать специальное кодированное приложение.) – muhremehr

2

SQL сервер имеет built-in replication functionality, что вы получаете бесплатно, так что вам не нужно беспокоиться о копировании на строки & отслеживания изменений. Существует несколько типов репликации SQL, которые используются для различных ситуаций, таких как репликация слиянием, репликация моментальных снимков и репликация транзакций. Эта последняя, ​​транзакционная репликация звучит так, как вы хотите. Merge replication используется, когда у вас есть пользователи, которые могут отключиться, уйти и вернуться позже для синхронизации (например, удаленных пользователей). Transactional replication используется там, где подписчики и издатели надежно подключены. Snapshot replication генерирует новый моментальный снимок каждый раз, когда происходит синхронизация, и не думает об изменениях в данных. Прочтите документацию MSDN и найдите, какой из этих типов подходит для вашей ситуации.

Использование этих методов репликации потребует установки таблиц на SQL-сервере или экспресс-экземпляре - вы можете использовать это для синхронизации с вашим SQL-сервером и сохранить все остальное Access как интерфейс. Я думаю, вы хотите следовать предчувствию и использовать службу Windows для синхронизации. Однако вы можете настроить диспетчер синхронизации Windows, чтобы автоматически пытаться синхронизироваться при запуске, выключениях, когда компьютер находится в режиме ожидания и т. Д. Если вам нужен более тонкий контроль за запуском синхронизации, тогда используйте приложение Windows или услугу в качестве наблюдателя.

+0

Я думаю, что репликация SQL-сервера выполняется только между сервером sql и rdbms, например, самим или mysql и другими, а не между сервером sql и доступом. – muhremehr

+0

SQL Server 2000 может выполнять гетерогенную репликацию с помощью Jet 4, но эта функция была удалена в SQL Server 2005. –

+0

Я предлагаю, что сервер Sql реплицируется на локальный сервер или экземпляр Sql и связывает его с Access –

Смежные вопросы