01.02.2006, 11:47 | #1 |
Участник
|
Возникла необходимость синхронизировать некоторые таблицы в двух разных 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]"); Выскакивает такая ошибка: Описание ошибки SQL: [Microsoft][ODBC SQL Server Driver][SQL Server]Could not find server 'TMKGSU1' in sysservers. Execute sp_addlinkedserver to add the server to sysservers. Посоветуйте как лучше поступить. |
|