Как обновить данные сразу в двух БД Oracle?

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
KEV
Начинающий
Начинающий
 
Сообщения: 1
Зарегистрирован: 03.02.2011 (Чт) 12:39

Как обновить данные сразу в двух БД Oracle?

Сообщение KEV » 03.02.2011 (Чт) 13:05

Пытаюсь написать простое приложение-редактор на VB.NET 2008
Пользователь загружает таблицу в DataGridView с сервера-А, добавляет/изменяет/удаляет записи.
Не знаю, как используя транзакцию, правильно обновить данные и на втором сервере-В.

Код примерно такой:
Dim ds_Table As New DataSet
' строка подключения к источнику данных 1
Dim ConnectString As String = "Provider=MSDAORA;Data Source=ServerA;Persist Security Info=True;User ID=MyBase;Password=password"
' строка подключения к источнику данных 2
Dim ConnectString2 As String = "Provider=MSDAORA;Data Source=ServerB;Persist Security Info=True;User ID=MyBase;Password=password"
' имя таблицы для редактирования
Dim OpenningTable As String = "MyTable"

'*** Открыть таблицу
Private Sub OpenTable()
Dim cmdString As String = "SELECT * FROM " & OpenningTable
Dim da_Tables As New OleDbDataAdapter(cmdString, ConnectString) ' создаем адаптер

Try
' Заполняем таблицу
da_Tables.Fill(ds_Table, OpenningTable)
' Загружаем данные
bs_Table.DataSource = ds_Table.Tables(OpenningTable)
' BindingSource раскидываем по всем нужным элементам
DataGridView.DataSource = bs_Table
BindingNavigatorTable.BindingSource = bs_Table
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, "Ошибка запроса данных " & OpenningTable)
End Try
End Sub

'*** Сохранить изменения в базе данных
Private Sub SaveChanges()
' Создаем адаптер данных
Dim da_Table As New OleDbDataAdapter("SELECT * FROM " & OpenningTable, ConnectString)
Dim builder As OleDbCommandBuilder

Try
DataGridView.EndEdit() ' завершаем редактирование в ячейке
da_Table.TableMappings.Add("Table", OpenningTable) ' задаем соответствие для имени таблицы
builder = New OleDbCommandBuilder(da_Table) ' создаем команды для вставки, обновления и удаления
da_Table.Update(ds_Table) ' сохраняем изменения
ds_Table.AcceptChanges() ' помечаем текущие данные как неизмененные
Catch ex As Exception
DataGridView.Refresh()
MsgBox(ex.Message, MsgBoxStyle.Critical, "Ошибка обновления данных")
End Try
End Sub

В данном варианте, на одном сервере все работает прекрасно.
Помогите пожалуйста!

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Как обновить данные сразу в двух БД Oracle?

Сообщение alibek » 03.02.2011 (Чт) 14:31

Настраивай репликацию между серверами или выполняй те же операции со вторым сервером.
Lasciate ogni speranza, voi ch'entrate.


Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 109

    TopList