![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Здравствуйте. Имеется три одинаковых, но с разными значениями, таблицы. Мне нужно как то скопировать все эти данные в одну таблицу. Скажем сначала копирую данные из первой, затем я сделаю пустую строку и дальше пойдут данные из второй таблицы, опять пустая строка и дальше из третьей. Для всех трех таблиц будут компоненты Table, и для одной пустой тоже будет Тэйбл. После копирования я выведу последнюю таблицу в DBGrid. Как все это можно сделать?
SQL не предлагать. |
|
#2
|
||||
|
||||
|
ну так и бери 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;Последний раз редактировалось Yurk@, 21.02.2011 в 18:15. |
|
#3
|
|||
|
|||
|
а для чего Memo в коде?
Стоп. Понял - в мемо содержатся названия трех баз. Последний раз редактировалось X-Must, 21.02.2011 в 18:51. |
|
#4
|
|||
|
|||
|
Цитата:
Вообще, такое лучше делать запросом. Если структура таблиц одинаковая, то запрос будет такого вида: Код:
INSERT INTO Table VALUES (SELECT * FROM OtherTable); |
|
#5
|
|||
|
|||
|
Цитата:
Чтобы сделать запросом придется иметь дело с гемором вроде дополнитльных компонентов на форме - IBquery, IBUpdateSql, IBTransaction, регистрировать базу в IBConsole, указывать логин, пароль. А мне надо всего лишь программу, которая формирует таблицу из данных других таблиц на диске. |