Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2005.01.30;
Скачать: [xml.tar.bz2];

Вниз

Как скопировать таблицу из одной базы Access в другую ?   Найти похожие ветки 

 
urmat   (2004-12-28 07:36) [0]

Привет мастери. Пожалуйста помогите мне  скопировать таблицу из одной базы Access в другую ? Заранее спасибо!


 
urmat   (2004-12-28 07:40) [1]

c использованием  ADO - компоненты


 
Виталий Панасенко   (2004-12-28 09:21) [2]

2 ADOConnection  -по одному на каждую БД.. и два TADODataSetа...
в нужной БД создаешь таблицу с такой же структурой и копируешь туда данные (из ADODataset1 в ADODataSet2).. может есть другой путь - я не большой специалист в этой области.. но, думаю, вполне хватит и этого.. работать будет...


 
sniknik ©   (2004-12-28 11:07) [3]

высылай базы, поможем. ;о))

select * into table1 from table1 in "D:\base1.mdb"


 
msguns ©   (2004-12-28 17:24) [4]

>Виталий Панасенко   (28.12.04 09:21) [2]

1. Акцес вообще-то поддерживает гетерогенные запросы.
2. Копирование через датасеты (пробежка по исх.НД со вставкой в рез.НД), ИМХО, все равно, что закат солнца вручную. Тормозисто до безобразности. Да и вовсе не по-джидайски ;)


 
urmat   (2004-12-29 12:52) [5]

А как обновлять  таблицу,  то есть такая же таблица существует в обеих базах


 
msguns ©   (2004-12-29 13:25) [6]

Прежде всего надо определиться: что есть основная таблица (назовем ее "результирующая"), а что - корректировочная ("обновления"). Дальше просто.
Первый запрос добавляет в результитрующую из обновлений те записи, которых нет в результирующей.
Второй запрос меняет все поля, кроме колючей, в результирующей значениями полей обновлений.
Это самая простая схема репликации. Если же из результирующей надо удалять те ключи, которых нет в обновлениях, то это уже более сложный случай, где вторая таблица вовсе не "обновления", а "версия". Соответственно будет третий запрос, удаляющий из результирующей записи с ключами, отсутствующими в "версии".
Опять же, это на уровне записей.
На уровне полей все сложнее, т.е. надо иметь план репликации, где у полей таблиц есть доп.характеристики, связанные с их реплицирующими свойствами. Надеюсь, что такого "колобродия" в данном случае нет ;)


 
msguns ©   (2004-12-29 13:36) [7]

Недавно делат подобную штуку. Смысл ее сводился к тому, что была БД в акцесе, куда тетя вводила инфу. Потом ей в помощь дали студента-"акселерата". Вместо того, чтобы просто настроиться со своего компа в ту же БД, с которой работаля тетя, он ее просто скопировал на свой комп и стал вводить. Ввел более 10000 записей и уволился. Перед увольнением ему сказала, что надо бы его данные долить в основную, рабочую. Он попробовал это сделать втупую простым запросом на добавление. Ессно, получил отлуп по конфликту ключей (видимо, об автоинкрементных первичных ключах ему в его бурсе не поведали). В результате мне пришлось писать довольно не слабую прогу, которая сначала создавала БД репликации, туда сваливала инфу из обеих баз, стыковала их по ключевым реквизитам (не автоинкрементым, а вполне смысловым), выявляли нессответствия и устанавливала флажки ошибок. По этим флажкам затем тетя находила ошибки (как его, так и, как ни странно, свои), правила записи ручками. В конце из этой БД репликации данные заливались в предварительно очищенную рабочую. Ессно, в процессе записи и стыковуи инфы в БД репликации все инкркментные поля "инвентаризировались" и им присваивались новые значения. Для этого пришлось создать перекрестную таблицу старых и новых ключей, т.к. в базе была далеко не одно таблица, а несколько, связанных отношением один-ко-многим.

Здесь не подобный случай ?


 
urmat   (2004-12-29 14:35) [8]

В общем, у меня такая ситуация. У меня есть две базы данных с несколькими связанными таблицами. Записи таблицы первой базы можно и удалять, и добавлять и пр. Вторая база – является точной копией первой (по структуре). Так вот, надо мне периодически синхронизировать» (обновлять) записи во второй базе, беря ее из первой. При этом, чтобы не нарушались связи между таблицами второй базы.
Я уже пробовал insert into dest_table select * from source_table, но выходит сообщение об ошибке – конфликт id’шников.
Если можете, пришлите мне пожалуйста кусочек кода. Заранее спасибо.


 
msguns ©   (2004-12-29 14:56) [9]

>urmat   (29.12.04 14:35) [8]
>Если можете, пришлите мне пожалуйста кусочек кода. Заранее спасибо.

Код здоровый, кусочек ничего не даст. К тому же я понаворотил там кучу сервиса для "тети": поиски, фильтры, синхронное позиционирование всех трех баз (2-х исходных+репликационная), выгрузка в 3-х разных режимах и т.д. Тебе оно надо ?
Проект-то я могу выслать, но без баз его не посмотреть "в действии". А базы по 20 метров каждая (после сжатия). Репликационная - все 80.
Кратко расскажу суть:
Создаем базу Р (репликации), у которой структура Главной таблицы такова:
- Логические ключи (ну типа Номер документа, Дата и т.д. - т.е. однозначно уникальные для всей БД)
- Новый ID
- Попутные поля результата (именно из них будет выгруз в итоговую Гл.таблицу)
- Попутные поля базы A (вместе с ID Гл.таблицы БД A)
- Попутные поля базы B (вместе с ID Гл.таблицы БД B)
- Флаги ошибок
- Поля примечаний, ссылок и т.д. Нужны для просмотра и контроля в "ручном" режиме сверки и коррекции.

Подчиненные таблицы в 3-х экземплярах: репликация, A и B со структурой, аналогичной исх.базам, но с добавлением двух новых полей (только для Р)
NEWMASTERID
NEWDETAILID

Ясно для чего, да ?

Таблица перекрестных ключей (ТПК)со структурой
Логические ключи
NEWMASTERID
OLDMASTERIDA
OLDMASTERIDB

Далее заливка в эту самую БД инфы из БД A
При этом сначала выполняется запись в таблицу перекрестных ключей и определяется новый ID, затем уж в Главную таблицу.
Запись идет в попутные поля A
Аналогично через ТПК заливаем деталы

Добавление из B также через ТПК, но при наличии в БД Р лог.ключей инфа пишется в попутные B
Деталы также как и для A, только в свои таблицы - фантомы.

Дальше запрос на сверку и заполнение флажков ошибок, примечаний и т.д.
Далее запрос на заполнение попутный полей результата.

Даем на просмотр-коррекцию "тетям".
Вывод в рез.базу из Гл.таблицы (с новыми ID) и деталов, связанных м Главной уже новыми MASTERID



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2005.01.30;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.036 c
3-1103720785
Aleksandr.
2004-12-22 16:06
2005.01.30
Есть какая-то возможность получить значения всех записей поля?


9-1098357098
VolanD
2004-10-21 15:11
2005.01.30
Direct3D


1-1105777062
WowaF
2005-01-15 11:17
2005.01.30
Чтение строки из файла через Stream


3-1103879417
intaari
2004-12-24 12:10
2005.01.30
Не устанавливается DataSource???


3-1103889364
Tomkat
2004-12-24 14:56
2005.01.30
BackUP/Restore MS SQL





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский