Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.09.2010, 13:39   #1
Sanprof
Форумчанин
 
Аватар для Sanprof
 
Регистрация: 28.01.2008
Сообщений: 267
По умолчанию Копирование таблицы из одной базы в другую

Всем привет, собственно вопрос вот в чем как сопировать все данные таблицы из одной базы в такую же по структуре теблицу(пустую) другой базы. Использую PostrGreeSql и ZEOS компонеты, пробовал то, что поиск дал
Код:
Query1: TZQuery;
....
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('INSERT INTO arm_tester_new.users SELECT * FROM arm_tester_old.users');
Query1.ExecSQL;
В итоге ошибка "Shema 'arm_tester_new' dose not exist"
Может как-то запрос по другому написать, не так как во всем интернете
P.S.
Копирование через файл не подходит
Не забываем говорить спасибо за помощь - это ведь так приятно
Sanprof вне форума Ответить с цитированием
Старый 24.09.2010, 13:52   #2
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Есть просто обалденная прога. Называется ESF Database Convert. Желательно Professional Edition. Поддерживает форматы:
MySQL
SQL Server
PostgreSQL
Oracle
Access
InterBase/FireBird
Excel
Visual Foxpro
SQLite
dBase
Lotus
Paradox
Text/CSV Files
Html Import
ODBC
Можно конвертировать из любого формата в любой. Добавлять записи в уже существующие таблицы и т.п.
Уже не первый год пользуюсь.
Незаменима при больших объемах данных.

А вообще, можно циклично копировать
Код:
procedure TTableRecordCopy(Source, Destination: TTable);
var
   i, lCount: Integer;
begin
   lCount := Source.FieldCount;
   for i := 0 to lCount - 1 do
      if (not Source.Fields[i].IsNull) and (Source.Fields[i].CanModify) then
         Destination.FieldByName(Source.Fields[i].FieldName).Assign(Source.Fields[i]);
end;
while not Table1.eof do TTableRecordCopy(Table1,Table2);

Последний раз редактировалось _SERGEYX_; 24.09.2010 в 14:01.
_SERGEYX_ вне форума Ответить с цитированием
Старый 24.09.2010, 13:57   #3
Sanprof
Форумчанин
 
Аватар для Sanprof
 
Регистрация: 28.01.2008
Сообщений: 267
По умолчанию

а с помощью запроса никак???
Не забываем говорить спасибо за помощь - это ведь так приятно
Sanprof вне форума Ответить с цитированием
Старый 24.09.2010, 14:13   #4
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Ну если не получается одним запросом можно сделать ход конём

Сначала
DROP TABLE aTable_new
Затем
CREATE TABLE `aDatabase`.`aTable_new` SELECT * FROM `aTable_old`
Это должно сработать. В MySQL работает точно.
_SERGEYX_ вне форума Ответить с цитированием
Старый 24.09.2010, 14:50   #5
Sanprof
Форумчанин
 
Аватар для Sanprof
 
Регистрация: 28.01.2008
Сообщений: 267
По умолчанию

Цитата:
Сообщение от _SERGEYX_ Посмотреть сообщение
Ну если не получается одним запросом можно сделать ход конём

Сначала
DROP TABLE aTable_new
Затем
CREATE TABLE `aDatabase`.`aTable_new` SELECT * FROM `aTable_old`
Это должно сработать. В MySQL работает точно.
жаль, но у меня не сработало
придется как делал в цикле оставлять, одним запросом не получается
Не забываем говорить спасибо за помощь - это ведь так приятно
Sanprof вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
копирование таблицы из одной базы в другую chib_sv SQL, базы данных 7 20.08.2010 07:46
копирование данных из одной базы в другую IB Expert chib_sv SQL, базы данных 0 06.08.2010 09:13
Копирование результата запроса с одной базы в другую Lokos БД в Delphi 6 14.07.2010 08:01
Копирование записей из одной таблицы в другую rockedit БД в Delphi 4 10.12.2009 21:39
Копирование таблиц из одной базы в другую KuH БД в Delphi 7 27.09.2007 15:18