Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.52 MB
Время: 0.017 c
1-56556
cashe
2003-11-07 23:39
2003.11.17
Из строки, содержащей путь в TreeView


1-56602
Кен
2003-11-06 03:34
2003.11.17
Почему через ShellExecute неполучается писать в файл ?


9-56425
cyborg
2003-05-14 11:36
2003.11.17
Вылет


3-56457
Uran
2003-10-29 11:20
2003.11.17
Сортировка в TTable


3-56466
ИМХО
2003-10-15 09:55
2003.11.17
Сортировка TDBGrid по щелчку