Текущий архив: 2003.11.17;
Скачать: CL | DM;
ВнизДобавление данных из одной таблицы в другую Найти похожие ветки
← →
Raduga (2003-10-29 10:28) [0]Здравствуте, Мастера.
Есть два совершенно одинаковых mdb-файла (названия только разные). Предполагается один использовать для записи текущих данных в таблицу, например за день. А второй как архив. Так вот,
Есть ли механизмы для "дописывания" таблиц из одного файла в другой. Использую ADO.
← →
Vlad (2003-10-29 10:34) [1]Немного неясна проблема.
Есть у тебя 2 ADOQuery или ADOTable. Один "смотрит" на одну базу, другой на другую. В чем проблема ?
← →
paul_k (2003-10-29 10:34) [2]ecть. Присоеденить таблицу источник к архивной базе используя Создать таблицу - Связь с таблицами (это в Access) потом insert select. Или сформировать прямо в access запрос на добавление нужных записей и дернуть его снаружи.
← →
Vlad (2003-10-29 10:36) [3]>paul_k © (29.10.03 10:34) [2]
Да можно даже и не присоеденять. В одном SQL предожении можно итак обращаться к разным файлам
← →
Raduga (2003-10-29 10:44) [4]>Vlad © (29.10.03 10:34) [1]
Архивный файл может порущится, например при сбое по питанию.
>paul_k © (29.10.03 10:34) [2]
А напрямую insert select нельзя? Без использования связи с таблицами.
>сформировать прямо в access запрос на добавление нужных записей и дернуть его снаружи.
Как дернуть, поскажите.
← →
paul_k (2003-10-29 10:50) [5]
> Как дернуть, поскажите.
как? да так же как эксель или ворд дернуть. Ole, MAPI, закладка Servers в конце концов.
Вот
> Vlad © (29.10.03 10:36) [3]
пишет что линковать не обязательно. Не знаю. сделать 2-3 клика в Acces и не заморачиватся потом на имена файлов по моему проще
> А напрямую insert select нельзя? Без использования связи
> с таблицами.
Наверное можно. но как из дельфи объяснить accessу что сюда смотри, сюда не смотри, а тут рыбу заворачивали - не знаю
← →
Vlad (2003-10-29 10:56) [6]А напрямую insert select нельзя? Без использования связи с таблицами.
в ADOQuery пишешь:
insert into "с:\mybase1.mdb".table1 select * from "с:\mybase2.mdb".table2 (если память не изменяет)
Имхо, лучше чем линк, потому как если подлинкованный файл был перемещен, то такую ситуацию в дельфи не обработать, а если без линка, тогда можно вывести диалог с явным указанием пути к файлу.
← →
Anatoly Podgoretsky (2003-10-29 10:58) [7]А разве АДО поддерживает гетерогенные запросы?
← →
Vlad (2003-10-29 11:06) [8]>Anatoly Podgoretsky © (29.10.03 10:58) [7]
Клянусь - сам такое делал не так давно:)
← →
Anatoly Podgoretsky (2003-10-29 11:13) [9]Может быть, потому и спрашиваю, но неоднакратно слышал только противоположное
← →
Raduga (2003-10-29 11:21) [10]>Vlad © (29.10.03 10:56) [6]
Напрягите пожалуйста память, а то что-то она вам изменяет :)
Выдается ошибка "Синтаксическая ошибка в запросе. Неполное предложение запроса"
← →
Vlad (2003-10-29 11:33) [11]>Raduga (29.10.03 11:21) [10]
Только что специально проверил - вот этот пример работает
insert into "c:\db2.mdb".table1
select * from "c:\db1.mdb".table1
← →
Vlad (2003-10-29 11:35) [12]Вот ConnectionString:
Provider=MSDASQL.1;Persist Security Info=False;Data Source=Access;Initial Catalog=c:\db1.mdb
Использую D5, ADO без всяких апдейтов и сервиспаков.
← →
Anatoly Podgoretsky (2003-10-29 11:37) [13]Ну тогда никаких проблем, стандартный SQL, раз гетерогенные запросы поддерживаются.
← →
Raduga (2003-10-29 11:42) [14]>Vlad © (29.10.03 11:35) [12]
А с jet-ом не работает.
← →
Vlad (2003-10-29 11:44) [15]>Raduga (29.10.03 11:42) [14]
Так это значит Jet не поддерживает гетерогенные запросы.
Мы вроде об ADO говорили...
← →
Raduga (2003-10-29 11:46) [16]>Vlad © (29.10.03 11:44) [15]
Так я в качестве провайдера Jet использую.
А что это за провайдер MSDASQL че-то уменя его нет (ADoConnection-> Provaider)
← →
Vlad (2003-10-29 11:51) [17]Стандартный майкрософтовский OLE DB-шный провайдер
← →
Raduga (2003-10-29 11:57) [18]>Vlad © (29.10.03 11:51) [17]
Так файлы то Access-овсие .
← →
Vlad (2003-10-29 11:59) [19]>Raduga (29.10.03 11:57) [18]
А что с аксессовскими файлами разве только Jet работает ? :))
ODBC уже отменили ?
← →
Anatoly Podgoretsky (2003-10-29 11:59) [20]Vlad © (29.10.03 11:44) [15]
Естественно, речь про конкретного провайдера не стоя, а только поддерживает ли АЖО гетерогенные запросыю
[11] и [12] подтверждение этого.
Raduga (29.10.03 11:42) [14]
А тебя что то сдерживает применить другого провайдера, для выполнения данной операции?
← →
Raduga (2003-10-29 12:12) [21]>Vlad © (29.10.03 11:59) [19]
Так Jet же родной для мдбшников. Вот и использую.
>Anatoly Podgoretsky © (29.10.03 11:59) [20]
>А тебя что то сдерживает применить другого провайдера, для выполнения данной операции?
Т.е. работать с jet, а для выполнения данной операции применить
тот же MSDASQl?
← →
Vlad (2003-10-29 12:18) [22]>Raduga (29.10.03 12:12) [21]
Родной конечно, но у них есть общий "папа" - это майкрософт,
так что все они родня друг другу.
Но я подчеркну, что это лишь один из вариантов. Никто не мешает действительно сделать линк на другую таблицу. Никто не мешает также сделать 2 query, каждый из которых будет смотреть на свою базу, тогда jet вполне подойдет.
← →
Raduga (2003-10-29 12:23) [23]Кстати, используя не jet быстродействие заметно уменьшается.
И могут возникнуть проблемы при переносе приложения на другие машины, я так думаю. Так что енто палка о двух концах...
Огромное спасибо за помощь и наставления на путь истинный :).
Страницы: 1 вся ветка
Текущий архив: 2003.11.17;
Скачать: CL | DM;
Память: 0.49 MB
Время: 0.01 c