IrBiSSSSSS
Гость
|
|
« : 24-05-2009 09:08 » |
|
На главном компе стоит субд Oracle, на мобильных терминалах - базы Excess. Необходимо написать прогу, которая позволяла бы синхронизировать эти базы, т.е. в Oracle вносить все изменения из аксесовских бд. Синхронизация будет производится на том же компе, где стоит Oracle. Возможно ли это вообще реализовать? И если да, то как? Заранее, спасибо
|
|
|
Записан
|
|
|
|
RXL
|
|
« Ответ #1 : 24-05-2009 19:15 » |
|
IrBiSSSSSS, напиши программу, которая бы через ADO открывала mdf-базы Access, доставала из них данные и заносила в Oracle. В чем загвоздка?
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
IrBiSSSSSS
Гость
|
|
« Ответ #2 : 25-05-2009 06:49 » |
|
косяк в том, что с бд я раньше не работал! имею только общие представления. допустим, Адотэйбл считывает все инфу из аксессовской бд... далее необходимо осуществлять проверку на наличие в Оракл инфы и аксесс. если в аксесс есть более новые записи-проводить обновление. каким образом это можно контроллировать? вводить в аксесс сущность с датой и ее сверять?
|
|
|
Записан
|
|
|
|
McZim
|
|
« Ответ #3 : 25-05-2009 07:05 » |
|
IrBiSSSSSS, допустим сверять по Id. Пока ты более конкретнее нам не покажешь картину, мы тебе будем давать общие/размытые ответы.
|
|
|
Записан
|
The CBO without stats is like a morning without coffee. (c) T.Kyte.
|
|
|
IrBiSSSSSS
Гость
|
|
« Ответ #4 : 25-05-2009 17:05 » |
|
суть вот в чем... программа должна осуществлять, как я уже говорил, синхронизацию данных двух баз- эксесс и оракл. каким образом можно реализовать занесение обновленной информации из эксесс в оракл? с помощью sql запросов или есть иные механизмы? при этом, если происходит совпадение записей, но запись в эксесс новее, необходимо выводить уведомление и спрашивать о необходимости обновления. в общем должны быть реализованы для пользователя максимальные возможности по управлению процессом синхронизации. вы писали о возможности сличения ID. не могли бы подробнее осветить этот аспект? спасибо
|
|
|
Записан
|
|
|
|
RXL
|
|
« Ответ #5 : 25-05-2009 17:13 » |
|
IrBiSSSSSS, какие такие другие механизмы тебе известны? В IT волшебных палочек не бывает. SQL-запросы - стандартный способ общения с СУБД. ADO - универсальный интерфейс для различных баз (конечно, драйвер СУБД ставить в систему обязательно).
Пиши программу, которая сделает нужные запросы в обе базы и поймет, что нужно скопировать из одной в другую (ну и выполнит это копирование).
|
|
« Последнее редактирование: 25-05-2009 17:15 от RXL »
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
IrBiSSSSSS
Гость
|
|
« Ответ #6 : 25-05-2009 17:59 » |
|
а пример подобного запроса не могли бы привести?
|
|
|
Записан
|
|
|
|
|
IrBiSSSSSS
Гость
|
|
« Ответ #8 : 25-05-2009 18:59 » |
|
спасибо))))
|
|
|
Записан
|
|
|
|
Dimka
Деятель
Команда клуба
Offline
Пол:
|
|
« Ответ #9 : 25-05-2009 19:03 » |
|
По ID можно найти новые записи, но по ID не установить, был ли UPDATE записи, и нужно ли её повторно синхронизировать.
|
|
|
Записан
|
Программировать - значит понимать (К. Нюгард) Невывернутое лучше, чем вправленное (М. Аврелий) Многие готовы скорее умереть, чем подумать (Б. Рассел)
|
|
|
IrBiSSSSSS
Гость
|
|
« Ответ #10 : 25-05-2009 19:05 » |
|
а как в таком случае поступить? сравнивать каждое поле записи?
|
|
|
Записан
|
|
|
|
McZim
|
|
« Ответ #11 : 25-05-2009 19:16 » |
|
IrBiSSSSSS, оторвать тебе башку и выбрость!
|
|
|
Записан
|
The CBO without stats is like a morning without coffee. (c) T.Kyte.
|
|
|
IrBiSSSSSS
Гость
|
|
« Ответ #12 : 25-05-2009 19:17 » |
|
тоже вариант))
|
|
|
Записан
|
|
|
|
McZim
|
|
« Ответ #13 : 25-05-2009 19:20 » |
|
IrBiSSSSSS,
1. Прочти пожалуйста то, на что тее дал ссылки RXL. 2. Никто тебе однозначно не ответит как тебе проверить твои записи, потому что ты до сих пор не описал структуру ни одной из таблиц.
|
|
|
Записан
|
The CBO without stats is like a morning without coffee. (c) T.Kyte.
|
|
|
McZim
|
|
« Ответ #14 : 25-05-2009 19:21 » |
|
dimka, по одному ID естественно не возможно понять есть такая запись в другой бд или нет, но я ведь и таблиц не видел!
|
|
|
Записан
|
The CBO without stats is like a morning without coffee. (c) T.Kyte.
|
|
|
Антон (LogRus)
|
|
« Ответ #15 : 26-05-2009 03:28 » |
|
Я бы вместо access использовал EmbededOracle или TimeTens. В остальном проблем не вижу. кстати в оракле есть уникальный идентификатор записи rowid(уникален во всей БД и даёт самый быстрый доступ к записи) его можно хранить в Access, что-бы не парится с ключами. При вставке новых записей из Access в Oracle нужно будет через returning получить rowid новой записи. Короче фигня задача садись да пиши.
|
|
|
Записан
|
Странно всё это....
|
|
|
Dimka
Деятель
Команда клуба
Offline
Пол:
|
|
« Ответ #16 : 26-05-2009 06:38 » |
|
dimka, по одному ID естественно не возможно понять есть такая запись в другой бд или нет Вот это-то, как раз, можно По ID нельзя узнать, менялась она или нет.
|
|
|
Записан
|
Программировать - значит понимать (К. Нюгард) Невывернутое лучше, чем вправленное (М. Аврелий) Многие готовы скорее умереть, чем подумать (Б. Рассел)
|
|
|
McZim
|
|
« Ответ #17 : 26-05-2009 07:31 » |
|
dimka, ну да это и имел ввиду, не так выразился.
|
|
|
Записан
|
The CBO without stats is like a morning without coffee. (c) T.Kyte.
|
|
|
Kivals
|
|
« Ответ #18 : 26-05-2009 07:47 » |
|
Я бы GUID использовал для идентификации - ИМХО более универсально, а разница в скорости доступа к Oracle с использованием RowID на фоне скорости доступа к Access думаю не будет заметна... И какой-то Timestamp для изменения записи. В Access есть тригеры на изменение?
|
|
|
Записан
|
|
|
|
Oldy
|
|
« Ответ #19 : 26-05-2009 15:40 » |
|
...на мобильных терминалах - базы Excess... как я уже говорил, синхронизацию данных двух баз- эксесс и оракл. Исходя из вышесказанного, ID записей в базах Access могут совпадать, но содержать различную информацию поэтому GUID видимо более предпочтительней, а имея в записи таблицы Access поле-флаг устанавливаемый при добавлении/обновлении и сбрасываемый при репликации/синхронизации можно попытаться решить эту задачу.
|
|
« Последнее редактирование: 26-05-2009 15:43 от Oldy »
|
Записан
|
С уважением, Oldy.
|
|
|
IrBiSSSSSS
Гость
|
|
« Ответ #20 : 26-05-2009 18:16 » |
|
спасибо, всем за помощь! в ходе написания программы, если будет возникать необходимость(надеюсь, до этого не дойдет), буду обращаться к гуру дальше:)
|
|
|
Записан
|
|
|
|
|