Главная страница
    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.49 MB
Время: 0.01 c
3-56484
dummt
2003-10-29 10:29
2003.11.17
Обновление query после изменения данных


3-56506
SasaR
2003-10-29 16:24
2003.11.17
DBF -> InterBase


6-56791
Pavel Oliynik
2003-09-18 09:35
2003.11.17
как узнать по іp имя текущего почтаря, если он есть


11-56541
DvL
2003-02-27 06:38
2003.11.17
KOL&MCK


1-56737
Aleksandr
2003-11-06 18:12
2003.11.17
Как отскроллировать ListBox в конец его списка





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский