Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Объединение двух одинаковых БД. 
V
    Опции темы
MotoArhangel
Дата 2.4.2015, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 13.3.2011

Репутация: нет
Всего: нет



Вопрос в следующем: Как объединить несколько абсолютно идентичных dbf таблиц в одну?

Написал вот такое: 
Код

procedure AddToDB(DBName:string;Strlst:TStringList);
 var
  i: Integer;
  Query:TADOQuery;
begin
  Query:=TADOQuery.Create(nil);
   try
     for i:=0 to Strlst.Count-1 do
       begin
         Query.Close;
         Query.SQL.clear;
         Query.Sql.Add('TABLE "'+DBName+'" UNION ALL SELECT * FROM "'+Strlst[i]+'"');
         Query.ExecSQL;
         Query.Close;
       end;
   finally
     Query.Free;
   end;
end;


в Strlst хранится список путей к файлам БД.
Но правильно ли?

Это сообщение отредактировал(а) MotoArhangel - 2.4.2015, 17:41
PM MAIL   Вверх
ТоляМБА
Дата 2.4.2015, 18:23 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Котэ
***


Профиль
Группа: Завсегдатай
Сообщений: 1607
Регистрация: 15.12.2004

Репутация: 1
Всего: 252



Почему Query.Close в цикле выполняет по два раза друг за другом? я бы вынес 10-ю строку после 6-й.
11 и 12 строки я бы заменил на Query.SQL.Text:='';
Что за СУБД? Я бы использовал запрос Insert Into.
Но это мои личные предпочтения...

Добавлено через 50 секунд
Вопрос про СУБД снимается, прочитал внимательно пост. )
PM   Вверх
MotoArhangel
Дата 2.4.2015, 18:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 13.3.2011

Репутация: нет
Всего: нет



Код

Query.SQL.Text:='INSERT into "'+DBName+'" ALL SELECT * FROM "'+strlst[i]+'"';

Так правильно? по поводу ALL сомнения. Пример глянул: 
Код

INSERT into таблица (поля)  SELECT (поля) FROM таблица

P.S. C SQL запросами сильно не знаком.

Это сообщение отредактировал(а) MotoArhangel - 2.4.2015, 18:44
PM MAIL   Вверх
MotoArhangel
Дата 2.4.2015, 20:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 13.3.2011

Репутация: нет
Всего: нет



Все разобрался, официальный мануал глянул=)
Код

INSERT INTO <название таблицы> SELECT <имя столбца>,... FROM <название таблицы>


Спасибо!!! Завтра проверю.

Это сообщение отредактировал(а) MotoArhangel - 2.4.2015, 20:48
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0952 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.