Russian Qt Forum

Qt => Базы данных => Тема начата: mokynis от Январь 17, 2013, 12:15



Название: копирование таблиц между базами
Отправлено: mokynis от Январь 17, 2013, 12:15
требуется регулярно синхронизировать базы-одна на MySql, вторая в Access. Можно ли копировать таблицы не так:
Код:
while(query_mysql.next)
{ insert into tab_access(f1,f2...) values(<query_mysql.value(0)>,<query_mysql.value(1)>,...) }
, а что-то типа
Код:
insert into база1.to_table select * from база2.from_table 
? А то очень долго все это получается, а как увязать в одном запросе обе базы, я так и не понял...


Название: Re: копирование таблиц между базами
Отправлено: xokc от Январь 17, 2013, 12:32
Простой ответ - нет.
Для того, чтобы такой SQL работал, нужно, чтобы одна СУБД "знала" о существовании другой и умела оттуда получать данные.
Для обеспечения максимального быстродействия я бы сначала первым запросом выгружал все данные из базы2 во внешний файл, а потом вторым делал BULK INSERT из этого файла в таблицу базы1.


Название: Re: копирование таблиц между базами
Отправлено: mokynis от Январь 17, 2013, 13:33
спасибо за идею! буду думать


Название: Re: копирование таблиц между базами
Отправлено: mokynis от Январь 17, 2013, 17:28
еще вопрос (чтобы не плодить темы): если .mdb-файл лежит на Debian-сервере, то может ли программа, написанная на Qt, и лежащая рядом, работать с таблицами этого .mdb? Пол-дня гуглю, совсем запутался. А у самого при попытке подключиться в этих условиях пишет, что не найден драйвер ODBC. Вот и в раздумьях: то ли я что-то не так сделал, то ли это вообще не возможно  ???


Название: Re: копирование таблиц между базами
Отправлено: xokc от Январь 18, 2013, 15:39
Т.е. программа Qt запускается из-под Linux и хочет получить доступ к mdb? Боюсь без коммерческих ODBC драйверов не обойтись (например, от easysoft).


Название: Re: копирование таблиц между базами
Отправлено: Nimbus от Январь 20, 2013, 09:55
Т.е. программа Qt запускается из-под Linux и хочет получить доступ к mdb? Боюсь без коммерческих ODBC драйверов не обойтись (например, от easysoft).
Что ж вы такое говорите, сударь? unixODBC ещё жив!


Название: Re: копирование таблиц между базами
Отправлено: mokynis от Январь 21, 2013, 09:24
Цитировать
unixODBC ещё жив!
. Я его установил, isql показал, что
Цитировать
Connected!
, SELECT выполняется. А вот из Qt-программы SEGMENTATION FAULT и вылетает на строке db.open()!  :'(