Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 21.02.2011, 17:02
X-Must X-Must вне форума
Прохожий
 
Регистрация: 19.02.2011
Сообщения: 28
Репутация: 10
По умолчанию Копирование/добавление данных из одной таблицы в другую

Здравствуйте. Имеется три одинаковых, но с разными значениями, таблицы. Мне нужно как то скопировать все эти данные в одну таблицу. Скажем сначала копирую данные из первой, затем я сделаю пустую строку и дальше пойдут данные из второй таблицы, опять пустая строка и дальше из третьей. Для всех трех таблиц будут компоненты Table, и для одной пустой тоже будет Тэйбл. После копирования я выведу последнюю таблицу в DBGrid. Как все это можно сделать?

SQL не предлагать.
Ответить с цитированием
  #2  
Старый 21.02.2011, 18:02
Аватар для Yurk@
Yurk@ Yurk@ вне форума
Специалист
 
Регистрация: 07.09.2007
Адрес: Украина, г. Днепропетровск
Сообщения: 892
Версия Delphi: 7 + ОгнеПтица
Репутация: выкл
По умолчанию

ну так и бери 2 компонента Table. Table1 у тебя будет держать новую таблицу, а Table2 будет поочередным источником 3-х твоих таблиц по которым ты будешь бегать в цыкле и писать записи в Table1
примерно так:
Код:
Table1.Close;
Table1.TableName:='New_table.db';
Table1.Open;
for i:=0 to 2 do
  begin
  Table2.Close;
  Table2.TableName:='Memo1.Lines[i]';
  Table2.Open;
  while not Table2.EOF do
    begin
    Table1.Insert;
    Table1.Fields[0].Value:=Table2.Fields[0].Value;
    Table1.Fields[1].Value:=Table2.Fields[1].Value;
    Table1.Fields[2].Value:=Table2.Fields[2].Value;
    Table1.Post;
    Table2.Next;
    end;
  Table1.Insert
  Table2.Post;
end;
__________________
Поживу - увижу, Доживу - узнаю, Выживу - учту.
[P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз

Последний раз редактировалось Yurk@, 21.02.2011 в 18:15.
Ответить с цитированием
  #3  
Старый 21.02.2011, 18:48
X-Must X-Must вне форума
Прохожий
 
Регистрация: 19.02.2011
Сообщения: 28
Репутация: 10
По умолчанию

а для чего Memo в коде?

Стоп. Понял - в мемо содержатся названия трех баз.

Последний раз редактировалось X-Must, 21.02.2011 в 18:51.
Ответить с цитированием
  #4  
Старый 21.02.2011, 19:29
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,048
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Цитата:
Сообщение от X-Must
а для чего Memo в коде?

Стоп. Понял - в мемо содержатся названия трех баз.

Вообще, такое лучше делать запросом. Если структура таблиц одинаковая, то запрос будет такого вида:

Код:
INSERT INTO Table VALUES (SELECT * FROM OtherTable);
Ответить с цитированием
  #5  
Старый 21.02.2011, 22:34
X-Must X-Must вне форума
Прохожий
 
Регистрация: 19.02.2011
Сообщения: 28
Репутация: 10
По умолчанию

Цитата:
Сообщение от lmikle
Вообще, такое лучше делать запросом. Если структура таблиц одинаковая, то запрос будет такого вида:

Код:
INSERT INTO Table VALUES (SELECT * FROM OtherTable);

Чтобы сделать запросом придется иметь дело с гемором вроде дополнитльных компонентов на форме - IBquery, IBUpdateSql, IBTransaction, регистрировать базу в IBConsole, указывать логин, пароль. А мне надо всего лишь программу, которая формирует таблицу из данных других таблиц на диске.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 13:20.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter