Показать сообщение отдельно
Старый 01.02.2006, 11:47   #1  
Buba is offline
Buba
Участник
 
90 / 10 (1) +
Регистрация: 24.04.2003
Адрес: Томск
Возникла необходимость синхронизировать некоторые таблицы в двух разных SQL базах, находящихся на разных компах. Т.е. имеется две базы, каждая сама по себе, но при этом многие справочники должны быть одинаковые (контрагенты, банки, договора и т.п.). Необходимо чтобы данные заводились только в одной базе и после этого они появлялись в другой. В идеале процесс синхронизации должен инициализироваться со стороны базы где заводятся данные, например, завели контрагента, и в методе insert таблицы прописать добавление такого же контрагента в другой базе, update, delete аналогично. Но при этом возникают проблемы с генерацией RecID во второй базе. Пока я остановился на другом варианте, по которому процесс синхронизации будет инициализирован, например, по нажатию кнопки в базе, куда новые или измененные данный должны попадать. Тогда надо просто обратится к базе где заводятся данные, считать новые или измененные данные и профиксить все изменения в текущей базе. В таком варианте столкнулся с проблемой, как обратиться из аксапты к SQL базе, находящейся на другом компе.
Я делаю так:

Код:
	Connection	  con = new Connection();
	Statement	   stmt = con.createStatement();
	ResultSet		resultSet; 

	resultSet	  = stmt.executeQuery("Select * from [TMKGSU1].[Ax_test1].[dbo].[VendGroup]");
где TMKGSU1 название компа, Ax_test1 - название базы, сам я в это время нахожусь в другой базе на другом компе.
Выскакивает такая ошибка:
Описание ошибки SQL: [Microsoft][ODBC SQL Server Driver][SQL Server]Could not find server 'TMKGSU1' in sysservers. Execute sp_addlinkedserver to add the server to sysservers.

Посоветуйте как лучше поступить.