Rambler's Top100
"Knowledge itself is power"
F.Bacon
Поиск | Карта сайта | Помощь | О проекте | ТТХ  
 Круглый стол
  
Правила КС
>> Настройки

Фильтр вопросов
>> Новые вопросы
отслеживать по
>> Новые ответы

Избранное

Страница вопросов
Поиск по КС


Специальные проекты:
>> К л ю к в а
>> Г о л о в о л о м к и

Вопрос №

Задать вопрос
Off-topic вопросы

Помощь

 
 К н и г и
 
Книжная полка
 
 
Библиотека
 
  
  
 


Поиск
 
Поиск по КС
Поиск в статьях
Яndex© + Google©
Поиск книг

 
  
Тематический каталог
Все манускрипты

 
  
Карта VCL
ОШИБКИ
Сообщения системы

 
Форумы
 
Круглый стол
Новые вопросы

 
  
Базарная площадь
Городская площадь

 
   
С Л С

 
Летопись
 
Королевские Хроники
Рыцарский Зал
Глас народа!

 
  
ТТХ
Конкурсы
Королевская клюква

 
Разделы
 
Hello, World!
Лицей

Квинтана

 
  
Сокровищница
Подземелье Магов
Подводные камни
Свитки

 
  
Школа ОБЕРОНА

 
  
Арсенальная башня
Фолианты
Полигон

 
  
Книга Песка
Дальние земли

 
  
АРХИВЫ

 
 

Сейчас на сайте присутствуют:
 
  
 
Во Флориде и в Королевстве сейчас  05:29[Войти] | [Зарегистрироваться]
Ответ на вопрос № 70503

07-05-2009 07:59
Есть 2 разные базы Access a1.mdb - a2.mdb , в них есть одинаковые таблицы , как используя Delphi+Ado  добавить все данные из всех таблиц  a1 в такие же таблицы базы a2? Можно сделать конечно через два ADOTABLE пройтись в цикле по каждой таблице первой базы занося при этом в такие же подключаемые таблицы второй, но хотелось бы знать может есть более правильный способ, например через Insert  Into t1 in a1 Select * from t1 in a2. И как в таком случае обратиться к базам a1 и a2? Какие компоненты использовать при этом? Спасибо. Буду благодарен за любые советы.

[+] Добавить в избранные вопросы

Отслеживать ответы на этот вопрос по RSS

Ответы:


Уважаемые авторы вопросов! Большая просьба сообщить о результатах решения проблемы на этой странице.
Иначе, следящие за обсуждением, возможно имеющие аналогичные проблемы, не получают ясного представления об их решении. А авторы ответов не получают обратной связи. Что можно расценивать, как проявление неуважения к отвечающим от автора вопроса.

08-05-2009 04:02 | Сообщение от автора вопроса
Вот такое решение получилось:
a1(t1….t12) – база в которую загружаем(с таблицами)
a2(t1….t12) -  база из которой загружаем
структуры баз a1 a2 и таблиц в базах одинаковые!

AdoConnection :
ConnectionString настраиваем на a1 , но на a2 тоже работает правда a1 всегда есть , а если загружаемых баз несколько то  лучше на  a1.
Provider= Microsoft.Jet.OLEDB.4.0
LoginPrompt=False

AdoQuery2 связать с AdoConnection

Edit1 – путь к a1
Edit2 -  путь к a2

procedure TForm1.Button3Click(Sender: TObject);

begin

AdoQuery2.Active:=False;
AdoQuery2.SQL.Clear;
AdoQuery2.SQL.Add('Insert into t1 in ' +'"'+
edit1.Text +'"'+'select * from t1 in ' +'"'+
edit2.text+'"');

AdoQuery2.ExecSQL;
end;


Вот и все , никаких других  компонентов не понадобилось, оказалось все проще , чем казалось. Можно прикрутить цикл и делать загрузку из всех баз во все таблицы. Спасибо всем кто отозвался! Может я чего не учел? Готов выслушать поправки и замечания.

08-05-2009 01:32 | Комментарий к предыдущим ответам
Не забывайте, что работа идет через Jet SQL (родной движек Access'а), а это значит что "диалект" у него свой, в некоторых случаях отличный от SQL других БД (MS SQL, Oracle, Firebird и др.).
Найдите у себя в %ProgramFiles%\Common Files\Microsoft Shared\OFFICExx\1049\ файл JETSQL40.CHM - там все написано (в названии папки OFFICExx - xx - это номер версии установленного офиса).

08-05-2009 01:26 | Комментарий к предыдущим ответам
>>>Тут понадобятся не только два ADOTable, но и 2 ADOConnection. Баз-то две.
Как раз с двумя ADOConnection - это через цикл, а вот один ADOConnection и путь к другой БД в IN ''... Читайте хелп! :)

07-05-2009 23:44
Тут понадобятся не только два ADOTable, но и 2 ADOConnection. Баз-то две.

07-05-2009 09:21 | Комментарий к предыдущим ответам
Intermediate Microsoft Jet SQL for Access 2000: The SELECT INTO Statement

07-05-2009 08:48
И как в таком случае обратиться к базам a1 и a2?

Например, так:
select * from a1, [Другая база].a2

07-05-2009 08:31
Тогда посмотрите справку по DAO и Microsoft JET SQL. Эти файлы входят в стандартную поставку MS Office (соответственно dao*.chm и jet*.chm). В первом точно есть информация о том, как прилинковать таблицы из внешней базы данных,  во втором - использование языка JET SQL.

07-05-2009 08:19 | Сообщение от автора вопроса
да и Аксеса может не быть там

07-05-2009 08:17
К сожалению, обязательно, это доработка после других, к тому же надо объединять не одну базу

07-05-2009 08:14
А средствами Delphi+Ado обязательно? Может проще всего воспользоваться пунктом Сервис-> Репликация-> Создать реплику или Портфелем от Windows или просто прилинковать таблицы a2.mdb к a1.mdb и отдать все Access'у.

Добавьте свое cообщение

Вашe имя:  [Войти]
Ваш адрес (e-mail):На Королевстве все адреса защищаются от спам-роботов
контрольный вопрос:
Кто съел Красную шапочку?
в качестве ответа на вопрос или загадку следует давать только одно слово в именительном падеже и именно в такой форме, как оно используется в оригинале.
Надоело отвечать на странные вопросы? Зарегистрируйтесь на сайте.
Тип сообщения:
Текст:
Жирный шрифт  Наклонный шрифт  Подчеркнутый шрифт  Выравнивание по центру  Список  Заголовок  Разделительная линия  Код  Маленький шрифт  Крупный шрифт  Цитирование блока текста  Строчное цитирование
  • вопрос Круглого стола № XXX

  • вопрос № YYY в тесте № XXX Рыцарской Квинтаны

  • сообщение № YYY в теме № XXX Базарной площади
  • обсуждение темы № YYY Базарной площади
  •  
     Правила оформления сообщений на Королевстве

    Страница избранных вопросов Круглого стола.
      
    Время на сайте: GMT минус 5 часов

    Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter.
    Функция может не работать в некоторых версиях броузеров.

    Web hosting for this web site provided by DotNetPark (ASP.NET, SharePoint, MS SQL hosting)  
    Software for IIS, Hyper-V, MS SQL. Tools for Windows server administrators. Server migration utilities  

     
    © При использовании любых материалов «Королевства Delphi» необходимо указывать источник информации. Перепечатка авторских статей возможна только при согласии всех авторов и администрации сайта.
    Все используемые на сайте торговые марки являются собственностью их производителей.

    Яндекс цитирования