Сравнение и добавление даних баз в accesse2003

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

Сравнение и добавление даних баз в accesse2003

Сообщение Zyran » 13.08.2008 (Ср) 15:32

Есть две базы с данными, назовем их База1 и База2. Надо сравнить эти Бази если в Базе2 нету даних Бази1 тогда добавить их в Базу1. Структура Баз одинаковая. Подскажите как это сделать? Заранее Благодарен. Можете Писать мне на мило Zyran@ukr.net

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Re: Сравнение и добавление даних баз в accesse2003

Сообщение SLIM » 30.08.2008 (Сб) 23:48

Что в твоем понимании База Данных? Что сравнивать хочешь? Данные из таблиц? Каких? Какова их структура? Совпадают ли они в двух базах? Что обновлять - добавлять записи при их отсутствии, или обновлять какие-то поля?
Пишите жизнь на чистовик.....переписать не удастся.....

Zyran
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 13.08.2008 (Ср) 10:27

Re: Сравнение и добавление даних баз в accesse2003

Сообщение Zyran » 03.09.2008 (Ср) 12:16

Данные в таблицах. Структури таблиц одинаковие. Добавлять записи при их отсутствии

SLIM
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1840
Зарегистрирован: 04.04.2008 (Пт) 18:21
Откуда: Краснодар

Re: Сравнение и добавление даних баз в accesse2003

Сообщение SLIM » 03.09.2008 (Ср) 21:29

Тут все зависит от количества данных. Если взять тупо по алгоритму, то можно сделать так
1.взять запись из одной таблицы
2.проходить все записи другой таблицы с этой записью, если не найдено то добавляем
3.берем следующую запись первой таблицы
4.опять пробегаем с начала до конца второй таблицы.

и т.д. Но на самом деле все это будет тормзить. Варианты то есть, но тут надо смотреть каким образом добавляются записи, и кем добавляются. Если знать это, то можно вести что-то типа лога добавления записей в таблицу1. И соответственно по этому логу добавлять в таблицу2. Можно сделать проверку на количество записей в обоих таблицах и только в случае разницы что-то делать, например тот же алгоритм. Но нужна как бы стационарная таблица. Т.е. на основе чего сравнивать нужно. Просто тебе подробней описать нужно все. Тогда помогут
Пишите жизнь на чистовик.....переписать не удастся.....

HandKot
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 283
Зарегистрирован: 28.06.2006 (Ср) 13:34
Откуда: Sergiev Posad

Re: Сравнение и добавление даних баз в accesse2003

Сообщение HandKot » 04.09.2008 (Чт) 7:07

если 2 базы одинаковые и должны быть идентичными, то есть следующие варианты:
1) настроить репликацию этих баз (конечно это может потребовать изменения структуры таблиц )
2) тупо копировать один файл взамен другого ()


Разумеется, эти варианты не подходят при условии, что базы не должны быть идентичными, а просто из одной базы данные добавляются в другую
В таком случае, надо писать скрипт, в котором пробегатся по всем таблицам (или по тем которые нужны) и выполнять команду INSERT

Код: Выделить всё
insert into База2.Таблица1(список полей)
select (тут список полей из таблицы базы1)
from
  База2.Таблица1
where
  База2.Таблица1.Col1 <> База1.Таблица1.Col1 and
  База2.Таблица1.Col2 <> База1.Таблица1.Col2 and
  ...
    База2.Таблица1.ColN <> База1.Таблица1.ColN


здесь тоже есть ограничение, базы должны быть слинкованы

также есть вариант отслеживать последнюю синхронизацию, выгружать данные из таблиц одной базы в текстовый файл и потом импортировать в другую базу
I Have Nine Lives You Have One Only
THINK!

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

Re: Сравнение и добавление даних баз в accesse2003

Сообщение alibek » 04.09.2008 (Чт) 11:26

HandKot, зачем ты непроверенный код пишешь?
join по <> даст совсем не то, что ты думаешь.
Надо использовать left join.
Lasciate ogni speranza, voi ch'entrate.

Zyran
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 13.08.2008 (Ср) 10:27

Re: Сравнение и добавление даних баз в accesse2003

Сообщение Zyran » 11.09.2008 (Чт) 13:04

Сенкс Всем за помощь


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

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

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

    TopList